<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>12158</bug_id>
          
          <creation_ts>2007-01-08 00:15:28 -0800</creation_ts>
          <short_desc>Implement CSS3 multi column support</short_desc>
          <delta_ts>2007-01-08 06:14:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>36374</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-08 00:15:28 -0800</bug_when>
    <thetext>This is a bug to track CSS3 multicol support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36375</commentid>
    <comment_count>1</comment_count>
      <attachid>12294</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-08 00:16:29 -0800</bug_when>
    <thetext>Created attachment 12294
Implement parsing of the properties

Note that column-width and column-gap are a lot like z-index, and while adding support for them, I discovered a bug with z-index.  That&apos;s why this patch contains a z-index fix and test case. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36376</commentid>
    <comment_count>2</comment_count>
      <attachid>12295</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-08 00:20:42 -0800</bug_when>
    <thetext>Created attachment 12295
Better patch for parsing of the properties.

Fixed an error in the columns shorthand parsing and made sure column-count is restricted in the parser to be non-negative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36377</commentid>
    <comment_count>3</comment_count>
      <attachid>12295</attachid>
    <who name="">mitz</who>
    <bug_when>2007-01-08 00:24:06 -0800</bug_when>
    <thetext>Comment on attachment 12295
Better patch for parsing of the properties.

+        const int properties[2] = { CSS_PROP__WEBKIT_COLUMN_WIDTH, CSS_PROP__WEBKIT_COLUMN_COUNT };
+        return parseShorthand(propId, properties, 3, important);

Should be 2 instead of 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36379</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-08 00:37:03 -0800</bug_when>
    <thetext>+    static Length initialColumnWidth() { return Length(); }

Is this supposed to be a Length? Seems to be a float everywhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36364</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-08 00:39:24 -0800</bug_when>
    <thetext>Actually, I guess the question is, is it really supposed to be a float everywhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36362</commentid>
    <comment_count>6</comment_count>
      <attachid>12296</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-08 00:46:05 -0800</bug_when>
    <thetext>Created attachment 12296
Revised patch addressing Eric and MItz&apos;s review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36363</commentid>
    <comment_count>7</comment_count>
      <attachid>12296</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-08 00:51:53 -0800</bug_when>
    <thetext>Comment on attachment 12296
Revised patch addressing Eric and MItz&apos;s review comments.

My thoughts:

1.  You&apos;ll need lots more tests... eventually.
2.  ideally the z-index thing would be separate, but it&apos;s OK as is.
3.  Some of this new code (including the z-index stuff) could really be a macro to avoid more copy/paste trouble.  But it&apos;s OK as is.

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36360</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-01-08 06:14:28 -0800</bug_when>
    <thetext>Landed in r18660 (multi column) and r18661 (z-index).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12294</attachid>
            <date>2007-01-08 00:16:29 -0800</date>
            <delta_ts>2007-01-08 00:20:42 -0800</delta_ts>
            <desc>Implement parsing of the properties</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>42239</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NjU5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMDEtMDggIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBmb3IgaW5oZXJpdGFuY2Ug
b2YgYXV0byB6LWluZGV4LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xheWVycy96aW5kZXgtaW5oZXJpdC5odG1sOiBB
ZGRlZC4KKwogMjAwNy0wMS0wNyAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1p
bmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW0J
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2RmNGYwYmZkMWE3NWQ2YTRhZWVkMzc1MWM0Mzg4
YTMyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMjQweDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjQwOiAiWW91IHNob3VsZCBzZWUgYSBncmVlbiBzcXVhcmUgYmVsb3cuIgorbGF5ZXIg
YXQgKDgsMjYpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMTgpIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIg
YXQgKDgsMjYpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxMDB4MTAwCitsYXllciBhdCAoOCwyNikgc2l6ZSAxMDB4MTAwCisgIFJl
bmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHgxMDAKK2xheWVy
IGF0ICg4LDI2KSBzaXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAx
MDAge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCitsYXllciBhdCAoOCwyNikgc2l6ZSAxMDB4
MTAwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMTAwMCB7RElWfSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAgW2JnY29sb3I9IzAwODAwMF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL3ppbmRleC1pbmhlcml0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvemluZGV4LWluaGVyaXQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXYgeyB3aWR0aDoxMDBweDsgaGVpZ2h0OjEw
MHB4IH0KKy5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuIH0KKy5yZWQgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCitZb3Ugc2hvdWxk
IHNlZSBhIGdyZWVuIHNxdWFyZSBiZWxvdy4KKworPGRpdiBjbGFzcz0icmVkIiBzdHlsZT0icG9z
aXRpb246cmVsYXRpdmU7IHotaW5kZXg6MCI+CisgIDxkaXYgY2xhc3M9InJlZCIgc3R5bGU9InBv
c2l0aW9uOmFic29sdXRlOyB6LWluZGV4OmF1dG8iPgorICAgIDxkaXYgY2xhc3M9InJlZCIgc3R5
bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OmluaGVyaXQiPgorICAgICAgPGRpdiBjbGFz
cz0iZ3JlZW4iIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwIj4KKyAgICAg
IDwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0icmVkIiBzdHlsZT0i
cG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODY1OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMDctMDEtMDggIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhbGwgb2YgdGhlIENTUzMg
bXVsdGktY29sdW1uIHByb3BlcnRpZXMgaW4gcHJlcGFyYXRpb24gZm9yIGltcGxlbWVudGluZyB0
aGUKKyAgICAgICAgZmVhdHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL2Nzc3BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9jc3Nz
dHlsZXNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNvbERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6cnVsZVdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5XaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzQXV0b0NvbHVtbldpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6Y29sdW1uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpoYXNB
dXRvQ29sdW1uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5SdWxl
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uUnVsZVdpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5CcmVha0JlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uQnJlYWtJbnNpZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OmNvbHVtbkJyZWFrQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnNldENvbHVtbldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpzZXRIYXNBdXRvQ29sdW1uV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OnNldENvbHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1
bW5HYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEhhc0F1dG9Db2x1bW5H
YXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVDb2xvcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5SdWxlV2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlc2V0Q29sdW1uUnVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29sdW1uQnJlYWtCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OnNldENvbHVtbkJyZWFrSW5zaWRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5CcmVha0FmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjppbml0aWFsQ29sdW1uQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OmluaXRpYWxDb2x1bW5XaWR0aCk6CisKIDIwMDctMDEtMDcgIFJvYiBCdWlzICA8YnVp
c0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBXZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDE4NjQyKQorKysg
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzksNiArNzksMTUgQEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNb
XSA9IAogICAgIENTU19QUk9QX0NBUFRJT05fU0lERSwKICAgICBDU1NfUFJPUF9DTEVBUiwKICAg
ICBDU1NfUFJPUF9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9DT1VOVCwKKyAg
ICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVAsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fUlVMRV9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1NUWUxFLAor
ICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsCisgICAgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fQlJFQUtfQkVGT1JFLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JS
RUFLX0FGVEVSLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0lOU0lERSwKKyAg
ICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9XSURUSCwKICAgICBDU1NfUFJPUF9DVVJTT1IsCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIENTU19QUk9QX19XRUJLSVRfREFTSEJPQVJEX1JFR0lPTiwK
QEAgLTYwMyw2ICs2MTIsNTUgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHls
ZURlYwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX0NPTE9SOgogICAgICAgICBy
ZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2xvcigpLnJnYigpKTsKKyAgICBj
YXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0NPVU5UOgorICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1bW5Db3VudCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUik7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVA6CisgICAg
ICAgIGlmIChzdHlsZS0+aGFzQXV0b0NvbHVtbkdhcCgpKQorICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX05PUk1BTCk7CisgICAgICAgIHJldHVybiBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUoc3R5bGUtPnRleHRTdHJva2VXaWR0aCgpLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUik7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxF
X0NPTE9SOgorICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1
bW5SdWxlQ29sb3IoKS5yZ2IoKSk7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9S
VUxFX1NUWUxFOgorICAgICAgICByZXR1cm4gdmFsdWVGb3JCb3JkZXJTdHlsZShzdHlsZS0+Y29s
dW1uUnVsZVN0eWxlKCkpOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9X
SURUSDoKKyAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdHlsZS0+Y29sdW1u
UnVsZVdpZHRoKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgIGNhc2UgQ1NTX1BS
T1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfQUZURVI6CisgICAgICAgIHN3aXRjaCAoc3R5bGUtPmNv
bHVtbkJyZWFrQWZ0ZXIoKSkgeworICAgICAgICAgICAgY2FzZSBQQkFVVE86CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAg
ICAgICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfQUxXQVlTKTsKKyAgICAgICAgICAgIGNhc2UgUEJBVk9JRDoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVZPSUQp
OworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gMDsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9SRToKKyAg
ICAgICAgc3dpdGNoIChzdHlsZS0+Y29sdW1uQnJlYWtCZWZvcmUoKSkgeworICAgICAgICAgICAg
Y2FzZSBQQkFVVE86CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQUxXQVlTKTsKKyAgICAg
ICAgICAgIGNhc2UgUEJBVk9JRDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfQVZPSUQpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRf
Q09MVU1OX0JSRUFLX0lOU0lERToKKyAgICAgICAgc3dpdGNoIChzdHlsZS0+Y29sdW1uQnJlYWtJ
bnNpZGUoKSkgeworICAgICAgICAgICAgY2FzZSBQQkFVVE86CisgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgY2Fz
ZSBQQkFWT0lEOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
Q1NTX1ZBTF9BVk9JRCk7CisgICAgICAgICAgICBjYXNlIFBCQUxXQVlTOgorICAgICAgICAgICAg
ICAgIGJyZWFrOyAvLyBub3QgYWxsb3dlZAorICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRf
Q09MVU1OX1dJRFRIOgorICAgICAgICBpZiAoc3R5bGUtPmhhc0F1dG9Db2x1bW5XaWR0aCgpKQor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOwor
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1bW5XaWR0aCgp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgY2FzZSBDU1NfUFJPUF9DT05U
RU5UOgogICAgICAgICAvLyBGSVhNRTogdW5pbXBsZW1lbnRlZAogICAgICAgICBicmVhazsKSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9u
IDE4NjQyKQorKysgV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NTQsNiArNDU0LDE1IEBAIGNvbnN0IHVuc2lnbmVkIG51bUluaGVy
aXRhYmxlUHJvcGVydGllcyAKIHN0YXRpYyBjb25zdCBpbnQgYmxvY2tQcm9wZXJ0aWVzW10gPSB7
CiAgICAgQ1NTX1BST1BfT1JQSEFOUywKICAgICBDU1NfUFJPUF9PVkVSRkxPVywgLy8gVGhpcyBj
YW4gYmUgYWxzbyBiZSBhcHBsaWVkIHRvIHJlcGxhY2VkIGVsZW1lbnRzCisgICAgQ1NTX1BST1Bf
X1dFQktJVF9DT0xVTU5fQ09VTlQsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fR0FQLAor
ICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfQ09MT1IsCisgICAgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fUlVMRV9TVFlMRSwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxF
X1dJRFRILAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9SRSwKKyAgICBD
U1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19BRlRFUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lU
X0NPTFVNTl9CUkVBS19JTlNJREUsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fV0lEVEgs
CiAgICAgQ1NTX1BST1BfUEFHRV9CUkVBS19BRlRFUiwKICAgICBDU1NfUFJPUF9QQUdFX0JSRUFL
X0JFRk9SRSwKICAgICBDU1NfUFJPUF9QQUdFX0JSRUFLX0lOU0lERSwKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgkocmV2aXNpb24gMTg2NDIpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1NywxNyBAQCBjYXB0aW9uLXNpZGUK
IGNsZWFyCiBjbGlwCiBjb2xvcgorLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXIKKy13ZWJraXQt
Y29sdW1uLWJyZWFrLWJlZm9yZQorLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlCistd2Via2l0
LWNvbHVtbi1jb3VudAorLXdlYmtpdC1jb2x1bW4tZ2FwCistd2Via2l0LWNvbHVtbi1ydWxlLWNv
bG9yCistd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlCistd2Via2l0LWNvbHVtbi1ydWxlLXdpZHRo
Cistd2Via2l0LWNvbHVtbi1ydWxlCistd2Via2l0LWNvbHVtbi13aWR0aAorLXdlYmtpdC1jb2x1
bW5zCiBjb250ZW50CiBjb3VudGVyLWluY3JlbWVudAogY291bnRlci1yZXNldApJbmRleDogV2Vi
Q29yZS9jc3MvY3NzcGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9jc3NwYXJz
ZXIuY3BwCShyZXZpc2lvbiAxODY0MikKKysrIFdlYkNvcmUvY3NzL2Nzc3BhcnNlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ4Myw3ICs0ODMsOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NfUFJPUF9QQUdF
X0JSRUFLX0FGVEVSOiAgICAgLy8gYXV0byB8IGFsd2F5cyB8IGF2b2lkIHwgbGVmdCB8IHJpZ2h0
IHwgaW5oZXJpdAotICAgIGNhc2UgQ1NTX1BST1BfUEFHRV9CUkVBS19CRUZPUkU6ICAgIC8vIGF1
dG8gfCBhbHdheXMgfCBhdm9pZCB8IGxlZnQgfCByaWdodCB8IGluaGVyaXQKKyAgICBjYXNlIENT
U19QUk9QX1BBR0VfQlJFQUtfQkVGT1JFOgorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fQlJFQUtfQUZURVI6CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19C
RUZPUkU6CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwKICAgICAgICAgICAgICBp
ZCA9PSBDU1NfVkFMX0FMV0FZUyB8fAogICAgICAgICAgICAgIGlkID09IENTU19WQUxfQVZPSUQg
fHwKQEAgLTQ5Myw4ICs0OTUsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBiCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NfUFJPUF9QQUdFX0JSRUFLX0lO
U0lERTogICAgLy8gYXZvaWQgfCBhdXRvIHwgaW5oZXJpdAotICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9BVVRPIHx8Ci0gICAgICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9BVk9JRCkKKyAgICBjYXNl
IENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0lOU0lERToKKyAgICAgICAgaWYgKGlkID09
IENTU19WQUxfQVVUTyB8fCBpZCA9PSBDU1NfVkFMX0FWT0lEKQogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKQEAgLTYxMSw3ICs2MTMsOCBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJP
UF9CT1JERVJfVE9QX1NUWUxFOiAgICAgLy8vLyA8Ym9yZGVyLXN0eWxlPiB8IGluaGVyaXQKICAg
ICBjYXNlIENTU19QUk9QX0JPUkRFUl9SSUdIVF9TVFlMRTogICAvLyAgIERlZmluZWQgYXM6ICAg
IG5vbmUgfCBoaWRkZW4gfCBkb3R0ZWQgfCBkYXNoZWQgfAogICAgIGNhc2UgQ1NTX1BST1BfQk9S
REVSX0JPVFRPTV9TVFlMRTogIC8vICAgc29saWQgfCBkb3VibGUgfCBncm9vdmUgfCByaWRnZSB8
IGluc2V0IHwgb3V0c2V0Ci0gICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9TVFlMRTogICAg
Ly8vLworICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0xFRlRfU1RZTEU6CisgICAgY2FzZSBDU1Nf
UFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1NUWUxFOgogICAgICAgICBpZiAoaWQgPj0gQ1NTX1ZB
TF9OT05FICYmIGlkIDw9IENTU19WQUxfRE9VQkxFKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC02ODMsNiArNjg2LDcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9M
SU5FX1RIUk9VR0hfQ09MT1I6IC8vIENTUzMgdGV4dCBkZWNvcmF0aW9uIGNvbG9ycwogICAgIGNh
c2UgQ1NTX1BST1BfVEVYVF9VTkRFUkxJTkVfQ09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9URVhU
X09WRVJMSU5FX0NPTE9SOgorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9D
T0xPUjoKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9GSUxMX0NPTE9SOgogICAgIGNh
c2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUjoKICAgICAgICAgaWYgKGlkID09
IENTU19WQUxfX1dFQktJVF9URVhUKQpAQCAtODA1LDcgKzgwOSw4IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9UT1Bf
V0lEVEg6ICAgICAvLy8vIDxib3JkZXItd2lkdGg+IHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTX1BS
T1BfQk9SREVSX1JJR0hUX1dJRFRIOiAgIC8vICAgV2hpY2ggaXMgZGVmaW5lZCBhcwogICAgIGNh
c2UgQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9XSURUSDogIC8vICAgdGhpbiB8IG1lZGl1bSB8IHRo
aWNrIHwgPGxlbmd0aD4KLSAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9MRUZUX1dJRFRIOiAgICAv
Ly8vCisgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9XSURUSDoKKyAgICBjYXNlIENTU19Q
Uk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEg6CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFM
X1RISU4gfHwgaWQgPT0gQ1NTX1ZBTF9NRURJVU0gfHwgaWQgPT0gQ1NTX1ZBTF9USElDSykKICAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKQEAgLTExOTYs
NiArMTIwMSwyNCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAg
ICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9CT1RIIHx8IGlk
ID09IENTU19WQUxfSE9SSVpPTlRBTCB8fCBpZCA9PSBDU1NfVkFMX1ZFUlRJQ0FMIHx8IGlkID09
IENTU19WQUxfQVVUTykKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQ09VTlQ6CisgICAg
ICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAhaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciwgZmFsc2UpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0dBUDogICAgICAgICAvLyBub3JtYWwgfCA8
bGVuZ3RoPgorICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT1JNQUwpCisgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHN0cmljdCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fV0lEVEg6ICAgICAgICAgLy8g
YXV0byB8IDxsZW5ndGg+CisgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHN0cmljdCk7CisgICAg
ICAgIGJyZWFrOwogICAgIC8vIEVuZCBvZiBDU1MzIHByb3BlcnRpZXMKIAogICAgIC8vIEFwcGxl
IHNwZWNpZmljIHByb3BlcnRpZXMuICBUaGVzZSB3aWxsIG5ldmVyIGJlIHN0YW5kYXJkaXplZCBh
bmQgYXJlIHB1cmVseSB0bwpAQCAtMTM0Niw2ICsxMzY5LDE2IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENTU19QUk9QX0xJU1RfU1RZTEVfSU1BR0UgfTsKICAgICAgICAgcmV0dXJuIHBhcnNlU2hv
cnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMywgaW1wb3J0YW50KTsKICAgICB9CisgICAgY2Fz
ZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTlM6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRp
ZXNbM10gPSB7IENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsIENTU19QUk9QX19X
RUJLSVRfQ09MVU1OX1JVTEVfU1RZTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX0NPTE9SIH07CisgICAgICAgIHJldHVy
biBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCk7CisgICAg
fQorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRTogeworICAgICAgICBjb25z
dCBpbnQgcHJvcGVydGllc1szXSA9IHsgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9XSURU
SCwgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9TVFlMRSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfQ09MT1IgfTsK
KyAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMywgaW1w
b3J0YW50KTsKKyAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX1RFWFRfU1RST0tFOiB7
CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzJdID0geyBDU1NfUFJPUF9fV0VCS0lUX1RF
WFRfU1RST0tFX1dJRFRILCBDU1NfUFJPUF9fV0VCS0lUX1RFWFRfU1RST0tFX0NPTE9SIH07CiAg
ICAgICAgIHJldHVybiBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDIsIGltcG9y
dGFudCk7CkluZGV4OiBXZWJDb3JlL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTg2NDIpCisr
KyBXZWJDb3JlL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUy
Nyw2ICsyNTI3LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAog
ICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0xFRlRfQ09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9D
T0xPUjoKICAgICBjYXNlIENTU19QUk9QX09VVExJTkVfQ09MT1I6CisgICAgY2FzZSBDU1NfUFJP
UF9fV0VCS0lUX0NPTFVNTl9SVUxFX0NPTE9SOgogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9U
RVhUX1NUUk9LRV9DT0xPUjoKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9GSUxMX0NP
TE9SOiB7CiAgICAgICAgIENvbG9yIGNvbDsKQEAgLTI1MzgsNiArMjUzOSw3IEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0NPTkQoQ1NTX1BST1BfQk9SREVSX0xFRlRfQ09MT1IsIGJvcmRlckxlZnRDb2xvciwgQm9y
ZGVyTGVmdENvbG9yKQogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9D
T0xPUiwgY29sb3IsIENvbG9yKQogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1Nf
UFJPUF9PVVRMSU5FX0NPTE9SLCBvdXRsaW5lQ29sb3IsIE91dGxpbmVDb2xvcikKKyAgICAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9DT0xP
UiwgY29sdW1uUnVsZUNvbG9yLCBDb2x1bW5SdWxlQ29sb3IpCiAgICAgICAgICAgICBIQU5ETEVf
SU5IRVJJVF9DT05EKENTU19QUk9QX19XRUJLSVRfVEVYVF9TVFJPS0VfQ09MT1IsIHRleHRTdHJv
a2VDb2xvciwgVGV4dFN0cm9rZUNvbG9yKQogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09O
RChDU1NfUFJPUF9fV0VCS0lUX1RFWFRfRklMTF9DT0xPUiwgdGV4dEZpbGxDb2xvciwgVGV4dEZp
bGxDb2xvcikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1NjksNiArMjU3MSw5IEBAIHZvaWQg
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHN0eWxlLT5z
ZXRDb2xvcihjb2wpOyBicmVhazsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5FX0NPTE9S
OgogICAgICAgICAgICAgc3R5bGUtPnNldE91dGxpbmVDb2xvcihjb2wpOyBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX0NPTE9SOgorICAgICAgICAgICAg
c3R5bGUtPnNldENvbHVtblJ1bGVDb2xvcihjb2wpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUjoKICAgICAgICAgICAg
IHN0eWxlLT5zZXRUZXh0U3Ryb2tlQ29sb3IoY29sKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MjYwMCw2ICsyNjA1LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGlu
dAogICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9XSURUSDoKICAgICBjYXNlIENTU19Q
Uk9QX0JPUkRFUl9MRUZUX1dJRFRIOgogICAgIGNhc2UgQ1NTX1BST1BfT1VUTElORV9XSURUSDoK
KyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEg6CiAgICAgewogICAg
ICAgICBpZiAoaXNJbmhlcml0KSB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENT
U19QUk9QX0JPUkRFUl9UT1BfV0lEVEgsIGJvcmRlclRvcFdpZHRoLCBCb3JkZXJUb3BXaWR0aCkK
QEAgLTI2MDcsNiArMjYxMyw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eShpbnQKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfQk9SREVSX0JP
VFRPTV9XSURUSCwgYm9yZGVyQm90dG9tV2lkdGgsIEJvcmRlckJvdHRvbVdpZHRoKQogICAgICAg
ICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9CT1JERVJfTEVGVF9XSURUSCwgYm9y
ZGVyTGVmdFdpZHRoLCBCb3JkZXJMZWZ0V2lkdGgpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9DT05EKENTU19QUk9QX09VVExJTkVfV0lEVEgsIG91dGxpbmVXaWR0aCwgT3V0bGluZVdpZHRo
KQorICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9fV0VCS0lUX0NPTFVN
Tl9SVUxFX1dJRFRILCBjb2x1bW5SdWxlV2lkdGgsIENvbHVtblJ1bGVXaWR0aCkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChpc0luaXRpYWwpIHsKQEAg
LTI2MTUsNiArMjYyMiw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShp
bnQKICAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NfUFJPUF9C
T1JERVJfQk9UVE9NX1dJRFRILCBCb3JkZXJCb3R0b21XaWR0aCwgQm9yZGVyV2lkdGgpCiAgICAg
ICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTX1BST1BfQk9SREVSX0xF
RlRfV0lEVEgsIEJvcmRlckxlZnRXaWR0aCwgQm9yZGVyV2lkdGgpCiAgICAgICAgICAgICBIQU5E
TEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTX1BST1BfT1VUTElORV9XSURUSCwgT3V0bGlu
ZVdpZHRoLCBCb3JkZXJXaWR0aCkKKyAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lU
SF9WQUxVRShDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1dJRFRILCBDb2x1bW5SdWxlV2lk
dGgsIEJvcmRlcldpZHRoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTI2
NTYsNiArMjY2NCw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQK
ICAgICAgICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5FX1dJRFRIOgogICAgICAgICAgICAgc3R5bGUt
PnNldE91dGxpbmVXaWR0aCh3aWR0aCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1dJRFRIOgorICAgICAgICAgICAgc3R5bGUt
PnNldENvbHVtblJ1bGVXaWR0aCh3aWR0aCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzEwNyw4ICszMTE4
LDEyIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUF9aX0lOREVYOgogICAgIHsKLSAgICAgICAgSEFORExF
X0lOSEVSSVQoekluZGV4LCBaSW5kZXgpCi0gICAgICAgIGVsc2UgaWYgKGlzSW5pdGlhbCkgewor
ICAgICAgICBpZiAoaXNJbmhlcml0KSB7CisgICAgICAgICAgICBpZiAocGFyZW50U3R5bGUtPmhh
c0F1dG9aSW5kZXgoKSkKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0SGFzQXV0b1pJbmRleCgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRaSW5kZXgocGFy
ZW50U3R5bGUtPnpJbmRleCgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKICAg
ICAgICAgICAgIHN0eWxlLT5zZXRIYXNBdXRvWkluZGV4KCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KQEAgLTM5MzIsNiArMzk0NywxMTkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVByb3BlcnR5KGludAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzdHlsZS0+c2V0
Qm94U2l6aW5nKEJPUkRFUl9CT1gpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU19QUk9Q
X19XRUJLSVRfQ09MVU1OX0NPVU5UOiB7CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMKGNvbHVtbkNvdW50LCBDb2x1bW5Db3VudCkKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgY291
bnQgPSAwOworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTX1ZB
TF9BVVRPKQorICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVS
KQorICAgICAgICAgICAgY291bnQgPSAodW5zaWduZWQgc2hvcnQpKHByaW1pdGl2ZVZhbHVlLT5n
ZXRGbG9hdFZhbHVlKCkpOworICAgICAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgc3R5bGUtPnNldENvbHVtbkNvdW50KGNvdW50KTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fR0FQOiB7CisgICAg
ICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZS0+aGFzQXV0
b0NvbHVtbkdhcCgpKQorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRIYXNBdXRvQ29sdW1uR2Fw
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkdh
cChwYXJlbnRTdHlsZS0+Y29sdW1uR2FwKCkpOworICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlh
bCkgeworICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1bW5HYXAoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTX1ZBTF9OT1JNQUwpIHsKKyAgICAgICAgICAgIHN0eWxlLT5zZXRIYXNBdXRv
Q29sdW1uR2FwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gICAgICAgCisgICAg
ICAgIHN0eWxlLT5zZXRDb2x1bW5HYXAocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1O
X1dJRFRIOiB7CisgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlmIChwYXJl
bnRTdHlsZS0+aGFzQXV0b0NvbHVtbldpZHRoKCkpCisgICAgICAgICAgICAgICAgc3R5bGUtPnNl
dEhhc0F1dG9Db2x1bW5XaWR0aCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHN0eWxlLT5zZXRDb2x1bW5XaWR0aChwYXJlbnRTdHlsZS0+Y29sdW1uV2lkdGgoKSk7CisgICAg
ICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsKSB7CisgICAgICAgICAgICBzdHlsZS0+c2V0SGFzQXV0
b0NvbHVtbldpZHRoKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU19WQUxfQVVUTykgeworICAgICAg
ICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1bW5XaWR0aCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5XaWR0aChwcmltaXRpdmVWYWx1
ZS0+Z2V0RmxvYXRWYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQ1NT
X1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9TVFlMRToKKyAgICAgICAgSEFORExFX0lOSEVSSVRf
QU5EX0lOSVRJQUxfV0lUSF9WQUxVRShjb2x1bW5SdWxlU3R5bGUsIENvbHVtblJ1bGVTdHlsZSwg
Qm9yZGVyU3R5bGUpCisgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5SdWxlU3R5bGUoKEVCb3JkZXJT
dHlsZSkocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgLSBDU1NfVkFMX05PTkUpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19CRUZPUkU6
IHsKKyAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUxfV0lUSF9WQUxVRShjb2x1bW5C
cmVha0JlZm9yZSwgQ29sdW1uQnJlYWtCZWZvcmUsIFBhZ2VCcmVhaykKKyAgICAgICAgc3dpdGNo
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgY2FzZSBDU1NfVkFM
X0FVVE86CisgICAgICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQmVmb3JlKFBCQVVU
Tyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU19WQUxfTEVG
VDoKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9SSUdIVDoKKyAgICAgICAgICAgIGNhc2UgQ1NT
X1ZBTF9BTFdBWVM6CisgICAgICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQmVmb3Jl
KFBCQUxXQVlTKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NT
X1ZBTF9BVk9JRDoKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtCZWZvcmUo
UEJBVk9JRCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfQUZURVI6
IHsKKyAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUxfV0lUSF9WQUxVRShjb2x1bW5C
cmVha0FmdGVyLCBDb2x1bW5CcmVha0FmdGVyLCBQYWdlQnJlYWspCisgICAgICAgIHN3aXRjaCAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9B
VVRPOgorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5CcmVha0FmdGVyKFBCQVVUTyk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU19WQUxfTEVGVDoK
KyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9SSUdIVDoKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZB
TF9BTFdBWVM6CisgICAgICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQWZ0ZXIoUEJB
TFdBWVMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NfVkFM
X0FWT0lEOgorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5CcmVha0FmdGVyKFBCQVZP
SUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0lOU0lERTogewor
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZBTFVFKGNvbHVtbkJyZWFr
SW5zaWRlLCBDb2x1bW5CcmVha0luc2lkZSwgUGFnZUJyZWFrKQorICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTX1ZBTF9BVVRPKQorICAgICAgICAgICAgc3R5bGUt
PnNldENvbHVtbkJyZWFrSW5zaWRlKFBCQVVUTyk7CisgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU19WQUxfQVZPSUQpCisgICAgICAgICAgICBzdHlsZS0+
c2V0Q29sdW1uQnJlYWtJbnNpZGUoUEJBVk9JRCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRToKKyAgICAgICAgaWYgKGlzSW5o
ZXJpdCkgeworICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtblJ1bGVDb2xvcihwYXJlbnRTdHls
ZS0+Y29sdW1uUnVsZUNvbG9yKCkpOworICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtblJ1bGVT
dHlsZShwYXJlbnRTdHlsZS0+Y29sdW1uUnVsZVN0eWxlKCkpOworICAgICAgICAgICAgc3R5bGUt
PnNldENvbHVtblJ1bGVXaWR0aChwYXJlbnRTdHlsZS0+Y29sdW1uUnVsZVdpZHRoKCkpOworICAg
ICAgICB9CisgICAgICAgIGVsc2UgaWYgKGlzSW5pdGlhbCkKKyAgICAgICAgICAgIHN0eWxlLT5y
ZXNldENvbHVtblJ1bGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5TOgorICAgICAgICBpZiAoaXNJbmhlcml0KSB7CisgICAgICAgICAgICBpZiAo
cGFyZW50U3R5bGUtPmhhc0F1dG9Db2x1bW5XaWR0aCgpKQorICAgICAgICAgICAgICAgIHN0eWxl
LT5zZXRIYXNBdXRvQ29sdW1uV2lkdGgoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBzdHlsZS0+c2V0Q29sdW1uV2lkdGgocGFyZW50U3R5bGUtPmNvbHVtbldpZHRoKCkpOwor
ICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkNvdW50KHBhcmVudFN0eWxlLT5jb2x1bW5Db3Vu
dCgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKKyAgICAgICAgICAgIHN0eWxl
LT5zZXRIYXNBdXRvQ29sdW1uV2lkdGgoKTsKKyAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5D
b3VudChSZW5kZXJTdHlsZTo6aW5pdGlhbENvbHVtbkNvdW50KCkpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfTUFSUVVFRToKICAgICAgICAg
aWYgKHZhbHVlVHlwZSAhPSBDU1NWYWx1ZTo6Q1NTX0lOSEVSSVQgfHwgIXBhcmVudE5vZGUpIHJl
dHVybjsKICAgICAgICAgc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24ocGFyZW50U3R5bGUtPm1h
cnF1ZWVEaXJlY3Rpb24oKSk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwCShyZXZp
c2lvbiAxODY0MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzg5LDYgKzM4OSwzOCBAQCBib29sIFN0eWxlRmxleGlibGVCb3hEYXRhOjpv
cGVyYXRvcj09KGNvCiAgICAgICAgICAgIHBhY2sgPT0gby5wYWNrICYmIG9yaWVudCA9PSBvLm9y
aWVudCAmJiBsaW5lcyA9PSBvLmxpbmVzOwogfQogCitTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVN
dWx0aUNvbERhdGEoKQorICAgIDogbV93aWR0aCgwKQorICAgICwgbV9jb3VudChSZW5kZXJTdHls
ZTo6aW5pdGlhbENvbHVtbkNvdW50KCkpCisgICAgLCBtX2dhcCgwKQorICAgICwgbV9hdXRvV2lk
dGgodHJ1ZSkKKyAgICAsIG1fYXV0b0dhcCh0cnVlKQorICAgICwgbV9icmVha0JlZm9yZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbFBhZ2VCcmVhaygpKQorICAgICwgbV9icmVha0FmdGVyKFJlbmRlclN0
eWxlOjppbml0aWFsUGFnZUJyZWFrKCkpCisgICAgLCBtX2JyZWFrSW5zaWRlKFJlbmRlclN0eWxl
Ojppbml0aWFsUGFnZUJyZWFrKCkpCit7fQorCitTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0
aUNvbERhdGEoY29uc3QgU3R5bGVNdWx0aUNvbERhdGEmIG8pCisgICAgOiBTaGFyZWQ8U3R5bGVN
dWx0aUNvbERhdGE+KCkKKyAgICAsIG1fd2lkdGgoby5tX3dpZHRoKQorICAgICwgbV9jb3VudChv
Lm1fY291bnQpCisgICAgLCBtX2dhcChvLm1fZ2FwKQorICAgICwgbV9ydWxlKG8ubV9ydWxlKQor
ICAgICwgbV9hdXRvV2lkdGgoby5tX2F1dG9XaWR0aCkKKyAgICAsIG1fYXV0b0dhcChvLm1fYXV0
b0dhcCkKKyAgICAsIG1fYnJlYWtCZWZvcmUoby5tX2JyZWFrQmVmb3JlKQorICAgICwgbV9icmVh
a0FmdGVyKG8ubV9icmVha0FmdGVyKQorICAgICwgbV9icmVha0luc2lkZShvLm1fYnJlYWtJbnNp
ZGUpCit7fQorCitib29sIFN0eWxlTXVsdGlDb2xEYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxl
TXVsdGlDb2xEYXRhJiBvKSBjb25zdAoreworICAgIHJldHVybiBtX3dpZHRoID09IG8ubV93aWR0
aCAmJiBtX2NvdW50ID09IG8ubV9jb3VudCAmJiBtX2dhcCA9PSBvLm1fZ2FwICYmCisgICAgICAg
ICAgIG1fcnVsZSA9PSBvLm1fcnVsZSAmJiBtX2JyZWFrQmVmb3JlID09IG8ubV9icmVha0JlZm9y
ZSAmJiAKKyAgICAgICAgICAgbV9hdXRvV2lkdGggPT0gby5tX2F1dG9XaWR0aCAmJiBtX2dhcCA9
PSBvLm1fYXV0b0dhcCAmJgorICAgICAgICAgICBtX2JyZWFrQWZ0ZXIgPT0gby5tX2JyZWFrQWZ0
ZXIgJiYgbV9icmVha0luc2lkZSA9PSBvLm1fYnJlYWtJbnNpZGU7Cit9CisKIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgIDogbGluZUNs
YW1wKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUNsYW1wKCkpCiAgICAgLCBvcGFjaXR5KFJlbmRl
clN0eWxlOjppbml0aWFsT3BhY2l0eSgpKQpAQCAtNDE0LDYgKzQ0Niw3IEBAIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkkKICAgICAsIG9wYWNpdHkoby5vcGFjaXR5KQog
ICAgICwgZmxleGlibGVCb3goby5mbGV4aWJsZUJveCkKICAgICAsIG1hcnF1ZWUoby5tYXJxdWVl
KQorICAgICwgbV9tdWx0aUNvbChvLm1fbXVsdGlDb2wpCiAgICAgLCBtX2NvbnRlbnQoMCkKICAg
ICAsIG1fY291bnRlckRpcmVjdGl2ZXMoMCkKICAgICAsIHVzZXJEcmFnKG8udXNlckRyYWcpCkBA
IC00NTgsNiArNDkxLDcgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cgogICAgICAgICAmJiBvcGFjaXR5ID09IG8ub3BhY2l0eQogICAgICAgICAmJiBmbGV4aWJsZUJv
eCA9PSBvLmZsZXhpYmxlQm94CiAgICAgICAgICYmIG1hcnF1ZWUgPT0gby5tYXJxdWVlCisgICAg
ICAgICYmIG1fbXVsdGlDb2wgPT0gby5tX211bHRpQ29sCiAgICAgICAgICYmIG1fY29udGVudCA9
PSBvLm1fY29udGVudAogICAgICAgICAmJiBtX2NvdW50ZXJEaXJlY3RpdmVzID09IG8ubV9jb3Vu
dGVyRGlyZWN0aXZlcwogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFnCkBAIC02Njcs
NiArNzAxLDcgQEAgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGJvb2wpCiAgICAgcmFyZU5vbklu
aGVyaXRlZERhdGEuaW5pdCgpOwogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5m
bGV4aWJsZUJveC5pbml0KCk7CiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1h
cnF1ZWUuaW5pdCgpOworICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRp
Q29sLmluaXQoKTsKICAgICByYXJlSW5oZXJpdGVkRGF0YS5pbml0KCk7CiAgICAgaW5oZXJpdGVk
LmluaXQoKTsKICAgICAKQEAgLTg2Niw2ICs5MDEsNyBAQCBSZW5kZXJTdHlsZTo6RGlmZiBSZW5k
ZXJTdHlsZTo6ZGlmZihjb25zCiAgICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2lu
VG9wQ29sbGFwc2UgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXJnaW5Ub3BDb2xs
YXBzZSB8fAogICAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkJvdHRvbUNvbGxh
cHNlICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2luQm90dG9tQ29sbGFwc2Ug
fHwKICAgICAgICAgICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+ZmxleGlibGVCb3guZ2V0KCkgIT0g
Km90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+ZmxleGlibGVCb3guZ2V0KCkgfHwKKyAgICAg
ICAgICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC5nZXQoKSAhPSAqb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLmdldCgpIHx8CiAgICAgICAgICAocmFyZU5v
bkluaGVyaXRlZERhdGEtPmxpbmVDbGFtcCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEt
PmxpbmVDbGFtcCkgfHwKICAgICAgICAgIChyYXJlSW5oZXJpdGVkRGF0YS0+aGlnaGxpZ2h0ICE9
IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+aGlnaGxpZ2h0KSB8fAogICAgICAgICAgKHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFkanVzdCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
PnRleHRTaXplQWRqdXN0KSB8fApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5oCShyZXZpc2lv
biAxODY0MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU4NCw3ICs1ODQsMzcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJlaGF2aW9yIDog
MzsgLy8gRU1hcnF1ZWVCZWhhdmlvciAKICAgICBFTWFycXVlZURpcmVjdGlvbiBkaXJlY3Rpb24g
OiAzOyAvLyBub3QgdW5zaWduZWQgYmVjYXVzZSBFTWFycXVlZURpcmVjdGlvbiBoYXMgbmVnYXRp
dmUgdmFsdWVzCiB9OwotICAgIAorICAKKy8vIENTUzMgTXVsdGkgQ29sdW1uIExheW91dAorCitj
bGFzcyBTdHlsZU11bHRpQ29sRGF0YSA6IHB1YmxpYyBTaGFyZWQ8U3R5bGVNdWx0aUNvbERhdGE+
IHsKK3B1YmxpYzoKKyAgICBTdHlsZU11bHRpQ29sRGF0YSgpOworICAgIFN0eWxlTXVsdGlDb2xE
YXRhKGNvbnN0IFN0eWxlTXVsdGlDb2xEYXRhJiBvKTsKKworICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBTdHlsZU11bHRpQ29sRGF0YSYgbykgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFN0eWxlTXVsdGlDb2xEYXRhICZvKSBjb25zdCB7CisgICAgICAgIHJldHVybiAhKCp0aGlz
ID09IG8pOworICAgIH0KKworICAgIHVuc2lnbmVkIHNob3J0IHJ1bGVXaWR0aCgpIGNvbnN0IHsK
KyAgICAgICAgaWYgKG1fcnVsZS5zdHlsZSgpID09IEJOT05FIHx8IG1fcnVsZS5zdHlsZSgpID09
IEJISURERU4pCisgICAgICAgICAgICByZXR1cm4gMDsgCisgICAgICAgIHJldHVybiBtX3J1bGUu
d2lkdGg7CisgICAgfQorCisgICAgZmxvYXQgbV93aWR0aDsKKyAgICB1bnNpZ25lZCBzaG9ydCBt
X2NvdW50OworICAgIGZsb2F0IG1fZ2FwOworICAgIEJvcmRlclZhbHVlIG1fcnVsZTsKKyAgICAK
KyAgICBib29sIG1fYXV0b1dpZHRoIDogMTsKKyAgICBib29sIG1fYXV0b0dhcCA6IDE7CisgICAg
dW5zaWduZWQgbV9icmVha0JlZm9yZSA6IDI7IC8vIEVQYWdlQnJlYWsKKyAgICB1bnNpZ25lZCBt
X2JyZWFrQWZ0ZXIgOiAyOyAvLyBFUGFnZUJyZWFrCisgICAgdW5zaWduZWQgbV9icmVha0luc2lk
ZSA6IDI7IC8vIEVQYWdlQnJlYWsKK307CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBDU1MzIEZsZXhpYmxlIEJveCBQcm9wZXJ0aWVzCiAK
QEAgLTc5NSw4ICs4MjUsMTEgQEAgcHVibGljOgogICAgIGludCBsaW5lQ2xhbXA7IC8vIEFuIEFw
cGxlIGV4dGVuc2lvbi4KICAgICBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+IG1fZGFzaGJv
YXJkUmVnaW9uczsKICAgICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSdyZSB0
cmFuc3BhcmVudC4KKwogICAgIERhdGFSZWY8U3R5bGVGbGV4aWJsZUJveERhdGE+IGZsZXhpYmxl
Qm94OyAvLyBGbGV4aWJsZSBib3ggcHJvcGVydGllcyAKICAgICBEYXRhUmVmPFN0eWxlTWFycXVl
ZURhdGE+IG1hcnF1ZWU7IC8vIE1hcnF1ZWUgcHJvcGVydGllcworICAgIERhdGFSZWY8U3R5bGVN
dWx0aUNvbERhdGE+IG1fbXVsdGlDb2w7IC8vICBDU1MzIG11bHRpY29sIHByb3BlcnRpZXMKKwog
ICAgIENvbnRlbnREYXRhKiBtX2NvbnRlbnQ7CiAgICAgQ291bnRlckRpcmVjdGl2ZU1hcCogbV9j
b3VudGVyRGlyZWN0aXZlczsKIApAQCAtMTQxNCw2ICsxNDQ3LDE3IEBAIHB1YmxpYzoKICAgICBF
TWF0Y2hOZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvciBtYXRjaE5lYXJlc3RNYWlsQmxvY2txdW90
ZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RU1hdGNoTmVhcmVzdE1haWxCbG9j
a3F1b3RlQ29sb3I+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXRjaE5lYXJlc3RNYWlsQmxvY2tx
dW90ZUNvbG9yKTsgfQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaGlnaGxpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodDsgfQogICAgIEVSZXNpemUgcmVz
aXplKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVJlc2l6ZT4ocmFyZUluaGVyaXRlZERh
dGEtPnJlc2l6ZSk7IH0KKyAgICBmbG9hdCBjb2x1bW5XaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX3dpZHRoOyB9CisgICAgYm9vbCBoYXNB
dXRvQ29sdW1uV2lkdGgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9t
dWx0aUNvbC0+bV9hdXRvV2lkdGg7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBjb2x1bW5Db3VudCgp
IGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX2NvdW50
OyB9CisgICAgZmxvYXQgY29sdW1uR2FwKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fbXVsdGlDb2wtPm1fZ2FwOyB9CisgICAgYm9vbCBoYXNBdXRvQ29sdW1uR2FwKCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wtPm1fYXV0b0dh
cDsgfQorICAgIGNvbnN0IENvbG9yJiBjb2x1bW5SdWxlQ29sb3IoKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+bV9ydWxlLmNvbG9yOyB9CisgICAgRUJv
cmRlclN0eWxlIGNvbHVtblJ1bGVTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX211bHRpQ29sLT5tX3J1bGUuc3R5bGUoKTsgfQorICAgIHVuc2lnbmVkIHNob3J0
IGNvbHVtblJ1bGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X211bHRpQ29sLT5ydWxlV2lkdGgoKTsgfQorICAgIEVQYWdlQnJlYWsgY29sdW1uQnJlYWtCZWZv
cmUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFUGFnZUJyZWFrPihyYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9tdWx0aUNvbC0+bV9icmVha0JlZm9yZSk7IH0KKyAgICBFUGFnZUJyZWFrIGNv
bHVtbkJyZWFrSW5zaWRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVBhZ2VCcmVhaz4o
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wtPm1fYnJlYWtJbnNpZGUpOyB9CisgICAg
RVBhZ2VCcmVhayBjb2x1bW5CcmVha0FmdGVyKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
RVBhZ2VCcmVhaz4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wtPm1fYnJlYWtBZnRl
cik7IH0KICAgICAvLyBFbmQgQ1NTMyBHZXR0ZXJzCiAKICAgICAvLyBBcHBsZS1zcGVjaWZpYyBw
cm9wZXJ0eSBnZXR0ZXIgbWV0aG9kcwpAQCAtMTY0Miw2ICsxNjg2LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldE1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3IoRU1hdGNoTmVhcmVzdE1h
aWxCbG9ja3F1b3RlQ29sb3IgYykgIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbWF0
Y2hOZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvciwgYyk7IH0KICAgICB2b2lkIHNldEhpZ2hsaWdo
dChjb25zdCBBdG9taWNTdHJpbmcmIGgpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgaGln
aGxpZ2h0LCBoKTsgfQogICAgIHZvaWQgc2V0UmVzaXplKEVSZXNpemUgcikgeyBTRVRfVkFSKHJh
cmVJbmhlcml0ZWREYXRhLCByZXNpemUsIHIpOyB9CisgICAgdm9pZCBzZXRDb2x1bW5XaWR0aChm
bG9hdCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlD
b2wsIG1fd2lkdGgsIGZhbHNlKTsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9tdWx0aUNvbCwgbV93aWR0aCwgZik7IH0KKyAgICB2b2lkIHNldEhhc0F1dG9Db2x1bW5X
aWR0aCgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNv
bCwgbV9hdXRvV2lkdGgsIHRydWUpOyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vz
cygpLT5tX211bHRpQ29sLCBtX3dpZHRoLCAwKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uQ291bnQo
dW5zaWduZWQgc2hvcnQgYykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vzcygp
LT5tX211bHRpQ29sLCBtX2NvdW50LCBjKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uR2FwKGZsb2F0
IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwg
bV9hdXRvR2FwLCBmYWxzZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fbXVsdGlDb2wsIG1fZ2FwLCBmKTsgfQorICAgIHZvaWQgc2V0SGFzQXV0b0NvbHVtbkdhcCgp
IHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9h
dXRvR2FwLCB0cnVlKTsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9t
dWx0aUNvbCwgbV9nYXAsIDApOyB9CisgICAgdm9pZCBzZXRDb2x1bW5SdWxlQ29sb3IoY29uc3Qg
Q29sb3ImIGMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0
aUNvbCwgbV9ydWxlLmNvbG9yLCBjKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uUnVsZVN0eWxlKEVC
b3JkZXJTdHlsZSBiKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
bXVsdGlDb2wsIG1fcnVsZS5tX3N0eWxlLCBiKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uUnVsZVdp
ZHRoKHVuc2lnbmVkIHNob3J0IHcpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9tdWx0aUNvbCwgbV9ydWxlLndpZHRoLCB3KTsgfQorICAgIHZvaWQgcmVzZXRDb2x1
bW5SdWxlKCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRp
Q29sLCBtX3J1bGUsIEJvcmRlclZhbHVlKCkpIH0KKyAgICB2b2lkIHNldENvbHVtbkJyZWFrQmVm
b3JlKEVQYWdlQnJlYWsgcCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vzcygp
LT5tX211bHRpQ29sLCBtX2JyZWFrQmVmb3JlLCBwKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uQnJl
YWtJbnNpZGUoRVBhZ2VCcmVhayBwKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fbXVsdGlDb2wsIG1fYnJlYWtJbnNpZGUsIHApOyB9CisgICAgdm9pZCBzZXRDb2x1
bW5CcmVha0FmdGVyKEVQYWdlQnJlYWsgcCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2JyZWFrQWZ0ZXIsIHApOyB9CiAgICAgLy8gRW5kIENT
UzMgU2V0dGVycwogICAgCiAgICAgLy8gQXBwbGUtc3BlY2lmaWMgcHJvcGVydHkgc2V0dGVycwpA
QCAtMTc3OCw2ICsxODM0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBFQXBwZWFyYW5jZSBpbml0
aWFsQXBwZWFyYW5jZSgpIHsgcmV0dXJuIE5vQXBwZWFyYW5jZTsgfQogICAgIHN0YXRpYyBib29s
IGluaXRpYWxWaXN1YWxseU9yZGVyZWQoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBm
bG9hdCBpbml0aWFsVGV4dFN0cm9rZVdpZHRoKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyB1
bnNpZ25lZCBzaG9ydCBpbml0aWFsQ29sdW1uQ291bnQoKSB7IHJldHVybiAxOyB9CisgICAgc3Rh
dGljIExlbmd0aCBpbml0aWFsQ29sdW1uV2lkdGgoKSB7IHJldHVybiBMZW5ndGgoKTsgfQogCiAg
ICAgLy8gS2VlcCB0aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBpbnQgaW5pdGlhbExpbmVD
bGFtcCgpIHsgcmV0dXJuIC0xOyB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy96aW5k
ZXgtaW5oZXJpdC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvemlu
ZGV4LWluaGVyaXQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQog
ICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5
QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBYWpVbEVRVlI0bk8zZGE1Q1daUm5BOFdzWEVGRlEKR05nUWNG
b1RrOFV3VGZDUVRubW1zR1ZFakNKekduRWtrQmhLcGNPSHptWkltVTA2RTFKWm1ZTUNtazZhQkFr
cTZvUW9BODdBZ0JVVgpJOGFnWUNCeVdBN0wzUWZISFJmWUU0ZExyTi92Mjd2UDh6NTdQZmY3Zk5q
L2U5cUtVa29KQUFDQUJKWHY5Z0FBQU1EL0R3RUNBQUNrCkVTQUFBRUFhQVFJQUFLUVJJQUFBUUJv
QkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQ2E5M1NBYk42OE9WYXZYbjNJanI5OSsvYjQKeTEv
KzB1VDIrdnI2ZU9tbGx3N1o3K2Z3dFhuejV2ajN2Lys5WC9kdDZib0NBUGhmMW1LQS9PbFBmNHFh
bXBxb3FLaUk2dXJxbURObgpUc08yZGV2V3hkZSs5cldvcUtpSTY2Ky9QdGF2WDM5SWgzMm4rKzY3
TDNyMjdCbjMzbnZ2SVRuK3dvVUxZOUNnUVRGOCtQQjlibi9oCmhSZmk5Tk5Qank5KzhZdUg1UGR6
K0pvNmRXcDA3OTQ5SG5qZ2dUYmZ0NlhyQ2dEZ2YxMkxBVEpreUpCNCt1bW5vN3E2T3JadTNScG4K
bm5sbXc3YXFxcXJvM2J0M2ZPTWIzNGdwVTZaRWp4NDlEdW13NzNUVlZWZEZkWFgxSVR2KzJXZWZI
ZGRjYzAyVDI4ODg4OHk0NElJTApva09IRG9kc0JnNVBZOGFNaVc3ZHV1M1hmVnU2cmdBQS90ZTE2
aTFZNzN2ZisrS2hoeDZLVFpzMnhmang0eHQrL3ZMTEw4ZFRUejBWCmt5Wk5PbVFEdmxNcHBkSHRE
aDA2UkVWRnhTSDdmVWNjY2NRK2o3OTc5KzZJaUdqZnZuMVVWcmE4aEh2T2ZiRHQycldyMWZzZTZs
a08KeEtHYXJTM3IwMW9IY3UwMWRWMEJBUHcvYVBWblFNNDQ0NHo0K3RlL0h2ZmZmMy84L3ZlL2o0
aUlHMjY0SVc2NzdiYTk5dDI4ZVhPTQpIejgrYnJycHBoZzJiRmhNbURBaHRtM2JGaEVSTTJiTWlE
NTkrc1NkZDk0WkVSSFRwMCtQZnYzNnhkaXhZNXY4M1RObXpJZ3BVNmJFCmozNzBvemozM0hNYmJk
dTllM2Q4Kzl2Zmp2ZS8vLzB4WU1DQStOZS8vblhJNXRpNmRXdU1HemN1ZnZDREg4VFlzV05qMGFK
RnphNVoKVTNPLyt1cXJjZU9OTjhiNTU1OGZBd2NPak9lZWU2NVYyL1kwYjk2OG1EeDVjdHgrKysx
eDNubm54YkpseTVxZGZmejQ4WEh6elRmSAo0TUdEWStUSWtURjU4dVI0NXBsbll2SGl4VEZtekpq
NDVqZS9HYmZjY2t0VVZWWEY4ODgvdjE5elB2bmtrekZ5NU1pWU9IRmkzSDMzCjNkRzNiOStvcWFs
cDlMaTBkcDNxNnVwaTRzU0pjZXV0dDhZVlYxd1JZOGFNaVpFalJ6YmNwNlhIcjZuMTJaL3piV3BO
SjA2Y0dEMTcKOW95QkF3ZkdpaFVyV2x5ZmZXbnVPbjNvb1llaXFxb3FycmppaXRpNGNXUDg5cmUv
amFxcXFyajAwa3RqNWNxVkVSRngrKzIzeDhjKwo5ckdvcTZ0cmRsNEFnTU5DYVlPNnVyclNyMSsv
VWxWVlZYN3lrNStVU1pNbTdYTy9qMy84NCtWM3YvdGRLYVdVSFR0MmxMUE9PcXZVCjF0WTJiTy9U
cDArNTVaWmJHbTRQSGp5NGpCZ3hZcC9IMnJselp4azBhRkREN1J0dXVLSFUxOWVYVWtyNThJYy9Y
RTQ3N2JReWQrN2MKc25yMTZsSlRVMU91dSs2Nmd6YkhIWGZjVVk0NzdyaUcyNS82MUtmSzlPblRT
eW1sMU5mWGw5NjllNWRMTDcyMFRYUHYycldyREJreQpwR3phdEtuVTE5ZVhNV1BHbEtxcXFySmh3
NFptdCsxcCsvYnRwVStmUHVXSko1NG9wWlR5M2U5K3QxeDU1Wlg3bktXVVV1Njg4ODV5CjAwMDNs
VkpLV2JwMGFZbUlNbm55NUxKcTFhcXlZTUdDMHExYnQzTDY2YWVYQng5OHNJd1pNNmFzV0xGaXYr
WmN1M1p0T2Zua2swdE4KVFUxNTlORkh5NnBWcTBxL2Z2M0s2TkdqMjdST3BaUlNXMXRiN3IvLy9v
WnR0YlcxNWN3enoyeTQzZHpqMTl6NnRQVjg5K1g0NDQ4dgpIL3JRaDhvamp6eFNubmppaVhMQ0NT
ZVVFMDg4c2V6Y3ViUEZ4M0hQNjZxbDYvU01NODRvMTE1N2JjUHRDeTY0b0l3YU5hcmg5bU9QClBW
Wis4NXZmN0hOT0FJRERUWnUrQmF0ang0NHhkZXJVV0xkdVhkeDk5OTB4Y2VMRXZmYVpQWHQyUFB2
c3N3M1BWSGZvMENHdXZmYmEKK09NZi94Z0xGaXlJaUloT25UbzFlZ3ZLVVVjZDFlUmJValp1M0Jn
dnZ2aGl6Sm8xS3lJaVJvOGUzZWl0T3JXMXRYSHh4UmZIOGNjZgpIeGRlZUdIRHQxSWQ3RG1lZSs2
NW1EVnJWbnppRTUrSWlJakt5c3E0N0xMTG1seXJwdWFlT1hObWxGTGltV2VlaWRtelowZXZYcjFp
CjNicDE4ZlRUVHplN2JVOGRPblNJNGNPSHgybW5uUllSRWQyN2QyLzBEUHllN3IzMzN1amV2WHRF
UkF3WU1DQ3FxcW9pSXFLNnVqck8KT2VlY3FLbXBpZjc5KzhlVlYxNFpkOTExVnl4WnNtUy81dXpa
czJmMDdkczNUajMxMUtpdHJZM3E2dXE0NktLTDRxOS8vV3ViMXVuWgpaNStOV2JObXhaQWhReHIy
N2R1M2I2UDdOdmY0TmJjK2JUM2ZwbnpoQzErSW9VT0h4b1VYWGhpMzNucHIvUE9mLzR5NWMrZTI2
WEZzCnpYVTZhdFNvbUROblRzTmIveTY1NUpKNDlORkhHOTVhTm5mdTNCZ3hZa1NUY3dJQUhFN2Ev
RFc4NTU5L2ZoeDU1SkV4WU1DQWFOKysKL1Y3Ym4zLysrYWlxcW1yMDRleXp6am9ySWlLV0xGblM1
Z0Y3OU9nUnc0Y1BqNkZEaDhhWHZ2U2xPT0dFRTZKZHUzWU4yOS81QjJpMwpidDFpOCtiTmgyU09w
NTU2S21wcWFxSnIxNjROUCt2Y3VYT1R3ZExVM0FzV0xJanUzYnZIRVVjY0VVY2NjVVNjZDk1NThm
ampqOGZBCmdRT2IzYmFuaW9xS3VPT09PMkxqeG8weGVmTGttRDkvZnJ6NTVwdE56dCtsUzVlR1Ay
Z2pJbzQ3N3JnNCsreXpHMjUzNnRTcElVb2kKNG9EbXJLaW9hTFF1WGJwMGFmTHRRVTJ0MC96NTg2
T21waWFPUGZiWVJ1ZmMyczlPdExRK2JUbmZwcnh6dG5QT09TY2lJdjcrOTcrMwo2Vml0dVU0Lzk3
blB4YnAxNitLWlo1NkppSWhseTViRmxpMWJZdDY4ZVZGWFZ4ZTdkKytPbzQ4K3VsWHJBZ0R3YnR1
N0lBN1ExcTFiClkvMzY5YkY1OCtibzNMbHpSRVNjZXVxcDBiNTkrOWl5WmN0K0hmTysrKzZMM3Ix
N3g4OSs5ck5ZdkhoeHpKa3pKNDQ1NXBqVU9WNTUKNVpWOWZzMXdjMzhRNzJ2dTlldlhSL3YyN2VP
U1N5N1phLy9tdHUzTDFLbFQ0OWxubjQxZi8vclg4YXRmL1NxZWYvNzVKdmU5NFlZYgo0cHBycm9t
bFM1ZEd4NDRkNDZpampvcnp6eisveWYwUDVwd3QyZGM2clZtekp2N3puLzhjMEhIYnNqNEhlazdW
MWRYUnBVdVg2TktsClM1dU8xWnJydEh2MzdsRmJXeHZUcGsyTHJsMjd4cUJCZzZLeXNqS21UNThl
Yjd6eFJnd2JObXkvWmdZQWVEY2M5SDlFV0ZOVEUvWDEKOWZIQ0N5ODAvT3kxMTE2TFhidDJSZi8r
L1J0Kzl2YmJTVnF5ZHUzYWVPMjExK0tuUC8xcHpKNDlPNVl1WFJyVHAwOVBuNk4zNzk2eApidDI2
K052Zi9uWkFjMy9nQXgrSXh4OS92TkVyQXFXVWVPcXBwNXJkdHFmbHk1Zkh1SEhqNHJiYmJtdlZW
d0ZmZHRsbE1YcjA2Smc5CmUzWXNXclFvbm56eXlXYjNQMWh6dHFTcGRlclZxMWVzWGJzMlhuNzU1
VWEvWTA5TlBYNXRYWjhEUGFjMWE5YkVtMisrR1IvNXlFZmEKZEt6V1hxZlhYSE5OUFBEQUEvSExY
LzR5cnJ2dXVoZzFhbFE4L1BERE1YZnUzR1pERWdEZ2NOUG1BS212cjQ4ZE8zYkU2NisvdnMvdApJ
MGFNaU9PUFB6NGVmL3p4aHA4dFdyUW9hbXBxNHBPZi9HUkV2UFVNNzhLRkMyUEhqaDJ4WnMyYStN
Yy8vdEhrOFY1Ly9mV1lNV05HClJFUU1Ianc0THIvODhvWm5pcmR1M1JwYnQyNXQySGZidG0wTjN4
NTBNT2JZc1dOSDdOeTVNeUlpUHZ2WnowYjc5dTNqcnJ2dWF0aisKMGtzdnhmcjE2Nk8rdnI3VmMz
Lys4NStQVjE5OU5jYU1HUk1iTm15STExNTdMYjcvL2UvSEJ6LzR3V2EzN1duRmloV3hlL2Z1V0w1
OAplZFRYMThmOCtmT2pycTR1U2luNy9FUDllOS83WHB4ODhza3hZY0tFdU9xcXE2SlRwMDZOdHUv
YXRhdGg3U0xpZ09iY3NXTkhvekRZCnVuWHJQdGVvdVhWNit6RjZlNzIzYjk4ZVM1Y3ViWFJ1elQx
K0xhMVBXODYzS2U4OHB5ZWVlQ0tHRFJzV3A1MTJXcXZXNSszcnFqWFgKYWNSYi80K25ZOGVPMGE1
ZHV6ajIyR1Bqb29zdWltT09PU1o2OWVxMTE2dHcyN2R2angvKzhJZnh5aXV2TkRrN0FNQzdwaTJm
V0YreQpaRW01OGNZYlMwU1VUcDA2bGNtVEo1YzFhOWJzdGQvaXhZdkxLYWVjVW43ODR4K1hXYk5t
bFpFalI1WVZLMVkwYko4M2IxN3AzcjE3Ck9mSEVFOHRYdi9yVk1uYnMySEx4eFJjM2ZHUFJPeTFi
dHF6MDdkdTNUSjA2dGZ6aEQzOG80OGFOS3p0Mzdpd1BQdmhncWF5c0xLZWMKY2twWnNtUkpXYng0
Y2VuZnYzOXAzNzU5ZWVTUlJ3NTRqb1VMRjVhQkF3ZVdpQ2cvLy9uUHkvYnQyOHUwYWROS2x5NWRT
di8rL2N0bgpQdk9aTW5UbzBITHV1ZWVXYWRPbXRYcnVVa3FaTW1WSzZkaXhZNm1vcUNoVlZWWGw0
WWNmYnJoZmM5dmVhY3VXTGVYMDAwOHZuVHQzCkxxTkdqU3FQUGZaWU9lcW9vOHJWVjE5ZHRtL2Z2
dGYrWC9uS1YwcEVsSWdvN2RxMUt6MTc5aXpqeG8xck9LK2pqejY2OU9yVnE4eVkKTWFOVnN6UzFi
Zjc4K2FWcjE2NmxkKy9lWmNHQ0JlWEZGMThzSjUxMFV1bllzV1A1ODUvLzNLWjF1dm5tbTB0bFpX
WHAzYnQzdWZycQpxOHVJRVNNYWZRdFdjNDlmYyt0enp6MzN0UGw4OS9TZDczeW5uSHJxcWVYV1cy
OHRreVpOS2wvKzhwZkxwazJiV2p6V3ZxNnJscTdUCnQwMmNPTEdzWExteTRmYTN2dld0UnJmZnRu
ejU4bEpSVVZIdXVlZWVKdWNIQUhpM1ZKUnlhUDc3V3lrbFZxNWNHWldWbFh0OWUxSEUKVzg4QzE5
ZlhSNmRPbldMbnpwMU52azFtOSs3ZFVWbFpHUnMzYm93T0hUcTArY08yQjJ1T3Q5WFgxOGVHRFJ1
aVI0OGVVVmRYRjBjZQplZVIremIxang0NVl2WHAxVkZkWDcvVmgvdWEyN1duYnRtME5yMlkwTi8r
a1NaUGkwNS8rZE5UVjFjV2JiNzRaR3pkdWpKa3paOGJWClYxL2Q3R2NWRHRhY1RXbHBuVFp0MmhT
VmxaWFJ1WFBudVA3NjYyUHg0c1d4Y09IQ1JqTTA5L2kxZG4zMjk1eldybDBiUFhyMDJPZSsKYlRs
V1M5ZHB4RnV2YkhUczJMSEoyKyswYnQyNlJoK3lCd0E0WEJ5eUFPSHc4WXRmL0NKbXpwd1pjK2ZP
YmZUek9YUG1STisrZmVPawprMDU2bHlacm0zMEZDQUFBN3kwSC9WdXdPUHg4OUtNZmpRa1RKc1NJ
RVNOaTRNQ0JzVzNidG5qMTFWZWp0cmIyUFJNZkVSRkxseTZOCkRSczJSQ21sMVYvSEN3REE0Y1Vy
SVA4bjNuampqWGo2NmFkajdkcTFjZUdGRjc2bndpTWlZdHEwYWJGcTFhcUllT3NmS1Y1KytlWHYK
N2tBQUFPeVhGZ09rNG51ZWFUNmNsTy9vUlFBQTNyc08rdjhCQVFBQWFJb0FBUUFBMGdnUUFBQWdq
UUFCQUFEU0NCQUFBQ0NOQUFFQQpBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFB
Q0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTCkNCQUFBQ0NOQUFFQUFOSUlF
QUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBn
Z1EKQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFB
RFNDQkFBQUNDTkFBRUFBTklJRUFBQQpJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFB
RUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOCkFBRUFBTklJRUFBQUlJ
MEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFB
Z2pRQUIKQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JB
QUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQQowZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5J
SUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJCkVBQUFJSTBBQVFB
QTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFC
QUFEU0NCQUEKQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NO
QUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZwpUVVVwcGJ6YlF3QUFBUDhmdkFJQ0FBQ2tFU0FB
QUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhCkFRSUFBS1FS
SUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFw
QkVnQUFCQUdnRUMKQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNB
QUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQQpwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFB
UUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSCklBQUFR
Qm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FB
QkFHZ0VDQUFDa0VTQUEKQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VT
QUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQQpHZ0VDQUFDa0VTQUFBRUFhQVFJQUFL
UVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CCkFn
QUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dF
Q0FBQ2tFU0FBQUVBYUFRSUEKQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVB
YUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDawpFU0FBQUVBYUFRSUFBS1FSSUFB
QVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVn
CkFBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNr
RVNBQUFFQWFBUUlBQUtRUklBQUEKUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlB
QUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9C
QWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFH
Z0VDCkFBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFB
RUFhQVFJQUFLUVJJQUFBUUJvQkFnQUEKcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJ
QUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUgpJQUFBUUJvQkFnQUFw
QkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FB
Q2tFU0FBCkFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFR
SUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkEKR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFC
b0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQgpBZ0FBcEJFZ0FB
QkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNB
QUFFQWFBUUlBCkFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtR
UklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2sKRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdB
QXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZwpBQUJBR2dF
Q0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFh
QVFJQUFLUVJJQUFBClFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFB
UUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWEKQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVn
QUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQwpBQUNr
RVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFB
S1FSSUFBQVFCb0JBZ0FBCnBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JB
Z0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVIKSUFBQVFCb0JBZ0FBcEJFZ0FBQkFH
Z0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQQpB
RUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklB
QUFRQm9CQWdBQXBCRWdBQUJBCkdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBC
RWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0IKQWdBQXBCRWdBQUJBR2dFQ0FB
Q2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJ
QQpBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJv
QkFnQUFwQkVnQUFCQUdnRUNBQUNrCkVTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFC
QUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWcKQUFCQUdnRUNBQUNrRVNB
QUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FS
SUFBQQpRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FB
cEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhCkFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VD
QUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUMKQUFDa0VTQUFBRUFh
QVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFR
Qm9CQWdBQQpwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdB
QUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSCklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tF
U0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUEKQUVBYUFRSUFB
S1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFn
QUFwQkVnQUFCQQpHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdn
RUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CCkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFF
QWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUEKQUtRUklB
QUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJF
Z0FBQkFHZ0VDQUFDawpFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFD
a0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnCkFBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJ
QUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUEKUUJv
QkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJB
R2dFQ0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FB
QUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcFBrdll6NFNVNU5iCjJWd0FBQUFBU1VWT1JLNUNZSUk9
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12295</attachid>
            <date>2007-01-08 00:20:42 -0800</date>
            <delta_ts>2007-01-08 00:46:05 -0800</delta_ts>
            <desc>Better patch for parsing of the properties.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>42166</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NjU5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMDEtMDggIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBmb3IgaW5oZXJpdGFuY2Ug
b2YgYXV0byB6LWluZGV4LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xheWVycy96aW5kZXgtaW5oZXJpdC5odG1sOiBB
ZGRlZC4KKwogMjAwNy0wMS0wNyAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1p
bmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW0J
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2RmNGYwYmZkMWE3NWQ2YTRhZWVkMzc1MWM0Mzg4
YTMyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMjQweDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjQwOiAiWW91IHNob3VsZCBzZWUgYSBncmVlbiBzcXVhcmUgYmVsb3cuIgorbGF5ZXIg
YXQgKDgsMjYpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMTgpIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIg
YXQgKDgsMjYpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxMDB4MTAwCitsYXllciBhdCAoOCwyNikgc2l6ZSAxMDB4MTAwCisgIFJl
bmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHgxMDAKK2xheWVy
IGF0ICg4LDI2KSBzaXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAx
MDAge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCitsYXllciBhdCAoOCwyNikgc2l6ZSAxMDB4
MTAwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMTAwMCB7RElWfSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAgW2JnY29sb3I9IzAwODAwMF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL3ppbmRleC1pbmhlcml0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvemluZGV4LWluaGVyaXQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXYgeyB3aWR0aDoxMDBweDsgaGVpZ2h0OjEw
MHB4IH0KKy5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuIH0KKy5yZWQgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCitZb3Ugc2hvdWxk
IHNlZSBhIGdyZWVuIHNxdWFyZSBiZWxvdy4KKworPGRpdiBjbGFzcz0icmVkIiBzdHlsZT0icG9z
aXRpb246cmVsYXRpdmU7IHotaW5kZXg6MCI+CisgIDxkaXYgY2xhc3M9InJlZCIgc3R5bGU9InBv
c2l0aW9uOmFic29sdXRlOyB6LWluZGV4OmF1dG8iPgorICAgIDxkaXYgY2xhc3M9InJlZCIgc3R5
bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OmluaGVyaXQiPgorICAgICAgPGRpdiBjbGFz
cz0iZ3JlZW4iIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwIj4KKyAgICAg
IDwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0icmVkIiBzdHlsZT0i
cG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODY1OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMDctMDEtMDggIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhbGwgb2YgdGhlIENTUzMg
bXVsdGktY29sdW1uIHByb3BlcnRpZXMgaW4gcHJlcGFyYXRpb24gZm9yIGltcGxlbWVudGluZyB0
aGUKKyAgICAgICAgZmVhdHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL2Nzc3BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9jc3Nz
dHlsZXNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNvbERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6cnVsZVdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5XaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzQXV0b0NvbHVtbldpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6Y29sdW1uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpoYXNB
dXRvQ29sdW1uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5SdWxl
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uUnVsZVdpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5CcmVha0JlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uQnJlYWtJbnNpZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OmNvbHVtbkJyZWFrQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnNldENvbHVtbldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpzZXRIYXNBdXRvQ29sdW1uV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OnNldENvbHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1
bW5HYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEhhc0F1dG9Db2x1bW5H
YXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVDb2xvcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5SdWxlV2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlc2V0Q29sdW1uUnVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29sdW1uQnJlYWtCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OnNldENvbHVtbkJyZWFrSW5zaWRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5CcmVha0FmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjppbml0aWFsQ29sdW1uQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OmluaXRpYWxDb2x1bW5XaWR0aCk6CisKIDIwMDctMDEtMDcgIFJvYiBCdWlzICA8YnVp
c0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBXZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDE4NjQyKQorKysg
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzksNiArNzksMTUgQEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNb
XSA9IAogICAgIENTU19QUk9QX0NBUFRJT05fU0lERSwKICAgICBDU1NfUFJPUF9DTEVBUiwKICAg
ICBDU1NfUFJPUF9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9DT1VOVCwKKyAg
ICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVAsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fUlVMRV9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1NUWUxFLAor
ICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsCisgICAgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fQlJFQUtfQkVGT1JFLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JS
RUFLX0FGVEVSLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0lOU0lERSwKKyAg
ICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9XSURUSCwKICAgICBDU1NfUFJPUF9DVVJTT1IsCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIENTU19QUk9QX19XRUJLSVRfREFTSEJPQVJEX1JFR0lPTiwK
QEAgLTYwMyw2ICs2MTIsNTUgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHls
ZURlYwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX0NPTE9SOgogICAgICAgICBy
ZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2xvcigpLnJnYigpKTsKKyAgICBj
YXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0NPVU5UOgorICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1bW5Db3VudCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUik7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVA6CisgICAg
ICAgIGlmIChzdHlsZS0+aGFzQXV0b0NvbHVtbkdhcCgpKQorICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX05PUk1BTCk7CisgICAgICAgIHJldHVybiBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUoc3R5bGUtPnRleHRTdHJva2VXaWR0aCgpLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUik7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxF
X0NPTE9SOgorICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1
bW5SdWxlQ29sb3IoKS5yZ2IoKSk7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9S
VUxFX1NUWUxFOgorICAgICAgICByZXR1cm4gdmFsdWVGb3JCb3JkZXJTdHlsZShzdHlsZS0+Y29s
dW1uUnVsZVN0eWxlKCkpOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9X
SURUSDoKKyAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdHlsZS0+Y29sdW1u
UnVsZVdpZHRoKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgIGNhc2UgQ1NTX1BS
T1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfQUZURVI6CisgICAgICAgIHN3aXRjaCAoc3R5bGUtPmNv
bHVtbkJyZWFrQWZ0ZXIoKSkgeworICAgICAgICAgICAgY2FzZSBQQkFVVE86CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAg
ICAgICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfQUxXQVlTKTsKKyAgICAgICAgICAgIGNhc2UgUEJBVk9JRDoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVZPSUQp
OworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gMDsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9SRToKKyAg
ICAgICAgc3dpdGNoIChzdHlsZS0+Y29sdW1uQnJlYWtCZWZvcmUoKSkgeworICAgICAgICAgICAg
Y2FzZSBQQkFVVE86CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQUxXQVlTKTsKKyAgICAg
ICAgICAgIGNhc2UgUEJBVk9JRDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1p
dGl2ZVZhbHVlKENTU19WQUxfQVZPSUQpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRf
Q09MVU1OX0JSRUFLX0lOU0lERToKKyAgICAgICAgc3dpdGNoIChzdHlsZS0+Y29sdW1uQnJlYWtJ
bnNpZGUoKSkgeworICAgICAgICAgICAgY2FzZSBQQkFVVE86CisgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOworICAgICAgICAgICAgY2Fz
ZSBQQkFWT0lEOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
Q1NTX1ZBTF9BVk9JRCk7CisgICAgICAgICAgICBjYXNlIFBCQUxXQVlTOgorICAgICAgICAgICAg
ICAgIGJyZWFrOyAvLyBub3QgYWxsb3dlZAorICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRf
Q09MVU1OX1dJRFRIOgorICAgICAgICBpZiAoc3R5bGUtPmhhc0F1dG9Db2x1bW5XaWR0aCgpKQor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOwor
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1bW5XaWR0aCgp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgY2FzZSBDU1NfUFJPUF9DT05U
RU5UOgogICAgICAgICAvLyBGSVhNRTogdW5pbXBsZW1lbnRlZAogICAgICAgICBicmVhazsKSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9u
IDE4NjQyKQorKysgV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NTQsNiArNDU0LDE1IEBAIGNvbnN0IHVuc2lnbmVkIG51bUluaGVy
aXRhYmxlUHJvcGVydGllcyAKIHN0YXRpYyBjb25zdCBpbnQgYmxvY2tQcm9wZXJ0aWVzW10gPSB7
CiAgICAgQ1NTX1BST1BfT1JQSEFOUywKICAgICBDU1NfUFJPUF9PVkVSRkxPVywgLy8gVGhpcyBj
YW4gYmUgYWxzbyBiZSBhcHBsaWVkIHRvIHJlcGxhY2VkIGVsZW1lbnRzCisgICAgQ1NTX1BST1Bf
X1dFQktJVF9DT0xVTU5fQ09VTlQsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fR0FQLAor
ICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfQ09MT1IsCisgICAgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fUlVMRV9TVFlMRSwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxF
X1dJRFRILAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9SRSwKKyAgICBD
U1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19BRlRFUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lU
X0NPTFVNTl9CUkVBS19JTlNJREUsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fV0lEVEgs
CiAgICAgQ1NTX1BST1BfUEFHRV9CUkVBS19BRlRFUiwKICAgICBDU1NfUFJPUF9QQUdFX0JSRUFL
X0JFRk9SRSwKICAgICBDU1NfUFJPUF9QQUdFX0JSRUFLX0lOU0lERSwKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgkocmV2aXNpb24gMTg2NDIpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1NywxNyBAQCBjYXB0aW9uLXNpZGUK
IGNsZWFyCiBjbGlwCiBjb2xvcgorLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXIKKy13ZWJraXQt
Y29sdW1uLWJyZWFrLWJlZm9yZQorLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlCistd2Via2l0
LWNvbHVtbi1jb3VudAorLXdlYmtpdC1jb2x1bW4tZ2FwCistd2Via2l0LWNvbHVtbi1ydWxlLWNv
bG9yCistd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlCistd2Via2l0LWNvbHVtbi1ydWxlLXdpZHRo
Cistd2Via2l0LWNvbHVtbi1ydWxlCistd2Via2l0LWNvbHVtbi13aWR0aAorLXdlYmtpdC1jb2x1
bW5zCiBjb250ZW50CiBjb3VudGVyLWluY3JlbWVudAogY291bnRlci1yZXNldApJbmRleDogV2Vi
Q29yZS9jc3MvY3NzcGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9jc3NwYXJz
ZXIuY3BwCShyZXZpc2lvbiAxODY0MikKKysrIFdlYkNvcmUvY3NzL2Nzc3BhcnNlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ4Myw3ICs0ODMsOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NfUFJPUF9QQUdF
X0JSRUFLX0FGVEVSOiAgICAgLy8gYXV0byB8IGFsd2F5cyB8IGF2b2lkIHwgbGVmdCB8IHJpZ2h0
IHwgaW5oZXJpdAotICAgIGNhc2UgQ1NTX1BST1BfUEFHRV9CUkVBS19CRUZPUkU6ICAgIC8vIGF1
dG8gfCBhbHdheXMgfCBhdm9pZCB8IGxlZnQgfCByaWdodCB8IGluaGVyaXQKKyAgICBjYXNlIENT
U19QUk9QX1BBR0VfQlJFQUtfQkVGT1JFOgorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fQlJFQUtfQUZURVI6CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19C
RUZPUkU6CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwKICAgICAgICAgICAgICBp
ZCA9PSBDU1NfVkFMX0FMV0FZUyB8fAogICAgICAgICAgICAgIGlkID09IENTU19WQUxfQVZPSUQg
fHwKQEAgLTQ5Myw4ICs0OTUsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBiCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NfUFJPUF9QQUdFX0JSRUFLX0lO
U0lERTogICAgLy8gYXZvaWQgfCBhdXRvIHwgaW5oZXJpdAotICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9BVVRPIHx8Ci0gICAgICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9BVk9JRCkKKyAgICBjYXNl
IENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0lOU0lERToKKyAgICAgICAgaWYgKGlkID09
IENTU19WQUxfQVVUTyB8fCBpZCA9PSBDU1NfVkFMX0FWT0lEKQogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKQEAgLTYxMSw3ICs2MTMsOCBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJP
UF9CT1JERVJfVE9QX1NUWUxFOiAgICAgLy8vLyA8Ym9yZGVyLXN0eWxlPiB8IGluaGVyaXQKICAg
ICBjYXNlIENTU19QUk9QX0JPUkRFUl9SSUdIVF9TVFlMRTogICAvLyAgIERlZmluZWQgYXM6ICAg
IG5vbmUgfCBoaWRkZW4gfCBkb3R0ZWQgfCBkYXNoZWQgfAogICAgIGNhc2UgQ1NTX1BST1BfQk9S
REVSX0JPVFRPTV9TVFlMRTogIC8vICAgc29saWQgfCBkb3VibGUgfCBncm9vdmUgfCByaWRnZSB8
IGluc2V0IHwgb3V0c2V0Ci0gICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9TVFlMRTogICAg
Ly8vLworICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0xFRlRfU1RZTEU6CisgICAgY2FzZSBDU1Nf
UFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1NUWUxFOgogICAgICAgICBpZiAoaWQgPj0gQ1NTX1ZB
TF9OT05FICYmIGlkIDw9IENTU19WQUxfRE9VQkxFKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC02ODMsNiArNjg2LDcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9M
SU5FX1RIUk9VR0hfQ09MT1I6IC8vIENTUzMgdGV4dCBkZWNvcmF0aW9uIGNvbG9ycwogICAgIGNh
c2UgQ1NTX1BST1BfVEVYVF9VTkRFUkxJTkVfQ09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9URVhU
X09WRVJMSU5FX0NPTE9SOgorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9D
T0xPUjoKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9GSUxMX0NPTE9SOgogICAgIGNh
c2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUjoKICAgICAgICAgaWYgKGlkID09
IENTU19WQUxfX1dFQktJVF9URVhUKQpAQCAtODA1LDcgKzgwOSw4IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9UT1Bf
V0lEVEg6ICAgICAvLy8vIDxib3JkZXItd2lkdGg+IHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTX1BS
T1BfQk9SREVSX1JJR0hUX1dJRFRIOiAgIC8vICAgV2hpY2ggaXMgZGVmaW5lZCBhcwogICAgIGNh
c2UgQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9XSURUSDogIC8vICAgdGhpbiB8IG1lZGl1bSB8IHRo
aWNrIHwgPGxlbmd0aD4KLSAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9MRUZUX1dJRFRIOiAgICAv
Ly8vCisgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9XSURUSDoKKyAgICBjYXNlIENTU19Q
Uk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEg6CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFM
X1RISU4gfHwgaWQgPT0gQ1NTX1ZBTF9NRURJVU0gfHwgaWQgPT0gQ1NTX1ZBTF9USElDSykKICAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKQEAgLTExOTYs
NiArMTIwMSwyNCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAg
ICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9CT1RIIHx8IGlk
ID09IENTU19WQUxfSE9SSVpPTlRBTCB8fCBpZCA9PSBDU1NfVkFMX1ZFUlRJQ0FMIHx8IGlkID09
IENTU19WQUxfQVVUTykKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQ09VTlQ6CisgICAg
ICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAhaWQg
JiYgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8IEZOb25OZWcsIGZhbHNlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVA6ICAgICAgICAgLy8g
bm9ybWFsIHwgPGxlbmd0aD4KKyAgICAgICAgaWYgKGlkID09IENTU19WQUxfTk9STUFMKQorICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBzdHJpY3QpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1dJRFRIOiAg
ICAgICAgIC8vIGF1dG8gfCA8bGVuZ3RoPgorICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRP
KQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoLCBzdHJp
Y3QpOworICAgICAgICBicmVhazsKICAgICAvLyBFbmQgb2YgQ1NTMyBwcm9wZXJ0aWVzCiAKICAg
ICAvLyBBcHBsZSBzcGVjaWZpYyBwcm9wZXJ0aWVzLiAgVGhlc2Ugd2lsbCBuZXZlciBiZSBzdGFu
ZGFyZGl6ZWQgYW5kIGFyZSBwdXJlbHkgdG8KQEAgLTEzNDYsNiArMTM2OSwxNSBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDU1NfUFJPUF9MSVNUX1NUWUxFX0lNQUdFIH07CiAgICAgICAgIHJldHVy
biBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCk7CiAgICAg
fQorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5TOiB7CisgICAgICAgIGNvbnN0IGlu
dCBwcm9wZXJ0aWVzWzJdID0geyBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9XSURUSCwgQ1NTX1BS
T1BfX1dFQktJVF9DT0xVTU5fQ09VTlQgfTsKKyAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5k
KHByb3BJZCwgcHJvcGVydGllcywgMywgaW1wb3J0YW50KTsKKyAgICB9CisgICAgY2FzZSBDU1Nf
UFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVz
WzNdID0geyBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1dJRFRILCBDU1NfUFJPUF9fV0VC
S0lUX0NPTFVNTl9SVUxFX1NUWUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9DT0xPUiB9OworICAgICAgICByZXR1cm4g
cGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBpbXBvcnRhbnQpOworICAgIH0K
ICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9TVFJPS0U6IHsKICAgICAgICAgY29uc3Qg
aW50IHByb3BlcnRpZXNbMl0gPSB7IENTU19QUk9QX19XRUJLSVRfVEVYVF9TVFJPS0VfV0lEVEgs
IENTU19QUk9QX19XRUJLSVRfVEVYVF9TVFJPS0VfQ09MT1IgfTsKICAgICAgICAgcmV0dXJuIHBh
cnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMiwgaW1wb3J0YW50KTsKSW5kZXg6IFdl
YkNvcmUvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L2Nzc3N0eWxlc2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxODY0MikKKysrIFdlYkNvcmUvY3NzL2Nz
c3N0eWxlc2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTI3LDYgKzI1MjcsNyBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgY2FzZSBDU1NfUFJP
UF9CT1JERVJfTEVGVF9DT0xPUjoKICAgICBjYXNlIENTU19QUk9QX0NPTE9SOgogICAgIGNhc2Ug
Q1NTX1BST1BfT1VUTElORV9DT0xPUjoKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1O
X1JVTEVfQ09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX1RFWFRfU1RST0tFX0NPTE9S
OgogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX0ZJTExfQ09MT1I6IHsKICAgICAgICAg
Q29sb3IgY29sOwpAQCAtMjUzOCw2ICsyNTM5LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjph
cHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJP
UF9CT1JERVJfTEVGVF9DT0xPUiwgYm9yZGVyTGVmdENvbG9yLCBCb3JkZXJMZWZ0Q29sb3IpCiAg
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX0NPTE9SLCBjb2xvciwgQ29s
b3IpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX09VVExJTkVfQ09M
T1IsIG91dGxpbmVDb2xvciwgT3V0bGluZUNvbG9yKQorICAgICAgICAgICAgSEFORExFX0lOSEVS
SVRfQ09ORChDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX0NPTE9SLCBjb2x1bW5SdWxlQ29s
b3IsIENvbHVtblJ1bGVDb2xvcikKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NT
X1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUiwgdGV4dFN0cm9rZUNvbG9yLCBUZXh0U3Ry
b2tlQ29sb3IpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX19XRUJL
SVRfVEVYVF9GSUxMX0NPTE9SLCB0ZXh0RmlsbENvbG9yLCBUZXh0RmlsbENvbG9yKQogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMjU2OSw2ICsyNTcxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgc3R5bGUtPnNldENvbG9yKGNvbCk7IGJy
ZWFrOwogICAgICAgICBjYXNlIENTU19QUk9QX09VVExJTkVfQ09MT1I6CiAgICAgICAgICAgICBz
dHlsZS0+c2V0T3V0bGluZUNvbG9yKGNvbCk7IGJyZWFrOworICAgICAgICBjYXNlIENTU19QUk9Q
X19XRUJLSVRfQ09MVU1OX1JVTEVfQ09MT1I6CisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1u
UnVsZUNvbG9yKGNvbCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NfUFJP
UF9fV0VCS0lUX1RFWFRfU1RST0tFX0NPTE9SOgogICAgICAgICAgICAgc3R5bGUtPnNldFRleHRT
dHJva2VDb2xvcihjb2wpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjAwLDYgKzI2MDUsNyBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgY2FzZSBDU1Nf
UFJPUF9CT1JERVJfQk9UVE9NX1dJRFRIOgogICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0xFRlRf
V0lEVEg6CiAgICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5FX1dJRFRIOgorICAgIGNhc2UgQ1NTX1BS
T1BfX1dFQktJVF9DT0xVTU5fUlVMRV9XSURUSDoKICAgICB7CiAgICAgICAgIGlmIChpc0luaGVy
aXQpIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfQk9SREVSX1RP
UF9XSURUSCwgYm9yZGVyVG9wV2lkdGgsIEJvcmRlclRvcFdpZHRoKQpAQCAtMjYwNyw2ICsyNjEz
LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9CT1JERVJfQk9UVE9NX1dJRFRILCBib3Jk
ZXJCb3R0b21XaWR0aCwgQm9yZGVyQm90dG9tV2lkdGgpCiAgICAgICAgICAgICBIQU5ETEVfSU5I
RVJJVF9DT05EKENTU19QUk9QX0JPUkRFUl9MRUZUX1dJRFRILCBib3JkZXJMZWZ0V2lkdGgsIEJv
cmRlckxlZnRXaWR0aCkKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1Bf
T1VUTElORV9XSURUSCwgb3V0bGluZVdpZHRoLCBPdXRsaW5lV2lkdGgpCisgICAgICAgICAgICBI
QU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsIGNv
bHVtblJ1bGVXaWR0aCwgQ29sdW1uUnVsZVdpZHRoKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGlzSW5pdGlhbCkgewpAQCAtMjYxNSw2ICsyNjIyLDcg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAg
SEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU19QUk9QX0JPUkRFUl9CT1RUT01fV0lE
VEgsIEJvcmRlckJvdHRvbVdpZHRoLCBCb3JkZXJXaWR0aCkKICAgICAgICAgICAgIEhBTkRMRV9J
TklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NfUFJPUF9CT1JERVJfTEVGVF9XSURUSCwgQm9yZGVy
TGVmdFdpZHRoLCBCb3JkZXJXaWR0aCkKICAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRf
V0lUSF9WQUxVRShDU1NfUFJPUF9PVVRMSU5FX1dJRFRILCBPdXRsaW5lV2lkdGgsIEJvcmRlcldp
ZHRoKQorICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU19QUk9Q
X19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsIENvbHVtblJ1bGVXaWR0aCwgQm9yZGVyV2lkdGgp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMjY1Niw2ICsyNjY0LDkgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICBjYXNlIENT
U19QUk9QX09VVExJTkVfV0lEVEg6CiAgICAgICAgICAgICBzdHlsZS0+c2V0T3V0bGluZVdpZHRo
KHdpZHRoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU19QUk9QX19XRUJL
SVRfQ09MVU1OX1JVTEVfV0lEVEg6CisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uUnVsZVdp
ZHRoKHdpZHRoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zMTA3LDggKzMxMTgsMTIgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU19QUk9QX1pfSU5ERVg6CiAgICAgewotICAgICAgICBIQU5ETEVfSU5IRVJJVCh6SW5kZXgs
IFpJbmRleCkKLSAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7CisgICAgICAgIGlmIChpc0lu
aGVyaXQpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZS0+aGFzQXV0b1pJbmRleCgpKQor
ICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRIYXNBdXRvWkluZGV4KCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldFpJbmRleChwYXJlbnRTdHlsZS0+ekluZGV4
KCkpOworICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewogICAgICAgICAgICAgc3R5bGUt
PnNldEhhc0F1dG9aSW5kZXgoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MzkzMiw2ICszOTQ3LDExOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHko
aW50CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHN0eWxlLT5zZXRCb3hTaXppbmcoQk9SREVS
X0JPWCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5f
Q09VTlQ6IHsKKyAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoY29sdW1uQ291bnQs
IENvbHVtbkNvdW50KQorICAgICAgICB1bnNpZ25lZCBzaG9ydCBjb3VudCA9IDA7CisgICAgICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAg
ICAgICBjb3VudCA9IDE7CisgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRp
dmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCisgICAgICAgICAgICBj
b3VudCA9ICh1bnNpZ25lZCBzaG9ydCkocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSk7
CisgICAgICAgIGlmIChjb3VudCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBz
dHlsZS0+c2V0Q29sdW1uQ291bnQoY291bnQpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVA6IHsKKyAgICAgICAgaWYgKGlzSW5oZXJp
dCkgeworICAgICAgICAgICAgaWYgKHBhcmVudFN0eWxlLT5oYXNBdXRvQ29sdW1uR2FwKCkpCisg
ICAgICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1bW5HYXAoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uR2FwKHBhcmVudFN0eWxlLT5j
b2x1bW5HYXAoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsKSB7CisgICAgICAgICAg
ICBzdHlsZS0+c2V0SGFzQXV0b0NvbHVtbkdhcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NfVkFM
X05PUk1BTCkgeworICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1bW5HYXAoKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgc3R5bGUtPnNldENv
bHVtbkdhcChwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fV0lEVEg6IHsKKyAgICAg
ICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAgICAgICAgaWYgKHBhcmVudFN0eWxlLT5oYXNBdXRv
Q29sdW1uV2lkdGgoKSkKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0SGFzQXV0b0NvbHVtbldp
ZHRoKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldENvbHVt
bldpZHRoKHBhcmVudFN0eWxlLT5jb2x1bW5XaWR0aCgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChp
c0luaXRpYWwpIHsKKyAgICAgICAgICAgIHN0eWxlLT5zZXRIYXNBdXRvQ29sdW1uV2lkdGgoKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTX1ZBTF9BVVRPKSB7CisgICAgICAgICAgICBzdHlsZS0+c2V0
SGFzQXV0b0NvbHVtbldpZHRoKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgc3R5bGUtPnNldENvbHVtbldpZHRoKHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVl
KCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NP
TFVNTl9SVUxFX1NUWUxFOgorICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTF9XSVRI
X1ZBTFVFKGNvbHVtblJ1bGVTdHlsZSwgQ29sdW1uUnVsZVN0eWxlLCBCb3JkZXJTdHlsZSkKKyAg
ICAgICAgc3R5bGUtPnNldENvbHVtblJ1bGVTdHlsZSgoRUJvcmRlclN0eWxlKShwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSAtIENTU19WQUxfTk9ORSkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9SRTogeworICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZBTFVFKGNvbHVtbkJyZWFrQmVmb3JlLCBDb2x1
bW5CcmVha0JlZm9yZSwgUGFnZUJyZWFrKQorICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICBjYXNlIENTU19WQUxfQVVUTzoKKyAgICAgICAg
ICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtCZWZvcmUoUEJBVVRPKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9MRUZUOgorICAgICAgICAgICAg
Y2FzZSBDU1NfVkFMX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FMV0FZUzoKKyAg
ICAgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtCZWZvcmUoUEJBTFdBWVMpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FWT0lEOgorICAg
ICAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5CcmVha0JlZm9yZShQQkFWT0lEKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19BRlRFUjogeworICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZBTFVFKGNvbHVtbkJyZWFrQWZ0ZXIsIENvbHVt
bkJyZWFrQWZ0ZXIsIFBhZ2VCcmVhaykKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FVVE86CisgICAgICAgICAg
ICAgICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQWZ0ZXIoUEJBVVRPKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9MRUZUOgorICAgICAgICAgICAgY2Fz
ZSBDU1NfVkFMX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FMV0FZUzoKKyAgICAg
ICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtBZnRlcihQQkFMV0FZUyk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU19WQUxfQVZPSUQ6CisgICAgICAg
ICAgICAgICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQWZ0ZXIoUEJBVk9JRCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
Q1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfSU5TSURFOiB7CisgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMX1dJVEhfVkFMVUUoY29sdW1uQnJlYWtJbnNpZGUsIENvbHVtbkJy
ZWFrSW5zaWRlLCBQYWdlQnJlYWspCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtJ
bnNpZGUoUEJBVVRPKTsKKyAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTX1ZBTF9BVk9JRCkKKyAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5CcmVha0lu
c2lkZShQQkFWT0lEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgY2FzZSBDU1NfUFJP
UF9fV0VCS0lUX0NPTFVNTl9SVUxFOgorICAgICAgICBpZiAoaXNJbmhlcml0KSB7CisgICAgICAg
ICAgICBzdHlsZS0+c2V0Q29sdW1uUnVsZUNvbG9yKHBhcmVudFN0eWxlLT5jb2x1bW5SdWxlQ29s
b3IoKSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uUnVsZVN0eWxlKHBhcmVudFN0eWxl
LT5jb2x1bW5SdWxlU3R5bGUoKSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uUnVsZVdp
ZHRoKHBhcmVudFN0eWxlLT5jb2x1bW5SdWxlV2lkdGgoKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZWxzZSBpZiAoaXNJbml0aWFsKQorICAgICAgICAgICAgc3R5bGUtPnJlc2V0Q29sdW1uUnVsZSgp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTlM6Cisg
ICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZS0+aGFz
QXV0b0NvbHVtbldpZHRoKCkpCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1
bW5XaWR0aCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRD
b2x1bW5XaWR0aChwYXJlbnRTdHlsZS0+Y29sdW1uV2lkdGgoKSk7CisgICAgICAgICAgICBzdHls
ZS0+c2V0Q29sdW1uQ291bnQocGFyZW50U3R5bGUtPmNvbHVtbkNvdW50KCkpOworICAgICAgICB9
IGVsc2UgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1
bW5XaWR0aCgpOworICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkNvdW50KFJlbmRlclN0eWxl
Ojppbml0aWFsQ29sdW1uQ291bnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgQ1NTX1BST1BfX1dFQktJVF9NQVJRVUVFOgogICAgICAgICBpZiAodmFsdWVUeXBlICE9
IENTU1ZhbHVlOjpDU1NfSU5IRVJJVCB8fCAhcGFyZW50Tm9kZSkgcmV0dXJuOwogICAgICAgICBz
dHlsZS0+c2V0TWFycXVlZURpcmVjdGlvbihwYXJlbnRTdHlsZS0+bWFycXVlZURpcmVjdGlvbigp
KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDE4NjQyKQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODks
NiArMzg5LDM4IEBAIGJvb2wgU3R5bGVGbGV4aWJsZUJveERhdGE6Om9wZXJhdG9yPT0oY28KICAg
ICAgICAgICAgcGFjayA9PSBvLnBhY2sgJiYgb3JpZW50ID09IG8ub3JpZW50ICYmIGxpbmVzID09
IG8ubGluZXM7CiB9CiAKK1N0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRpQ29sRGF0YSgpCisg
ICAgOiBtX3dpZHRoKDApCisgICAgLCBtX2NvdW50KFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1u
Q291bnQoKSkKKyAgICAsIG1fZ2FwKDApCisgICAgLCBtX2F1dG9XaWR0aCh0cnVlKQorICAgICwg
bV9hdXRvR2FwKHRydWUpCisgICAgLCBtX2JyZWFrQmVmb3JlKFJlbmRlclN0eWxlOjppbml0aWFs
UGFnZUJyZWFrKCkpCisgICAgLCBtX2JyZWFrQWZ0ZXIoUmVuZGVyU3R5bGU6OmluaXRpYWxQYWdl
QnJlYWsoKSkKKyAgICAsIG1fYnJlYWtJbnNpZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxQYWdlQnJl
YWsoKSkKK3t9CisKK1N0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRpQ29sRGF0YShjb25zdCBT
dHlsZU11bHRpQ29sRGF0YSYgbykKKyAgICA6IFNoYXJlZDxTdHlsZU11bHRpQ29sRGF0YT4oKQor
ICAgICwgbV93aWR0aChvLm1fd2lkdGgpCisgICAgLCBtX2NvdW50KG8ubV9jb3VudCkKKyAgICAs
IG1fZ2FwKG8ubV9nYXApCisgICAgLCBtX3J1bGUoby5tX3J1bGUpCisgICAgLCBtX2F1dG9XaWR0
aChvLm1fYXV0b1dpZHRoKQorICAgICwgbV9hdXRvR2FwKG8ubV9hdXRvR2FwKQorICAgICwgbV9i
cmVha0JlZm9yZShvLm1fYnJlYWtCZWZvcmUpCisgICAgLCBtX2JyZWFrQWZ0ZXIoby5tX2JyZWFr
QWZ0ZXIpCisgICAgLCBtX2JyZWFrSW5zaWRlKG8ubV9icmVha0luc2lkZSkKK3t9CisKK2Jvb2wg
U3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVNdWx0aUNvbERhdGEmIG8p
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2lkdGggPT0gby5tX3dpZHRoICYmIG1fY291bnQgPT0g
by5tX2NvdW50ICYmIG1fZ2FwID09IG8ubV9nYXAgJiYKKyAgICAgICAgICAgbV9ydWxlID09IG8u
bV9ydWxlICYmIG1fYnJlYWtCZWZvcmUgPT0gby5tX2JyZWFrQmVmb3JlICYmIAorICAgICAgICAg
ICBtX2F1dG9XaWR0aCA9PSBvLm1fYXV0b1dpZHRoICYmIG1fZ2FwID09IG8ubV9hdXRvR2FwICYm
CisgICAgICAgICAgIG1fYnJlYWtBZnRlciA9PSBvLm1fYnJlYWtBZnRlciAmJiBtX2JyZWFrSW5z
aWRlID09IG8ubV9icmVha0luc2lkZTsKK30KKwogU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgOiBsaW5lQ2xhbXAoUmVuZGVyU3R5bGU6
OmluaXRpYWxMaW5lQ2xhbXAoKSkKICAgICAsIG9wYWNpdHkoUmVuZGVyU3R5bGU6OmluaXRpYWxP
cGFjaXR5KCkpCkBAIC00MTQsNiArNDQ2LDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6
U3R5bGVSYXJlTm9uSQogICAgICwgb3BhY2l0eShvLm9wYWNpdHkpCiAgICAgLCBmbGV4aWJsZUJv
eChvLmZsZXhpYmxlQm94KQogICAgICwgbWFycXVlZShvLm1hcnF1ZWUpCisgICAgLCBtX211bHRp
Q29sKG8ubV9tdWx0aUNvbCkKICAgICAsIG1fY29udGVudCgwKQogICAgICwgbV9jb3VudGVyRGly
ZWN0aXZlcygwKQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKQEAgLTQ1OCw2ICs0OTEsNyBA
QCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yCiAgICAgICAgICYmIG9w
YWNpdHkgPT0gby5vcGFjaXR5CiAgICAgICAgICYmIGZsZXhpYmxlQm94ID09IG8uZmxleGlibGVC
b3gKICAgICAgICAgJiYgbWFycXVlZSA9PSBvLm1hcnF1ZWUKKyAgICAgICAgJiYgbV9tdWx0aUNv
bCA9PSBvLm1fbXVsdGlDb2wKICAgICAgICAgJiYgbV9jb250ZW50ID09IG8ubV9jb250ZW50CiAg
ICAgICAgICYmIG1fY291bnRlckRpcmVjdGl2ZXMgPT0gby5tX2NvdW50ZXJEaXJlY3RpdmVzCiAg
ICAgICAgICYmIHVzZXJEcmFnID09IG8udXNlckRyYWcKQEAgLTY2Nyw2ICs3MDEsNyBAQCBSZW5k
ZXJTdHlsZTo6UmVuZGVyU3R5bGUoYm9vbCkKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5pbml0
KCk7CiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPmZsZXhpYmxlQm94LmluaXQo
KTsKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bWFycXVlZS5pbml0KCk7Cisg
ICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wuaW5pdCgpOwogICAg
IHJhcmVJbmhlcml0ZWREYXRhLmluaXQoKTsKICAgICBpbmhlcml0ZWQuaW5pdCgpOwogICAgIApA
QCAtODY2LDYgKzkwMSw3IEBAIFJlbmRlclN0eWxlOjpEaWZmIFJlbmRlclN0eWxlOjpkaWZmKGNv
bnMKICAgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXJnaW5Ub3BDb2xsYXBzZSAhPSBv
dGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpblRvcENvbGxhcHNlIHx8CiAgICAgICAg
ICByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2luQm90dG9tQ29sbGFwc2UgIT0gb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tYXJnaW5Cb3R0b21Db2xsYXBzZSB8fAogICAgICAgICAgKnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5mbGV4aWJsZUJveC5nZXQoKSAhPSAqb3RoZXItPnJhcmVOb25J
bmhlcml0ZWREYXRhLT5mbGV4aWJsZUJveC5nZXQoKSB8fAorICAgICAgICAgKnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX211bHRpQ29sLmdldCgpICE9ICpvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fbXVsdGlDb2wuZ2V0KCkgfHwKICAgICAgICAgIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bGluZUNsYW1wICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bGluZUNsYW1wKSB8fAog
ICAgICAgICAgKHJhcmVJbmhlcml0ZWREYXRhLT5oaWdobGlnaHQgIT0gb3RoZXItPnJhcmVJbmhl
cml0ZWREYXRhLT5oaWdobGlnaHQpIHx8CiAgICAgICAgICAocmFyZUluaGVyaXRlZERhdGEtPnRl
eHRTaXplQWRqdXN0ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVBZGp1c3Qp
IHx8CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDE4NjQyKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTg0LDcgKzU4
NCwzNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYmVoYXZpb3IgOiAzOyAvLyBFTWFycXVlZUJl
aGF2aW9yIAogICAgIEVNYXJxdWVlRGlyZWN0aW9uIGRpcmVjdGlvbiA6IDM7IC8vIG5vdCB1bnNp
Z25lZCBiZWNhdXNlIEVNYXJxdWVlRGlyZWN0aW9uIGhhcyBuZWdhdGl2ZSB2YWx1ZXMKIH07Ci0g
ICAgCisgIAorLy8gQ1NTMyBNdWx0aSBDb2x1bW4gTGF5b3V0CisKK2NsYXNzIFN0eWxlTXVsdGlD
b2xEYXRhIDogcHVibGljIFNoYXJlZDxTdHlsZU11bHRpQ29sRGF0YT4geworcHVibGljOgorICAg
IFN0eWxlTXVsdGlDb2xEYXRhKCk7CisgICAgU3R5bGVNdWx0aUNvbERhdGEoY29uc3QgU3R5bGVN
dWx0aUNvbERhdGEmIG8pOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlTXVsdGlD
b2xEYXRhJiBvKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVNdWx0aUNv
bERhdGEgJm8pIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAgfQor
CisgICAgdW5zaWduZWQgc2hvcnQgcnVsZVdpZHRoKCkgY29uc3QgeworICAgICAgICBpZiAobV9y
dWxlLnN0eWxlKCkgPT0gQk5PTkUgfHwgbV9ydWxlLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAg
ICAgICAgIHJldHVybiAwOyAKKyAgICAgICAgcmV0dXJuIG1fcnVsZS53aWR0aDsKKyAgICB9CisK
KyAgICBmbG9hdCBtX3dpZHRoOworICAgIHVuc2lnbmVkIHNob3J0IG1fY291bnQ7CisgICAgZmxv
YXQgbV9nYXA7CisgICAgQm9yZGVyVmFsdWUgbV9ydWxlOworICAgIAorICAgIGJvb2wgbV9hdXRv
V2lkdGggOiAxOworICAgIGJvb2wgbV9hdXRvR2FwIDogMTsKKyAgICB1bnNpZ25lZCBtX2JyZWFr
QmVmb3JlIDogMjsgLy8gRVBhZ2VCcmVhaworICAgIHVuc2lnbmVkIG1fYnJlYWtBZnRlciA6IDI7
IC8vIEVQYWdlQnJlYWsKKyAgICB1bnNpZ25lZCBtX2JyZWFrSW5zaWRlIDogMjsgLy8gRVBhZ2VC
cmVhaworfTsKKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIC8vIENTUzMgRmxleGlibGUgQm94IFByb3BlcnRpZXMKIApAQCAtNzk1LDggKzgyNSwx
MSBAQCBwdWJsaWM6CiAgICAgaW50IGxpbmVDbGFtcDsgLy8gQW4gQXBwbGUgZXh0ZW5zaW9uLgog
ICAgIFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4gbV9kYXNoYm9hcmRSZWdpb25zOwogICAg
IGZsb2F0IG9wYWNpdHk7IC8vIFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRyYW5zcGFyZW50LgorCiAg
ICAgRGF0YVJlZjxTdHlsZUZsZXhpYmxlQm94RGF0YT4gZmxleGlibGVCb3g7IC8vIEZsZXhpYmxl
IGJveCBwcm9wZXJ0aWVzIAogICAgIERhdGFSZWY8U3R5bGVNYXJxdWVlRGF0YT4gbWFycXVlZTsg
Ly8gTWFycXVlZSBwcm9wZXJ0aWVzCisgICAgRGF0YVJlZjxTdHlsZU11bHRpQ29sRGF0YT4gbV9t
dWx0aUNvbDsgLy8gIENTUzMgbXVsdGljb2wgcHJvcGVydGllcworCiAgICAgQ29udGVudERhdGEq
IG1fY29udGVudDsKICAgICBDb3VudGVyRGlyZWN0aXZlTWFwKiBtX2NvdW50ZXJEaXJlY3RpdmVz
OwogCkBAIC0xNDE0LDYgKzE0NDcsMTcgQEAgcHVibGljOgogICAgIEVNYXRjaE5lYXJlc3RNYWls
QmxvY2txdW90ZUNvbG9yIG1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3IoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxFTWF0Y2hOZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvcj4ocmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29sb3IpOyB9CiAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBoaWdobGlnaHQoKSBjb25zdCB7IHJldHVybiByYXJlSW5o
ZXJpdGVkRGF0YS0+aGlnaGxpZ2h0OyB9CiAgICAgRVJlc2l6ZSByZXNpemUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxFUmVzaXplPihyYXJlSW5oZXJpdGVkRGF0YS0+cmVzaXplKTsgfQor
ICAgIGZsb2F0IGNvbHVtbldpZHRoKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fbXVsdGlDb2wtPm1fd2lkdGg7IH0KKyAgICBib29sIGhhc0F1dG9Db2x1bW5XaWR0aCgp
IGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX2F1dG9X
aWR0aDsgfQorICAgIHVuc2lnbmVkIHNob3J0IGNvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4g
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wtPm1fY291bnQ7IH0KKyAgICBmbG9hdCBj
b2x1bW5HYXAoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNv
bC0+bV9nYXA7IH0KKyAgICBib29sIGhhc0F1dG9Db2x1bW5HYXAoKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+bV9hdXRvR2FwOyB9CisgICAgY29uc3Qg
Q29sb3ImIGNvbHVtblJ1bGVDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX211bHRpQ29sLT5tX3J1bGUuY29sb3I7IH0KKyAgICBFQm9yZGVyU3R5bGUgY29sdW1u
UnVsZVN0eWxlKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlD
b2wtPm1fcnVsZS5zdHlsZSgpOyB9CisgICAgdW5zaWduZWQgc2hvcnQgY29sdW1uUnVsZVdpZHRo
KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wtPnJ1bGVX
aWR0aCgpOyB9CisgICAgRVBhZ2VCcmVhayBjb2x1bW5CcmVha0JlZm9yZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVQYWdlQnJlYWs+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRp
Q29sLT5tX2JyZWFrQmVmb3JlKTsgfQorICAgIEVQYWdlQnJlYWsgY29sdW1uQnJlYWtJbnNpZGUo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFUGFnZUJyZWFrPihyYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9tdWx0aUNvbC0+bV9icmVha0luc2lkZSk7IH0KKyAgICBFUGFnZUJyZWFrIGNvbHVt
bkJyZWFrQWZ0ZXIoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFUGFnZUJyZWFrPihyYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+bV9icmVha0FmdGVyKTsgfQogICAgIC8vIEVu
ZCBDU1MzIEdldHRlcnMKIAogICAgIC8vIEFwcGxlLXNwZWNpZmljIHByb3BlcnR5IGdldHRlciBt
ZXRob2RzCkBAIC0xNjQyLDYgKzE2ODYsMTggQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWF0Y2hO
ZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvcihFTWF0Y2hOZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xv
ciBjKSAgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtYXRjaE5lYXJlc3RNYWlsQmxv
Y2txdW90ZUNvbG9yLCBjKTsgfQogICAgIHZvaWQgc2V0SGlnaGxpZ2h0KGNvbnN0IEF0b21pY1N0
cmluZyYgaCkgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBoaWdobGlnaHQsIGgpOyB9CiAg
ICAgdm9pZCBzZXRSZXNpemUoRVJlc2l6ZSByKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEs
IHJlc2l6ZSwgcik7IH0KKyAgICB2b2lkIHNldENvbHVtbldpZHRoKGZsb2F0IGYpIHsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV93aWR0aCwgZmFs
c2UpOyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBt
X3dpZHRoLCBmKTsgfQorICAgIHZvaWQgc2V0SGFzQXV0b0NvbHVtbldpZHRoKCkgeyBTRVRfVkFS
KHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2F1dG9XaWR0aCwg
dHJ1ZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2ws
IG1fd2lkdGgsIDApOyB9CisgICAgdm9pZCBzZXRDb2x1bW5Db3VudCh1bnNpZ25lZCBzaG9ydCBj
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1f
Y291bnQsIGMpOyB9CisgICAgdm9pZCBzZXRDb2x1bW5HYXAoZmxvYXQgZikgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2F1dG9HYXAsIGZhbHNl
KTsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9n
YXAsIGYpOyB9CisgICAgdm9pZCBzZXRIYXNBdXRvQ29sdW1uR2FwKCkgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2F1dG9HYXAsIHRydWUpOyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2dhcCwg
MCk7IH0KKyAgICB2b2lkIHNldENvbHVtblJ1bGVDb2xvcihjb25zdCBDb2xvciYgYykgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX3J1bGUuY29s
b3IsIGMpOyB9CisgICAgdm9pZCBzZXRDb2x1bW5SdWxlU3R5bGUoRUJvcmRlclN0eWxlIGIpIHsg
U0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9ydWxl
Lm1fc3R5bGUsIGIpOyB9CisgICAgdm9pZCBzZXRDb2x1bW5SdWxlV2lkdGgodW5zaWduZWQgc2hv
cnQgdykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29s
LCBtX3J1bGUud2lkdGgsIHcpOyB9CisgICAgdm9pZCByZXNldENvbHVtblJ1bGUoKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fcnVsZSwgQm9y
ZGVyVmFsdWUoKSkgfQorICAgIHZvaWQgc2V0Q29sdW1uQnJlYWtCZWZvcmUoRVBhZ2VCcmVhayBw
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1f
YnJlYWtCZWZvcmUsIHApOyB9CisgICAgdm9pZCBzZXRDb2x1bW5CcmVha0luc2lkZShFUGFnZUJy
ZWFrIHApIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNv
bCwgbV9icmVha0luc2lkZSwgcCk7IH0KKyAgICB2b2lkIHNldENvbHVtbkJyZWFrQWZ0ZXIoRVBh
Z2VCcmVhayBwKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVs
dGlDb2wsIG1fYnJlYWtBZnRlciwgcCk7IH0KICAgICAvLyBFbmQgQ1NTMyBTZXR0ZXJzCiAgICAK
ICAgICAvLyBBcHBsZS1zcGVjaWZpYyBwcm9wZXJ0eSBzZXR0ZXJzCkBAIC0xNzc4LDYgKzE4MzQs
OCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEVBcHBlYXJhbmNlIGluaXRpYWxBcHBlYXJhbmNlKCkg
eyByZXR1cm4gTm9BcHBlYXJhbmNlOyB9CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZpc3VhbGx5
T3JkZXJlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxUZXh0
U3Ryb2tlV2lkdGgoKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIHVuc2lnbmVkIHNob3J0IGlu
aXRpYWxDb2x1bW5Db3VudCgpIHsgcmV0dXJuIDE7IH0KKyAgICBzdGF0aWMgTGVuZ3RoIGluaXRp
YWxDb2x1bW5XaWR0aCgpIHsgcmV0dXJuIExlbmd0aCgpOyB9CiAKICAgICAvLyBLZWVwIHRoZXNl
IGF0IHRoZSBlbmQuCiAgICAgc3RhdGljIGludCBpbml0aWFsTGluZUNsYW1wKCkgeyByZXR1cm4g
LTE7IH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVj
dGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy96aW5kZXgtaW5oZXJpdC1leHBl
Y3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRv
SndBQUFhalVsRVFWUjRuTzNkYTVDV1pSbkE4V3NYRUZGUQpHTmdRY0ZvVGs4VXdUZkNRVG5tbXNH
VkVqQ0p6R25Fa2tCaEtwY09Iem1aSW1VMDZFMUpabVlNQ21rNmFCQWtxNm9Rb0E4N0FnQlVWCkk4
YWdZQ0J5V0E3TDNRZkhIUmZZRTRkTHJOL3YyN3ZQOHo1N1BmZjdmTmovZTlxS1Vrb0pBQUNBQkpY
djlnQUFBTUQvRHdFQ0FBQ2sKRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dF
Q0FBQ2tFU0FBQUVDYTkzU0FiTjY4T1ZhdlhuM0lqcjk5Ky9iNAp5MS8rMHVUMit2cjZlT21sbHc3
WjcrZnd0WG56NXZqM3YvKzlYL2R0NmJvQ0FQaGYxbUtBL09sUGY0cWFtcHFvcUtpSTZ1cnFtRE5u
ClRzTzJkZXZXeGRlKzlyV29xS2lJNjYrL1B0YXZYMzlJaDMybisrNjdMM3IyN0JuMzNudnZJVG4r
d29VTFk5Q2dRVEY4K1BCOWJuL2gKaFJmaTlOTlBqeTkrOFl1SDVQZHorSm82ZFdwMDc5NDlIbmpn
Z1RiZnQ2WHJDZ0RnZjEyTEFUSmt5SkI0K3Vtbm83cTZPclp1M1JwbgpubmxtdzdhcXFxcm8zYnQz
Zk9NYjM0Z3BVNlpFang0OUR1bXc3M1RWVlZkRmRYWDFJVHYrMldlZkhkZGNjMDJUMjg4ODg4eTQ0
SUlMCm9rT0hEb2RzQmc1UFk4YU1pVzdkdXUzWGZWdTZyZ0FBL3RlMTZpMVk3M3ZmKytLaGh4NktU
WnMyeGZqeDR4dCsvdkxMTDhkVFR6MFYKa3laTk9tUUR2bE1wcGRIdERoMDZSRVZGeFNIN2ZVY2Nj
Y1Erajc5NzkrNklpR2pmdm4xVVZyYThoSHZPZmJEdDJyV3IxZnNlNmxrTwp4S0dhclMzcjAxb0hj
dTAxZFYwQkFQdy9hUFZuUU00NDQ0ejQrdGUvSHZmZmYzLzgvdmUvajRpSUcyNjRJVzY3N2JhOTl0
MjhlWE9NCkh6OCticnJwcGhnMmJGaE1tREFodG0zYkZoRVJNMmJNaUQ1OStzU2RkOTRaRVJIVHAw
K1BmdjM2eGRpeFk1djgzVE5teklncFU2YkUKajM3MG96ajMzSE1iYmR1OWUzZDgrOXZmanZlLy8v
MHhZTUNBK05lLy9uWEk1dGk2ZFd1TUd6Y3VmdkNESDhUWXNXTmowYUpGemE1WgpVM08vK3VxcmNl
T05OOGI1NTU4ZkF3Y09qT2VlZTY1VjIvWTBiOTY4bUR4NWN0eCsrKzF4M25ubnhiSmx5NXFkZmZ6
NDhYSHp6VGZICjRNR0RZK1RJa1RGNTh1UjQ1cGxuWXZIaXhURm16Smo0NWplL0diZmNja3RVVlZY
Rjg4OC92MTl6UHZua2t6Rnk1TWlZT0hGaTNIMzMKM2RHM2I5K29xYWxwOUxpMGRwM3E2dXBpNHNT
SmNldXR0OFlWVjF3Ulk4YU1pWkVqUnpiY3A2WEhyNm4xMlovemJXcE5KMDZjR0QxNwo5b3lCQXdm
R2loVXJXbHlmZldudU9uM29vWWVpcXFvcXJyamlpdGk0Y1dQODlyZS9qYXFxcXJqMDBrdGo1Y3FW
RVJGeCsrMjN4OGMrCjlyR29xNnRyZGw0QWdNTkNhWU82dXJyU3IxKy9VbFZWVlg3eWs1K1VTWk1t
N1hPL2ozLzg0K1Yzdi90ZEthV1VIVHQybExQT09xdlUKMXRZMmJPL1RwMCs1NVpaYkdtNFBIank0
akJneFlwL0gycmx6WnhrMGFGREQ3UnR1dUtIVTE5ZVhVa3I1OEljL1hFNDc3YlF5ZCs3YwpzbnIx
NmxKVFUxT3V1KzY2Z3piSEhYZmNVWTQ3N3JpRzI1LzYxS2ZLOU9uVFN5bWwxTmZYbDk2OWU1ZExM
NzIwVFhQdjJyV3JEQmt5CnBHemF0S25VMTllWE1XUEdsS3FxcXJKaHc0Wm10KzFwKy9idHBVK2ZQ
dVdKSjU0b3BaVHkzZTkrdDF4NTVaWDduS1dVVXU2ODg4NXkKMDAwM2xWSktXYnAwYVltSU1ubnk1
TEpxMWFxeVlNR0MwcTFidDNMNjZhZVhCeDk4c0l3Wk02YXNXTEZpditaY3UzWnRPZm5razB0TgpU
VTE1OU5GSHk2cFZxMHEvZnYzSzZOR2oyN1JPcFpSU1cxdGI3ci8vL29adHRiVzE1Y3d6ejJ5NDNk
emoxOXo2dFBWODkrWDQ0NDh2CkgvclFoOG9qanp4U25uamlpWExDQ1NlVUUwODhzZXpjdWJQRngz
SFA2NnFsNi9TTU04NG8xMTU3YmNQdEN5NjRvSXdhTmFyaDltT1AKUFZaKzg1dmY3SE5PQUlERFRa
dStCYXRqeDQ0eGRlclVXTGR1WGR4OTk5MHhjZUxFdmZhWlBYdDJQUHZzc3czUFZIZm8wQ0d1dmZi
YQorT01mL3hnTEZpeUlpSWhPblRvMWVndktVVWNkMWVSYlVqWnUzQmd2dnZoaXpKbzFLeUlpUm84
ZTNlaXRPclcxdFhIeHhSZkg4Y2NmCkh4ZGVlR0hEdDFJZDdEbWVlKzY1bURWclZuemlFNStJaUlq
S3lzcTQ3TExMbWx5cnB1YWVPWE5tbEZMaW1XZWVpZG16WjBldlhyMWkKM2JwMThmVFRUemU3YlU4
ZE9uU0k0Y09IeDJtbm5SWVJFZDI3ZDIvMERQeWU3cjMzM3VqZXZYdEVSQXdZTUNDcXFxb2lJcUs2
dWpyTwpPZWVjcUttcGlmNzkrOGVWVjE0WmQ5MTFWeXhac21TLzV1elpzMmYwN2RzM1RqMzExS2l0
clkzcTZ1cTQ2S0tMNHE5Ly9XdWIxdW5aClo1K05XYk5teFpBaFF4cjI3ZHUzYjZQN052ZjROYmMr
YlQzZnBuemhDMStJb1VPSHhvVVhYaGkzM25wci9QT2YvNHk1YytlMjZYRnMKelhVNmF0U29tRE5u
VHNOYi95NjU1Sko0OU5GSEc5NWFObmZ1M0JneFlrU1Rjd0lBSEU3YS9EVzg1NTkvZmh4NTVKRXhZ
TUNBYU4rKwovVjdibjMvKythaXFxbXIwNGV5enpqb3JJaUtXTEZuUzVnRjc5T2dSdzRjUGo2RkRo
OGFYdnZTbE9PR0VFNkpkdTNZTjI5LzVCMmkzCmJ0MWk4K2JOaDJTT3A1NTZLbXBxYXFKcjE2NE5Q
K3ZjdVhPVHdkTFUzQXNXTElqdTNidkhFVWNjRVVjY2NVU2NkOTU1OGZqamo4ZkEKZ1FPYjNiYW5p
b3FLdU9PT08yTGp4bzB4ZWZMa21EOS9mcno1NXB0Tnp0K2xTNWVHUDJnaklvNDc3cmc0Kyt5ekcy
NTM2dFNwSVVvaQo0b0Rtcktpb2FMUXVYYnAwYWZMdFFVMnQwL3o1ODZPbXBpYU9QZmJZUnVmYzJz
OU90TFErYlRuZnByeHp0blBPT1NjaUl2Nys5NyszCjZWaXR1VTQvOTduUHhicDE2K0taWjU2SmlJ
aGx5NWJGbGkxYll0NjhlVkZYVnhlN2QrK09vNDgrdWxYckFnRHdidHU3SUE3UTFxMWIKWS8zNjli
RjU4K2JvM0xselJFU2NldXFwMGI1OSs5aXlaY3QrSGZPKysrNkwzcjE3eDg5KzlyTll2SGh4ekpr
eko0NDU1cGpVT1Y1NQo1WlY5ZnMxd2MzOFE3MnZ1OWV2WFIvdjI3ZU9TU3k3WmEvL210dTNMMUts
VDQ5bG5uNDFmLy9yWDhhdGYvU3FlZi83NUp2ZTk0WVliCjRwcHJyb21sUzVkR3g0NGQ0Nmlqam9y
enp6Ky95ZjBQNXB3dDJkYzZyVm16SnY3em4vOGMwSEhic2o0SGVrN1YxZFhScFV1WDZOS2wKUzV1
TzFacnJ0SHYzN2xGYld4dlRwazJMcmwyN3hxQkJnNkt5c2pLbVQ1OGViN3p4Umd3Yk5teS9aZ1lB
ZURjYzlIOUVXRk5URS9YMQo5ZkhDQ3k4MC9PeTExMTZMWGJ0MlJmLysvUnQrOXZiYlNWcXlkdTNh
ZU8yMTErS25QLzFweko0OU81WXVYUnJUcDA5UG42TjM3OTZ4CmJ0MjYrTnZmL25aQWMzL2dBeCtJ
eHg5L3ZORXJBcVdVZU9xcHA1cmR0cWZseTVmSHVISGo0cmJiYm12VlZ3RmZkdGxsTVhyMDZKZzkK
ZTNZc1dyUW9ubnp5eVdiM1AxaHp0cVNwZGVyVnExZXNYYnMyWG43NTVVYS9ZMDlOUFg1dFhaOERQ
YWMxYTliRW0yKytHUi81eUVmYQpkS3pXWHFmWFhITk5QUERBQS9ITFgvNHlycnZ1dWhnMWFsUTgv
UERETVhmdTNHWkRFZ0RnY05QbUFLbXZyNDhkTzNiRTY2Ky92cy90CkkwYU1pT09QUHo0ZWYvenho
cDh0V3JRb2FtcHE0cE9mL0dSRXZQVU03OEtGQzJQSGpoMnhaczJhK01jLy90SGs4VjUvL2ZXWU1X
TkcKUkVRTUhqdzRMci84OG9abmlyZHUzUnBidDI1dDJIZmJ0bTBOM3g1ME1PYllzV05IN055NU15
SWlQdnZaejBiNzl1M2pycnZ1YXRqKwowa3N2eGZyMTY2Tyt2cjdWYzMvKzg1K1BWMTk5TmNhTUdS
TWJObXlJMTE1N0xiNy8vZS9IQnovNHdXYTM3V25GaWhXeGUvZnVXTDU4CmVkVFgxOGY4K2ZPanJx
NHVTaW43L0VQOWU5LzdYcHg4OHNreFljS0V1T3FxcTZKVHAwNk50dS9hdGF0aDdTTGlnT2Jjc1dO
SG96RFkKdW5YclB0ZW91WFY2K3pGNmU3MjNiOThlUzVjdWJYUnV6VDErTGExUFc4NjNLZTg4cHll
ZWVDS0dEUnNXcDUxMldxdlc1KzNycWpYWAphY1JiLzQrblk4ZU8wYTVkdXpqMjJHUGpvb3N1aW1P
T09TWjY5ZXExMTZ0dzI3ZHZqeC8rOElmeHlpdXZORGs3QU1DN3BpMmZXRit5ClpFbTU4Y1liUzBT
VVRwMDZsY21USjVjMWE5YnN0ZC9peFl2TEthZWNVbjc4NHgrWFdiTm1sWkVqUjVZVksxWTBiSjgz
YjE3cDNyMTcKT2ZIRUU4dFh2L3JWTW5iczJITHh4UmMzZkdQUk95MWJ0cXowN2R1M1RKMDZ0Znpo
RDM4bzQ4YU5LenQzN2l3UFB2aGdxYXlzTEtlYwpja3Bac21SSldieDRjZW5mdjM5cDM3NTllZVNS
Unc1NGpvVUxGNWFCQXdlV2lDZy8vL25QeS9idDI4dTBhZE5LbHk1ZFN2LysvY3RuClB2T1pNblRv
MEhMdXVlZVdhZE9tdFhydVVrcVpNbVZLNmRpeFk2bW9xQ2hWVlZYbDRZY2ZicmhmYzl2ZWFjdVdM
ZVgwMDA4dm5UdDMKTHFOR2pTcVBQZlpZT2Vxb284clZWMTlkdG0vZnZ0ZitYL25LVjBwRWxJZ283
ZHExS3oxNzlpemp4bzFyT0sramp6NjY5T3JWcTh5WQpNYU5Wc3pTMWJmNzgrYVZyMTY2bGQrL2Va
Y0dDQmVYRkYxOHNKNTEwVXVuWXNXUDU4NS8vM0taMXV2bm1tMHRsWldYcDNidDN1ZnJxCnE4dUlF
U01hZlF0V2M0OWZjK3R6enozM3RQbDg5L1NkNzN5bm5IcnFxZVhXVzI4dGt5Wk5LbC8rOHBmTHBr
MmJXanpXdnE2cmxxN1QKdDAyY09MR3NYTG15NGZhM3Z2V3RScmZmdG56NThsSlJVVkh1dWVlZUp1
Y0hBSGkzVkpSeWFQNzdXeWtsVnE1Y0daV1ZsWHQ5ZTFIRQpXODhDMTlmWFI2ZE9uV0xuenAxTnZr
MW05KzdkVVZsWkdSczNib3dPSFRxMCtjTzJCMnVPdDlYWDE4ZUdEUnVpUjQ4ZVVWZFhGMGNlCmVl
Uit6YjFqeDQ1WXZYcDFWRmRYNy9WaC91YTI3V25idG0wTnIyWTBOLytrU1pQaTA1LytkTlRWMWNX
YmI3NFpHemR1akprelo4YlYKVjEvZDdHY1ZEdGFjVFdscG5UWnQyaFNWbFpYUnVYUG51UDc2NjJQ
eDRzV3hjT0hDUmpNMDkvaTFkbjMyOTV6V3JsMGJQWHIwMk9lKwpiVGxXUzlkcHhGdXZiSFRzMkxI
SjIrKzBidDI2UmgreUJ3QTRYQnl5QU9IdzhZdGYvQ0ptenB3WmMrZk9iZlR6T1hQbVJOKytmZU9r
CmswNTZseVpybTMwRkNBQUE3eTBIL1Z1d09QeDg5S01malFrVEpzU0lFU05pNE1DQnNXM2J0bmox
MVZlanRyYjJQUk1mRVJGTGx5Nk4KRFJzMlJDbWwxVi9IQ3dEQTRjVXJJUDhuM25qampYajY2YWRq
N2RxMWNlR0ZGNzZud2lNaVl0cTBhYkZxMWFxSWVPc2ZLVjUrK2VYdgo3a0FBQU95WEZnT2s0bnVl
YVQ2Y2xPL29SUUFBM3JzTyt2OEJBUUFBYUlvQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05B
QUVBCkFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJ
STBBQVFBQTBnZ1FBQUFnalFBQkFBRFMKQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FB
QUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUQpBQUFnalFBQkFBRFND
QkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFO
SUlFQUFBCklJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFR
QUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ04KQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pR
QUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQgpBQURTQ0JBQUFD
Q05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFB
QUlJMEFBUUFBCjBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdn
UUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUkKRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFE
U0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQQpBQ0NOQUFF
QUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBB
QVFBQTBnZ1FBQUFnClRVVXBwYnpiUXdBQUFQOGZ2QUlDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFB
UUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWEKQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVn
QUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQwpBQUNr
RVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFB
S1FSSUFBQVFCb0JBZ0FBCnBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JB
Z0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVIKSUFBQVFCb0JBZ0FBcEJFZ0FBQkFH
Z0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQQpB
RUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklB
QUFRQm9CQWdBQXBCRWdBQUJBCkdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBC
RWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0IKQWdBQXBCRWdBQUJBR2dFQ0FB
Q2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJ
QQpBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJv
QkFnQUFwQkVnQUFCQUdnRUNBQUNrCkVTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFC
QUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWcKQUFCQUdnRUNBQUNrRVNB
QUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FS
SUFBQQpRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FB
cEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhCkFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VD
QUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUMKQUFDa0VTQUFBRUFh
QVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFR
Qm9CQWdBQQpwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdB
QUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSCklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tF
U0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUEKQUVBYUFRSUFB
S1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFn
QUFwQkVnQUFCQQpHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdn
RUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CCkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFF
QWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUEKQUtRUklB
QUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJF
Z0FBQkFHZ0VDQUFDawpFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFD
a0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnCkFBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJ
QUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUEKUUJv
QkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJB
R2dFQ0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FB
QUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDCkFBQ2tFU0FBQUVBYUFRSUFBS1FS
SUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUEK
cEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNB
QUNrRVNBQUFFQWFBUUlBQUtRUgpJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFB
UUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBCkFFQWFBUUlBQUtRUklBQUFR
Qm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FB
QkEKR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VT
QUFBRUFhQVFJQUFLUVJJQUFBUUJvQgpBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFL
UVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBCkFLUVJJQUFBUUJvQkFn
QUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dF
Q0FBQ2sKRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVB
YUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZwpBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFB
QVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBClFCb0JBZ0FBcEJF
Z0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNr
RVNBQUFFQWEKQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlB
QUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQwpBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9C
QWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBCnBCRWdBQUJB
R2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFB
RUFhQVFJQUFLUVIKSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJ
QUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQQpBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFw
QkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBCkdnRUNB
QUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFR
SUFBS1FSSUFBQVFCb0IKQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFC
b0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQQpBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FB
QkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrCkVT
QUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtR
UklBQUFRQm9CQWdBQXBCRWcKQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdB
QXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQQpRQm9CQWdBQXBCRWdBQUJBR2dF
Q0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFh
CkFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFB
UUJvQkFnQUFwUGt2WXo0U1U1TmIKMlZ3QUFBQUFTVVZPUks1Q1lJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12296</attachid>
            <date>2007-01-08 00:46:05 -0800</date>
            <delta_ts>2007-01-08 00:51:53 -0800</delta_ts>
            <desc>Revised patch addressing Eric and MItz&apos;s review comments.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>42578</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NjU5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMDEtMDggIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBmb3IgaW5oZXJpdGFuY2Ug
b2YgYXV0byB6LWluZGV4LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xheWVycy96aW5kZXgtaW5oZXJpdC5odG1sOiBB
ZGRlZC4KKwogMjAwNy0wMS0wNyAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1p
bmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW0J
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2RmNGYwYmZkMWE3NWQ2YTRhZWVkMzc1MWM0Mzg4
YTMyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvemluZGV4LWluaGVyaXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMjQweDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjQwOiAiWW91IHNob3VsZCBzZWUgYSBncmVlbiBzcXVhcmUgYmVsb3cuIgorbGF5ZXIg
YXQgKDgsMjYpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMTgpIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIg
YXQgKDgsMjYpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxMDB4MTAwCitsYXllciBhdCAoOCwyNikgc2l6ZSAxMDB4MTAwCisgIFJl
bmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHgxMDAKK2xheWVy
IGF0ICg4LDI2KSBzaXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAx
MDAge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCitsYXllciBhdCAoOCwyNikgc2l6ZSAxMDB4
MTAwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMTAwMCB7RElWfSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAgW2JnY29sb3I9IzAwODAwMF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL3ppbmRleC1pbmhlcml0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvemluZGV4LWluaGVyaXQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL3ppbmRleC1pbmhlcml0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXYgeyB3aWR0aDoxMDBweDsgaGVpZ2h0OjEw
MHB4IH0KKy5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuIH0KKy5yZWQgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCitZb3Ugc2hvdWxk
IHNlZSBhIGdyZWVuIHNxdWFyZSBiZWxvdy4KKworPGRpdiBjbGFzcz0icmVkIiBzdHlsZT0icG9z
aXRpb246cmVsYXRpdmU7IHotaW5kZXg6MCI+CisgIDxkaXYgY2xhc3M9InJlZCIgc3R5bGU9InBv
c2l0aW9uOmFic29sdXRlOyB6LWluZGV4OmF1dG8iPgorICAgIDxkaXYgY2xhc3M9InJlZCIgc3R5
bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OmluaGVyaXQiPgorICAgICAgPGRpdiBjbGFz
cz0iZ3JlZW4iIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwIj4KKyAgICAg
IDwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0icmVkIiBzdHlsZT0i
cG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODY1OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMDctMDEtMDggIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhbGwgb2YgdGhlIENTUzMg
bXVsdGktY29sdW1uIHByb3BlcnRpZXMgaW4gcHJlcGFyYXRpb24gZm9yIGltcGxlbWVudGluZyB0
aGUKKyAgICAgICAgZmVhdHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL2Nzc3BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9jc3Nz
dHlsZXNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNvbERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6cnVsZVdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5XaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzQXV0b0NvbHVtbldpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6Y29sdW1uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpoYXNB
dXRvQ29sdW1uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5SdWxl
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uUnVsZVdpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2x1bW5CcmVha0JlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uQnJlYWtJbnNpZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OmNvbHVtbkJyZWFrQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnNldENvbHVtbldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpzZXRIYXNBdXRvQ29sdW1uV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OnNldENvbHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1
bW5HYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEhhc0F1dG9Db2x1bW5H
YXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVDb2xvcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5SdWxlV2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlc2V0Q29sdW1uUnVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29sdW1uQnJlYWtCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OnNldENvbHVtbkJyZWFrSW5zaWRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5CcmVha0FmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjppbml0aWFsQ29sdW1uQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OmluaXRpYWxDb2x1bW5XaWR0aCk6CisKIDIwMDctMDEtMDcgIFJvYiBCdWlzICA8YnVp
c0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBXZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDE4NjQyKQorKysg
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzksNiArNzksMTUgQEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNb
XSA9IAogICAgIENTU19QUk9QX0NBUFRJT05fU0lERSwKICAgICBDU1NfUFJPUF9DTEVBUiwKICAg
ICBDU1NfUFJPUF9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9DT1VOVCwKKyAg
ICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVAsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fUlVMRV9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1NUWUxFLAor
ICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsCisgICAgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fQlJFQUtfQkVGT1JFLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JS
RUFLX0FGVEVSLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0lOU0lERSwKKyAg
ICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9XSURUSCwKICAgICBDU1NfUFJPUF9DVVJTT1IsCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIENTU19QUk9QX19XRUJLSVRfREFTSEJPQVJEX1JFR0lPTiwK
QEAgLTYwMyw2ICs2MTIsNTUgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHls
ZURlYwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX0NPTE9SOgogICAgICAgICBy
ZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2xvcigpLnJnYigpKTsKKyAgICBj
YXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0NPVU5UOgorICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1bW5Db3VudCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUik7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVA6CisgICAg
ICAgIGlmIChzdHlsZS0+aGFzTm9ybWFsQ29sdW1uR2FwKCkpCisgICAgICAgICAgICByZXR1cm4g
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTk9STUFMKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShzdHlsZS0+Y29sdW1uR2FwKCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfTlVNQkVSKTsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfQ09M
T1I6CisgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3R5bGUtPmNvbHVtblJ1
bGVDb2xvcigpLnJnYigpKTsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVf
U1RZTEU6CisgICAgICAgIHJldHVybiB2YWx1ZUZvckJvcmRlclN0eWxlKHN0eWxlLT5jb2x1bW5S
dWxlU3R5bGUoKSk7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX1dJRFRI
OgorICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5jb2x1bW5SdWxl
V2lkdGgoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgY2FzZSBDU1NfUFJPUF9f
V0VCS0lUX0NPTFVNTl9CUkVBS19BRlRFUjoKKyAgICAgICAgc3dpdGNoIChzdHlsZS0+Y29sdW1u
QnJlYWtBZnRlcigpKSB7CisgICAgICAgICAgICBjYXNlIFBCQVVUTzoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVVUTyk7CisgICAgICAgICAg
ICBjYXNlIFBCQUxXQVlTOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZl
VmFsdWUoQ1NTX1ZBTF9BTFdBWVMpOworICAgICAgICAgICAgY2FzZSBQQkFWT0lEOgorICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9BVk9JRCk7Cisg
ICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAw
OworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfQkVGT1JFOgorICAgICAg
ICBzd2l0Y2ggKHN0eWxlLT5jb2x1bW5CcmVha0JlZm9yZSgpKSB7CisgICAgICAgICAgICBjYXNl
IFBCQVVUTzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENT
U19WQUxfQVVUTyk7CisgICAgICAgICAgICBjYXNlIFBCQUxXQVlTOgorICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9BTFdBWVMpOworICAgICAgICAg
ICAgY2FzZSBQQkFWT0lEOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZl
VmFsdWUoQ1NTX1ZBTF9BVk9JRCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fQlJFQUtfSU5TSURFOgorICAgICAgICBzd2l0Y2ggKHN0eWxlLT5jb2x1bW5CcmVha0luc2lk
ZSgpKSB7CisgICAgICAgICAgICBjYXNlIFBCQVVUTzoKKyAgICAgICAgICAgICAgICByZXR1cm4g
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVVUTyk7CisgICAgICAgICAgICBjYXNlIFBC
QVZPSUQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1Nf
VkFMX0FWT0lEKTsKKyAgICAgICAgICAgIGNhc2UgUEJBTFdBWVM6CisgICAgICAgICAgICAgICAg
YnJlYWs7IC8vIG5vdCBhbGxvd2VkCisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xV
TU5fV0lEVEg6CisgICAgICAgIGlmIChzdHlsZS0+aGFzQXV0b0NvbHVtbldpZHRoKCkpCisgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVVUTyk7CisgICAg
ICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3R5bGUtPmNvbHVtbldpZHRoKCksIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKICAgICBjYXNlIENTU19QUk9QX0NPTlRFTlQ6
CiAgICAgICAgIC8vIEZJWE1FOiB1bmltcGxlbWVudGVkCiAgICAgICAgIGJyZWFrOwpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMTg2
NDIpCisrKyBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1NCw2ICs0NTQsMTUgQEAgY29uc3QgdW5zaWduZWQgbnVtSW5oZXJpdGFi
bGVQcm9wZXJ0aWVzIAogc3RhdGljIGNvbnN0IGludCBibG9ja1Byb3BlcnRpZXNbXSA9IHsKICAg
ICBDU1NfUFJPUF9PUlBIQU5TLAogICAgIENTU19QUk9QX09WRVJGTE9XLCAvLyBUaGlzIGNhbiBi
ZSBhbHNvIGJlIGFwcGxpZWQgdG8gcmVwbGFjZWQgZWxlbWVudHMKKyAgICBDU1NfUFJPUF9fV0VC
S0lUX0NPTFVNTl9DT1VOVCwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9HQVAsCisgICAg
Q1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9DT0xPUiwKKyAgICBDU1NfUFJPUF9fV0VCS0lU
X0NPTFVNTl9SVUxFX1NUWUxFLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lE
VEgsCisgICAgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfQkVGT1JFLAorICAgIENTU19Q
Uk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0FGVEVSLAorICAgIENTU19QUk9QX19XRUJLSVRfQ09M
VU1OX0JSRUFLX0lOU0lERSwKKyAgICBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9XSURUSCwKICAg
ICBDU1NfUFJPUF9QQUdFX0JSRUFLX0FGVEVSLAogICAgIENTU19QUk9QX1BBR0VfQlJFQUtfQkVG
T1JFLAogICAgIENTU19QUk9QX1BBR0VfQlJFQUtfSU5TSURFLApJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydHlOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCShyZXZpc2lvbiAxODY0MikKKysrIFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDE3IEBAIGNhcHRpb24tc2lkZQogY2xl
YXIKIGNsaXAKIGNvbG9yCistd2Via2l0LWNvbHVtbi1icmVhay1hZnRlcgorLXdlYmtpdC1jb2x1
bW4tYnJlYWstYmVmb3JlCistd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGUKKy13ZWJraXQtY29s
dW1uLWNvdW50Cistd2Via2l0LWNvbHVtbi1nYXAKKy13ZWJraXQtY29sdW1uLXJ1bGUtY29sb3IK
Ky13ZWJraXQtY29sdW1uLXJ1bGUtc3R5bGUKKy13ZWJraXQtY29sdW1uLXJ1bGUtd2lkdGgKKy13
ZWJraXQtY29sdW1uLXJ1bGUKKy13ZWJraXQtY29sdW1uLXdpZHRoCistd2Via2l0LWNvbHVtbnMK
IGNvbnRlbnQKIGNvdW50ZXItaW5jcmVtZW50CiBjb3VudGVyLXJlc2V0CkluZGV4OiBXZWJDb3Jl
L2Nzcy9jc3NwYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL2Nzc3BhcnNlci5j
cHAJKHJldmlzaW9uIDE4NjQyKQorKysgV2ViQ29yZS9jc3MvY3NzcGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgzLDcgKzQ4Myw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX1BBR0VfQlJF
QUtfQUZURVI6ICAgICAvLyBhdXRvIHwgYWx3YXlzIHwgYXZvaWQgfCBsZWZ0IHwgcmlnaHQgfCBp
bmhlcml0Ci0gICAgY2FzZSBDU1NfUFJPUF9QQUdFX0JSRUFLX0JFRk9SRTogICAgLy8gYXV0byB8
IGFsd2F5cyB8IGF2b2lkIHwgbGVmdCB8IHJpZ2h0IHwgaW5oZXJpdAorICAgIGNhc2UgQ1NTX1BS
T1BfUEFHRV9CUkVBS19CRUZPUkU6CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9C
UkVBS19BRlRFUjoKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9S
RToKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVUTyB8fAogICAgICAgICAgICAgIGlkID09
IENTU19WQUxfQUxXQVlTIHx8CiAgICAgICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9BVk9JRCB8fApA
QCAtNDkzLDggKzQ5NSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQs
IGIKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX1BBR0VfQlJFQUtfSU5TSURF
OiAgICAvLyBhdm9pZCB8IGF1dG8gfCBpbmhlcml0Ci0gICAgICAgIGlmIChpZCA9PSBDU1NfVkFM
X0FVVE8gfHwKLSAgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX0FWT0lEKQorICAgIGNhc2UgQ1NT
X1BST1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfSU5TSURFOgorICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9BVVRPIHx8IGlkID09IENTU19WQUxfQVZPSUQpCiAgICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIApAQCAtNjExLDcgKzYxMyw4IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX0JP
UkRFUl9UT1BfU1RZTEU6ICAgICAvLy8vIDxib3JkZXItc3R5bGU+IHwgaW5oZXJpdAogICAgIGNh
c2UgQ1NTX1BST1BfQk9SREVSX1JJR0hUX1NUWUxFOiAgIC8vICAgRGVmaW5lZCBhczogICAgbm9u
ZSB8IGhpZGRlbiB8IGRvdHRlZCB8IGRhc2hlZCB8CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJf
Qk9UVE9NX1NUWUxFOiAgLy8gICBzb2xpZCB8IGRvdWJsZSB8IGdyb292ZSB8IHJpZGdlIHwgaW5z
ZXQgfCBvdXRzZXQKLSAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9MRUZUX1NUWUxFOiAgICAvLy8v
CisgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9TVFlMRToKKyAgICBjYXNlIENTU19QUk9Q
X19XRUJLSVRfQ09MVU1OX1JVTEVfU1RZTEU6CiAgICAgICAgIGlmIChpZCA+PSBDU1NfVkFMX05P
TkUgJiYgaWQgPD0gQ1NTX1ZBTF9ET1VCTEUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBicmVhazsKQEAgLTY4Myw2ICs2ODYsNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJPUF9URVhUX0xJTkVf
VEhST1VHSF9DT0xPUjogLy8gQ1NTMyB0ZXh0IGRlY29yYXRpb24gY29sb3JzCiAgICAgY2FzZSBD
U1NfUFJPUF9URVhUX1VOREVSTElORV9DT0xPUjoKICAgICBjYXNlIENTU19QUk9QX1RFWFRfT1ZF
UkxJTkVfQ09MT1I6CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX0NPTE9S
OgogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX0ZJTExfQ09MT1I6CiAgICAgY2FzZSBD
U1NfUFJPUF9fV0VCS0lUX1RFWFRfU1RST0tFX0NPTE9SOgogICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9fV0VCS0lUX1RFWFQpCkBAIC04MDUsNyArODA5LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX1RPUF9XSURU
SDogICAgIC8vLy8gPGJvcmRlci13aWR0aD4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NfUFJPUF9C
T1JERVJfUklHSFRfV0lEVEg6ICAgLy8gICBXaGljaCBpcyBkZWZpbmVkIGFzCiAgICAgY2FzZSBD
U1NfUFJPUF9CT1JERVJfQk9UVE9NX1dJRFRIOiAgLy8gICB0aGluIHwgbWVkaXVtIHwgdGhpY2sg
fCA8bGVuZ3RoPgotICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0xFRlRfV0lEVEg6ICAgIC8vLy8K
KyAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9MRUZUX1dJRFRIOgorICAgIGNhc2UgQ1NTX1BST1Bf
X1dFQktJVF9DT0xVTU5fUlVMRV9XSURUSDoKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfVEhJ
TiB8fCBpZCA9PSBDU1NfVkFMX01FRElVTSB8fCBpZCA9PSBDU1NfVkFMX1RISUNLKQogICAgICAg
ICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQpAQCAtMTE5Niw2ICsx
MjAxLDI0IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAg
ICAgaWYgKGlkID09IENTU19WQUxfTk9ORSB8fCBpZCA9PSBDU1NfVkFMX0JPVEggfHwgaWQgPT0g
Q1NTX1ZBTF9IT1JJWk9OVEFMIHx8IGlkID09IENTU19WQUxfVkVSVElDQUwgfHwgaWQgPT0gQ1NT
X1ZBTF9BVVRPKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9DT1VOVDoKKyAgICAgICAg
aWYgKGlkID09IENTU19WQUxfQVVUTykKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9ICFpZCAmJiB2
YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyIHwgRk5vbk5lZywgZmFsc2UpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0dBUDogICAgICAgICAvLyBub3Jt
YWwgfCA8bGVuZ3RoPgorICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT1JNQUwpCisgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHN0cmljdCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fV0lEVEg6ICAgICAg
ICAgLy8gYXV0byB8IDxsZW5ndGg+CisgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8pCisg
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHN0cmljdCk7
CisgICAgICAgIGJyZWFrOwogICAgIC8vIEVuZCBvZiBDU1MzIHByb3BlcnRpZXMKIAogICAgIC8v
IEFwcGxlIHNwZWNpZmljIHByb3BlcnRpZXMuICBUaGVzZSB3aWxsIG5ldmVyIGJlIHN0YW5kYXJk
aXplZCBhbmQgYXJlIHB1cmVseSB0bwpAQCAtMTM0Niw2ICsxMzY5LDE1IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENTU19QUk9QX0xJU1RfU1RZTEVfSU1BR0UgfTsKICAgICAgICAgcmV0dXJuIHBh
cnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMywgaW1wb3J0YW50KTsKICAgICB9Cisg
ICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTlM6IHsKKyAgICAgICAgY29uc3QgaW50IHBy
b3BlcnRpZXNbMl0gPSB7IENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1dJRFRILCBDU1NfUFJPUF9f
V0VCS0lUX0NPTFVNTl9DT1VOVCB9OworICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJv
cElkLCBwcm9wZXJ0aWVzLCAyLCBpbXBvcnRhbnQpOworICAgIH0KKyAgICBjYXNlIENTU19QUk9Q
X19XRUJLSVRfQ09MVU1OX1JVTEU6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10g
PSB7IENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfV0lEVEgsIENTU19QUk9QX19XRUJLSVRf
Q09MVU1OX1JVTEVfU1RZTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
U1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9SVUxFX0NPTE9SIH07CisgICAgICAgIHJldHVybiBwYXJz
ZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCk7CisgICAgfQogICAg
IGNhc2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRTogewogICAgICAgICBjb25zdCBpbnQg
cHJvcGVydGllc1syXSA9IHsgQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9XSURUSCwgQ1NT
X1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUiB9OwogICAgICAgICByZXR1cm4gcGFyc2VT
aG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAyLCBpbXBvcnRhbnQpOwpJbmRleDogV2ViQ29y
ZS9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvY3Nz
c3R5bGVzZWxlY3Rvci5jcHAJKHJldmlzaW9uIDE4NjQyKQorKysgV2ViQ29yZS9jc3MvY3Nzc3R5
bGVzZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MjcsNiArMjUyNyw3IEBAIHZvaWQg
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENTU19QUk9QX0JP
UkRFUl9MRUZUX0NPTE9SOgogICAgIGNhc2UgQ1NTX1BST1BfQ09MT1I6CiAgICAgY2FzZSBDU1Nf
UFJPUF9PVVRMSU5FX0NPTE9SOgorICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVM
RV9DT0xPUjoKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9TVFJPS0VfQ09MT1I6CiAg
ICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX1RFWFRfRklMTF9DT0xPUjogewogICAgICAgICBDb2xv
ciBjb2w7CkBAIC0yNTM4LDYgKzI1MzksNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaW50CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX0JP
UkRFUl9MRUZUX0NPTE9SLCBib3JkZXJMZWZ0Q29sb3IsIEJvcmRlckxlZnRDb2xvcikKICAgICAg
ICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfQ09MT1IsIGNvbG9yLCBDb2xvcikK
ICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfT1VUTElORV9DT0xPUiwg
b3V0bGluZUNvbG9yLCBPdXRsaW5lQ29sb3IpCisgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9D
T05EKENTU19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfQ09MT1IsIGNvbHVtblJ1bGVDb2xvciwg
Q29sdW1uUnVsZUNvbG9yKQogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJP
UF9fV0VCS0lUX1RFWFRfU1RST0tFX0NPTE9SLCB0ZXh0U3Ryb2tlQ29sb3IsIFRleHRTdHJva2VD
b2xvcikKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfX1dFQktJVF9U
RVhUX0ZJTExfQ09MT1IsIHRleHRGaWxsQ29sb3IsIFRleHRGaWxsQ29sb3IpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yNTY5LDYgKzI1NzEsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBzdHlsZS0+c2V0Q29sb3IoY29sKTsgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfT1VUTElORV9DT0xPUjoKICAgICAgICAgICAgIHN0eWxl
LT5zZXRPdXRsaW5lQ29sb3IoY29sKTsgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fUlVMRV9DT0xPUjoKKyAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5SdWxl
Q29sb3IoY29sKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19QUk9QX19X
RUJLSVRfVEVYVF9TVFJPS0VfQ09MT1I6CiAgICAgICAgICAgICBzdHlsZS0+c2V0VGV4dFN0cm9r
ZUNvbG9yKGNvbCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI2MDAsNiArMjYwNSw3IEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENTU19QUk9Q
X0JPUkRFUl9CT1RUT01fV0lEVEg6CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9XSURU
SDoKICAgICBjYXNlIENTU19QUk9QX09VVExJTkVfV0lEVEg6CisgICAgY2FzZSBDU1NfUFJPUF9f
V0VCS0lUX0NPTFVNTl9SVUxFX1dJRFRIOgogICAgIHsKICAgICAgICAgaWYgKGlzSW5oZXJpdCkg
ewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9CT1JERVJfVE9QX1dJ
RFRILCBib3JkZXJUb3BXaWR0aCwgQm9yZGVyVG9wV2lkdGgpCkBAIC0yNjA3LDYgKzI2MTMsNyBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBI
QU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX0JPUkRFUl9CT1RUT01fV0lEVEgsIGJvcmRlckJv
dHRvbVdpZHRoLCBCb3JkZXJCb3R0b21XaWR0aCkKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklU
X0NPTkQoQ1NTX1BST1BfQk9SREVSX0xFRlRfV0lEVEgsIGJvcmRlckxlZnRXaWR0aCwgQm9yZGVy
TGVmdFdpZHRoKQogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9PVVRM
SU5FX1dJRFRILCBvdXRsaW5lV2lkdGgsIE91dGxpbmVXaWR0aCkKKyAgICAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9XSURUSCwgY29sdW1u
UnVsZVdpZHRoLCBDb2x1bW5SdWxlV2lkdGgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7CkBAIC0yNjE1LDYgKzI2MjIsNyBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBIQU5E
TEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9XSURUSCwg
Qm9yZGVyQm90dG9tV2lkdGgsIEJvcmRlcldpZHRoKQogICAgICAgICAgICAgSEFORExFX0lOSVRJ
QUxfQ09ORF9XSVRIX1ZBTFVFKENTU19QUk9QX0JPUkRFUl9MRUZUX1dJRFRILCBCb3JkZXJMZWZ0
V2lkdGgsIEJvcmRlcldpZHRoKQogICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRI
X1ZBTFVFKENTU19QUk9QX09VVExJTkVfV0lEVEgsIE91dGxpbmVXaWR0aCwgQm9yZGVyV2lkdGgp
CisgICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTX1BST1BfX1dF
QktJVF9DT0xVTU5fUlVMRV9XSURUSCwgQ29sdW1uUnVsZVdpZHRoLCBCb3JkZXJXaWR0aCkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0yNjU2LDYgKzI2NjQsOSBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIGNhc2UgQ1NTX1BS
T1BfT1VUTElORV9XSURUSDoKICAgICAgICAgICAgIHN0eWxlLT5zZXRPdXRsaW5lV2lkdGgod2lk
dGgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9D
T0xVTU5fUlVMRV9XSURUSDoKKyAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5SdWxlV2lkdGgo
d2lkdGgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTMxMDUsMzAgKzMxMTYsMTkgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENTU19QUk9QX1pfSU5ERVg6Ci0gICAgewotICAgICAgICBI
QU5ETEVfSU5IRVJJVCh6SW5kZXgsIFpJbmRleCkKLSAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFs
KSB7Ci0gICAgICAgICAgICBzdHlsZS0+c2V0SGFzQXV0b1pJbmRleCgpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVl
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NfVkFMX0FVVE8pIHsKKyAgICBjYXNlIENTU19QUk9QX1pfSU5ERVg6IHsK
KyAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAgICAgICAgaWYgKHBhcmVudFN0eWxlLT5o
YXNBdXRvWkluZGV4KCkpCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9aSW5kZXgo
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0WkluZGV4KHBh
cmVudFN0eWxlLT56SW5kZXgoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsIHx8IHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU19WQUxfQVVUTykgewogICAgICAgICAgICAg
c3R5bGUtPnNldEhhc0F1dG9aSW5kZXgoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkg
IT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCi0gICAgICAgICAgICByZXR1cm47IC8v
IEVycm9yIGNhc2UuCi0gICAgICAgIAogICAgICAgICBzdHlsZS0+c2V0WkluZGV4KChpbnQpcHJp
bWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSk7Ci0gICAgICAgIAogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgICAgICAKICAgICBjYXNlIENTU19QUk9QX1dJRE9XUzoKICAgICB7CiAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHdpZG93cywgV2lkb3dzKQpAQCAtMzkzMiw2
ICszOTMyLDExMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHN0eWxlLT5zZXRCb3hTaXppbmcoQk9SREVSX0JPWCk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fQ09VTlQ6
IHsKKyAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoY29sdW1uQ291bnQsIENvbHVt
bkNvdW50KQorICAgICAgICB1bnNpZ25lZCBzaG9ydCBjb3VudCA9IDA7CisgICAgICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAgICAgICBj
b3VudCA9IDE7CisgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBl
KCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCisgICAgICAgICAgICBjb3VudCA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkIHNob3J0PihwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1
ZSgpKTsKKyAgICAgICAgaWYgKGNvdW50ID09IDApCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIHN0eWxlLT5zZXRDb2x1bW5Db3VudChjb3VudCk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0dBUDogeworICAgICAgICBpZiAoaXNJ
bmhlcml0KSB7CisgICAgICAgICAgICBpZiAocGFyZW50U3R5bGUtPmhhc05vcm1hbENvbHVtbkdh
cCgpKQorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRIYXNOb3JtYWxDb2x1bW5HYXAoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uR2FwKHBhcmVu
dFN0eWxlLT5jb2x1bW5HYXAoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsIHx8IHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU19WQUxfTk9STUFMKSB7CisgICAgICAgICAg
ICBzdHlsZS0+c2V0SGFzTm9ybWFsQ29sdW1uR2FwKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgc3R5bGUtPnNldENvbHVtbkdhcChwcmltaXRpdmVWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQ1NTX1BST1Bf
X1dFQktJVF9DT0xVTU5fV0lEVEg6IHsKKyAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAg
ICAgICAgaWYgKHBhcmVudFN0eWxlLT5oYXNBdXRvQ29sdW1uV2lkdGgoKSkKKyAgICAgICAgICAg
ICAgICBzdHlsZS0+c2V0SGFzQXV0b0NvbHVtbldpZHRoKCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbldpZHRoKHBhcmVudFN0eWxlLT5jb2x1bW5X
aWR0aCgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwgfHwgcHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgPT0gQ1NTX1ZBTF9BVVRPKSB7CisgICAgICAgICAgICBzdHlsZS0+c2V0SGFz
QXV0b0NvbHVtbldpZHRoKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgc3R5bGUtPnNldENvbHVtbldpZHRoKHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkp
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVN
Tl9SVUxFX1NUWUxFOgorICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZB
TFVFKGNvbHVtblJ1bGVTdHlsZSwgQ29sdW1uUnVsZVN0eWxlLCBCb3JkZXJTdHlsZSkKKyAgICAg
ICAgc3R5bGUtPnNldENvbHVtblJ1bGVTdHlsZSgoRUJvcmRlclN0eWxlKShwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSAtIENTU19WQUxfTk9ORSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU19QUk9QX19XRUJLSVRfQ09MVU1OX0JSRUFLX0JFRk9SRTogeworICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZBTFVFKGNvbHVtbkJyZWFrQmVmb3JlLCBDb2x1bW5C
cmVha0JlZm9yZSwgUGFnZUJyZWFrKQorICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpKSB7CisgICAgICAgICAgICBjYXNlIENTU19WQUxfQVVUTzoKKyAgICAgICAgICAg
ICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtCZWZvcmUoUEJBVVRPKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9MRUZUOgorICAgICAgICAgICAgY2Fz
ZSBDU1NfVkFMX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FMV0FZUzoKKyAgICAg
ICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtCZWZvcmUoUEJBTFdBWVMpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FWT0lEOgorICAgICAg
ICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5CcmVha0JlZm9yZShQQkFWT0lEKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2Fz
ZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTl9CUkVBS19BRlRFUjogeworICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZBTFVFKGNvbHVtbkJyZWFrQWZ0ZXIsIENvbHVtbkJy
ZWFrQWZ0ZXIsIFBhZ2VCcmVhaykKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSkgeworICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FVVE86CisgICAgICAgICAgICAg
ICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQWZ0ZXIoUEJBVVRPKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTX1ZBTF9MRUZUOgorICAgICAgICAgICAgY2FzZSBD
U1NfVkFMX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBDU1NfVkFMX0FMV0FZUzoKKyAgICAgICAg
ICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtBZnRlcihQQkFMV0FZUyk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU19WQUxfQVZPSUQ6CisgICAgICAgICAg
ICAgICAgc3R5bGUtPnNldENvbHVtbkJyZWFrQWZ0ZXIoUEJBVk9JRCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQ1NT
X1BST1BfX1dFQktJVF9DT0xVTU5fQlJFQUtfSU5TSURFOiB7CisgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMX1dJVEhfVkFMVUUoY29sdW1uQnJlYWtJbnNpZGUsIENvbHVtbkJyZWFr
SW5zaWRlLCBQYWdlQnJlYWspCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NfVkFMX0FVVE8pCisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uQnJlYWtJbnNp
ZGUoUEJBVVRPKTsKKyAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkg
PT0gQ1NTX1ZBTF9BVk9JRCkKKyAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1bW5CcmVha0luc2lk
ZShQQkFWT0lEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgY2FzZSBDU1NfUFJPUF9f
V0VCS0lUX0NPTFVNTl9SVUxFOgorICAgICAgICBpZiAoaXNJbmhlcml0KSB7CisgICAgICAgICAg
ICBzdHlsZS0+c2V0Q29sdW1uUnVsZUNvbG9yKHBhcmVudFN0eWxlLT5jb2x1bW5SdWxlQ29sb3Io
KSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uUnVsZVN0eWxlKHBhcmVudFN0eWxlLT5j
b2x1bW5SdWxlU3R5bGUoKSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0Q29sdW1uUnVsZVdpZHRo
KHBhcmVudFN0eWxlLT5jb2x1bW5SdWxlV2lkdGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxz
ZSBpZiAoaXNJbml0aWFsKQorICAgICAgICAgICAgc3R5bGUtPnJlc2V0Q29sdW1uUnVsZSgpOwor
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX0NPTFVNTlM6CisgICAg
ICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZS0+aGFzQXV0
b0NvbHVtbldpZHRoKCkpCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1bW5X
aWR0aCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRDb2x1
bW5XaWR0aChwYXJlbnRTdHlsZS0+Y29sdW1uV2lkdGgoKSk7CisgICAgICAgICAgICBzdHlsZS0+
c2V0Q29sdW1uQ291bnQocGFyZW50U3R5bGUtPmNvbHVtbkNvdW50KCkpOworICAgICAgICB9IGVs
c2UgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICAgICAgc3R5bGUtPnNldEhhc0F1dG9Db2x1bW5X
aWR0aCgpOworICAgICAgICAgICAgc3R5bGUtPnNldENvbHVtbkNvdW50KFJlbmRlclN0eWxlOjpp
bml0aWFsQ29sdW1uQ291bnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQ1NTX1BST1BfX1dFQktJVF9NQVJRVUVFOgogICAgICAgICBpZiAodmFsdWVUeXBlICE9IENT
U1ZhbHVlOjpDU1NfSU5IRVJJVCB8fCAhcGFyZW50Tm9kZSkgcmV0dXJuOwogICAgICAgICBzdHls
ZS0+c2V0TWFycXVlZURpcmVjdGlvbihwYXJlbnRTdHlsZS0+bWFycXVlZURpcmVjdGlvbigpKTsK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDE4NjQyKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODksNiAr
Mzg5LDM4IEBAIGJvb2wgU3R5bGVGbGV4aWJsZUJveERhdGE6Om9wZXJhdG9yPT0oY28KICAgICAg
ICAgICAgcGFjayA9PSBvLnBhY2sgJiYgb3JpZW50ID09IG8ub3JpZW50ICYmIGxpbmVzID09IG8u
bGluZXM7CiB9CiAKK1N0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRpQ29sRGF0YSgpCisgICAg
OiBtX3dpZHRoKDApCisgICAgLCBtX2NvdW50KFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1uQ291
bnQoKSkKKyAgICAsIG1fZ2FwKDApCisgICAgLCBtX2F1dG9XaWR0aCh0cnVlKQorICAgICwgbV9u
b3JtYWxHYXAodHJ1ZSkKKyAgICAsIG1fYnJlYWtCZWZvcmUoUmVuZGVyU3R5bGU6OmluaXRpYWxQ
YWdlQnJlYWsoKSkKKyAgICAsIG1fYnJlYWtBZnRlcihSZW5kZXJTdHlsZTo6aW5pdGlhbFBhZ2VC
cmVhaygpKQorICAgICwgbV9icmVha0luc2lkZShSZW5kZXJTdHlsZTo6aW5pdGlhbFBhZ2VCcmVh
aygpKQore30KKworU3R5bGVNdWx0aUNvbERhdGE6OlN0eWxlTXVsdGlDb2xEYXRhKGNvbnN0IFN0
eWxlTXVsdGlDb2xEYXRhJiBvKQorICAgIDogU2hhcmVkPFN0eWxlTXVsdGlDb2xEYXRhPigpCisg
ICAgLCBtX3dpZHRoKG8ubV93aWR0aCkKKyAgICAsIG1fY291bnQoby5tX2NvdW50KQorICAgICwg
bV9nYXAoby5tX2dhcCkKKyAgICAsIG1fcnVsZShvLm1fcnVsZSkKKyAgICAsIG1fYXV0b1dpZHRo
KG8ubV9hdXRvV2lkdGgpCisgICAgLCBtX25vcm1hbEdhcChvLm1fbm9ybWFsR2FwKQorICAgICwg
bV9icmVha0JlZm9yZShvLm1fYnJlYWtCZWZvcmUpCisgICAgLCBtX2JyZWFrQWZ0ZXIoby5tX2Jy
ZWFrQWZ0ZXIpCisgICAgLCBtX2JyZWFrSW5zaWRlKG8ubV9icmVha0luc2lkZSkKK3t9CisKK2Jv
b2wgU3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVNdWx0aUNvbERhdGEm
IG8pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2lkdGggPT0gby5tX3dpZHRoICYmIG1fY291bnQg
PT0gby5tX2NvdW50ICYmIG1fZ2FwID09IG8ubV9nYXAgJiYKKyAgICAgICAgICAgbV9ydWxlID09
IG8ubV9ydWxlICYmIG1fYnJlYWtCZWZvcmUgPT0gby5tX2JyZWFrQmVmb3JlICYmIAorICAgICAg
ICAgICBtX2F1dG9XaWR0aCA9PSBvLm1fYXV0b1dpZHRoICYmIG1fZ2FwID09IG8ubV9ub3JtYWxH
YXAgJiYKKyAgICAgICAgICAgbV9icmVha0FmdGVyID09IG8ubV9icmVha0FmdGVyICYmIG1fYnJl
YWtJbnNpZGUgPT0gby5tX2JyZWFrSW5zaWRlOworfQorCiBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICA6IGxpbmVDbGFtcChSZW5kZXJT
dHlsZTo6aW5pdGlhbExpbmVDbGFtcCgpKQogICAgICwgb3BhY2l0eShSZW5kZXJTdHlsZTo6aW5p
dGlhbE9wYWNpdHkoKSkKQEAgLTQxNCw2ICs0NDYsNyBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhOjpTdHlsZVJhcmVOb25JCiAgICAgLCBvcGFjaXR5KG8ub3BhY2l0eSkKICAgICAsIGZsZXhp
YmxlQm94KG8uZmxleGlibGVCb3gpCiAgICAgLCBtYXJxdWVlKG8ubWFycXVlZSkKKyAgICAsIG1f
bXVsdGlDb2woby5tX211bHRpQ29sKQogICAgICwgbV9jb250ZW50KDApCiAgICAgLCBtX2NvdW50
ZXJEaXJlY3RpdmVzKDApCiAgICAgLCB1c2VyRHJhZyhvLnVzZXJEcmFnKQpAQCAtNDU4LDYgKzQ5
MSw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3IKICAgICAgICAg
JiYgb3BhY2l0eSA9PSBvLm9wYWNpdHkKICAgICAgICAgJiYgZmxleGlibGVCb3ggPT0gby5mbGV4
aWJsZUJveAogICAgICAgICAmJiBtYXJxdWVlID09IG8ubWFycXVlZQorICAgICAgICAmJiBtX211
bHRpQ29sID09IG8ubV9tdWx0aUNvbAogICAgICAgICAmJiBtX2NvbnRlbnQgPT0gby5tX2NvbnRl
bnQKICAgICAgICAgJiYgbV9jb3VudGVyRGlyZWN0aXZlcyA9PSBvLm1fY291bnRlckRpcmVjdGl2
ZXMKICAgICAgICAgJiYgdXNlckRyYWcgPT0gby51c2VyRHJhZwpAQCAtNjY3LDYgKzcwMSw3IEBA
IFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZShib29sKQogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRh
LmluaXQoKTsKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+ZmxleGlibGVCb3gu
aW5pdCgpOwogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tYXJxdWVlLmluaXQo
KTsKKyAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbC5pbml0KCk7
CiAgICAgcmFyZUluaGVyaXRlZERhdGEuaW5pdCgpOwogICAgIGluaGVyaXRlZC5pbml0KCk7CiAg
ICAgCkBAIC04NjYsNiArOTAxLDcgQEAgUmVuZGVyU3R5bGU6OkRpZmYgUmVuZGVyU3R5bGU6OmRp
ZmYoY29ucwogICAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpblRvcENvbGxhcHNl
ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2luVG9wQ29sbGFwc2UgfHwKICAg
ICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXJnaW5Cb3R0b21Db2xsYXBzZSAhPSBvdGhl
ci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkJvdHRvbUNvbGxhcHNlIHx8CiAgICAgICAg
ICAqcmFyZU5vbkluaGVyaXRlZERhdGEtPmZsZXhpYmxlQm94LmdldCgpICE9ICpvdGhlci0+cmFy
ZU5vbkluaGVyaXRlZERhdGEtPmZsZXhpYmxlQm94LmdldCgpIHx8CisgICAgICAgICAqcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wuZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9tdWx0aUNvbC5nZXQoKSB8fAogICAgICAgICAgKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5saW5lQ2xhbXAgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5saW5lQ2xhbXAp
IHx8CiAgICAgICAgICAocmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodCAhPSBvdGhlci0+cmFy
ZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodCkgfHwKICAgICAgICAgIChyYXJlSW5oZXJpdGVkRGF0
YS0+dGV4dFNpemVBZGp1c3QgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFk
anVzdCkgfHwKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gMTg2NDIpCisr
KyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01ODQs
NyArNTg0LDM3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBiZWhhdmlvciA6IDM7IC8vIEVNYXJx
dWVlQmVoYXZpb3IgCiAgICAgRU1hcnF1ZWVEaXJlY3Rpb24gZGlyZWN0aW9uIDogMzsgLy8gbm90
IHVuc2lnbmVkIGJlY2F1c2UgRU1hcnF1ZWVEaXJlY3Rpb24gaGFzIG5lZ2F0aXZlIHZhbHVlcwog
fTsKLSAgICAKKyAgCisvLyBDU1MzIE11bHRpIENvbHVtbiBMYXlvdXQKKworY2xhc3MgU3R5bGVN
dWx0aUNvbERhdGEgOiBwdWJsaWMgU2hhcmVkPFN0eWxlTXVsdGlDb2xEYXRhPiB7CitwdWJsaWM6
CisgICAgU3R5bGVNdWx0aUNvbERhdGEoKTsKKyAgICBTdHlsZU11bHRpQ29sRGF0YShjb25zdCBT
dHlsZU11bHRpQ29sRGF0YSYgbyk7CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVN
dWx0aUNvbERhdGEmIG8pIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHlsZU11
bHRpQ29sRGF0YSAmbykgY29uc3QgeworICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvKTsKKyAg
ICB9CisKKyAgICB1bnNpZ25lZCBzaG9ydCBydWxlV2lkdGgoKSBjb25zdCB7CisgICAgICAgIGlm
IChtX3J1bGUuc3R5bGUoKSA9PSBCTk9ORSB8fCBtX3J1bGUuc3R5bGUoKSA9PSBCSElEREVOKQor
ICAgICAgICAgICAgcmV0dXJuIDA7IAorICAgICAgICByZXR1cm4gbV9ydWxlLndpZHRoOworICAg
IH0KKworICAgIGZsb2F0IG1fd2lkdGg7CisgICAgdW5zaWduZWQgc2hvcnQgbV9jb3VudDsKKyAg
ICBmbG9hdCBtX2dhcDsKKyAgICBCb3JkZXJWYWx1ZSBtX3J1bGU7CisgICAgCisgICAgYm9vbCBt
X2F1dG9XaWR0aCA6IDE7CisgICAgYm9vbCBtX25vcm1hbEdhcCA6IDE7CisgICAgdW5zaWduZWQg
bV9icmVha0JlZm9yZSA6IDI7IC8vIEVQYWdlQnJlYWsKKyAgICB1bnNpZ25lZCBtX2JyZWFrQWZ0
ZXIgOiAyOyAvLyBFUGFnZUJyZWFrCisgICAgdW5zaWduZWQgbV9icmVha0luc2lkZSA6IDI7IC8v
IEVQYWdlQnJlYWsKK307CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAvLyBDU1MzIEZsZXhpYmxlIEJveCBQcm9wZXJ0aWVzCiAKQEAgLTc5NSw4
ICs4MjUsMTEgQEAgcHVibGljOgogICAgIGludCBsaW5lQ2xhbXA7IC8vIEFuIEFwcGxlIGV4dGVu
c2lvbi4KICAgICBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+IG1fZGFzaGJvYXJkUmVnaW9u
czsKICAgICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSdyZSB0cmFuc3BhcmVu
dC4KKwogICAgIERhdGFSZWY8U3R5bGVGbGV4aWJsZUJveERhdGE+IGZsZXhpYmxlQm94OyAvLyBG
bGV4aWJsZSBib3ggcHJvcGVydGllcyAKICAgICBEYXRhUmVmPFN0eWxlTWFycXVlZURhdGE+IG1h
cnF1ZWU7IC8vIE1hcnF1ZWUgcHJvcGVydGllcworICAgIERhdGFSZWY8U3R5bGVNdWx0aUNvbERh
dGE+IG1fbXVsdGlDb2w7IC8vICBDU1MzIG11bHRpY29sIHByb3BlcnRpZXMKKwogICAgIENvbnRl
bnREYXRhKiBtX2NvbnRlbnQ7CiAgICAgQ291bnRlckRpcmVjdGl2ZU1hcCogbV9jb3VudGVyRGly
ZWN0aXZlczsKIApAQCAtMTQxNCw2ICsxNDQ3LDE3IEBAIHB1YmxpYzoKICAgICBFTWF0Y2hOZWFy
ZXN0TWFpbEJsb2NrcXVvdGVDb2xvciBtYXRjaE5lYXJlc3RNYWlsQmxvY2txdW90ZUNvbG9yKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RU1hdGNoTmVhcmVzdE1haWxCbG9ja3F1b3RlQ29s
b3I+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXRjaE5lYXJlc3RNYWlsQmxvY2txdW90ZUNvbG9y
KTsgfQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaGlnaGxpZ2h0KCkgY29uc3QgeyByZXR1cm4g
cmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodDsgfQogICAgIEVSZXNpemUgcmVzaXplKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVJlc2l6ZT4ocmFyZUluaGVyaXRlZERhdGEtPnJlc2l6
ZSk7IH0KKyAgICBmbG9hdCBjb2x1bW5XaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX211bHRpQ29sLT5tX3dpZHRoOyB9CisgICAgYm9vbCBoYXNBdXRvQ29sdW1u
V2lkdGgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+
bV9hdXRvV2lkdGg7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBjb2x1bW5Db3VudCgpIGNvbnN0IHsg
cmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX2NvdW50OyB9CisgICAg
ZmxvYXQgY29sdW1uR2FwKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
bXVsdGlDb2wtPm1fZ2FwOyB9CisgICAgYm9vbCBoYXNOb3JtYWxDb2x1bW5HYXAoKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+bV9ub3JtYWxHYXA7IH0K
KyAgICBjb25zdCBDb2xvciYgY29sdW1uUnVsZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2wtPm1fcnVsZS5jb2xvcjsgfQorICAgIEVCb3JkZXJT
dHlsZSBjb2x1bW5SdWxlU3R5bGUoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9tdWx0aUNvbC0+bV9ydWxlLnN0eWxlKCk7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBjb2x1
bW5SdWxlV2lkdGgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0
aUNvbC0+cnVsZVdpZHRoKCk7IH0KKyAgICBFUGFnZUJyZWFrIGNvbHVtbkJyZWFrQmVmb3JlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVBhZ2VCcmVhaz4ocmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fbXVsdGlDb2wtPm1fYnJlYWtCZWZvcmUpOyB9CisgICAgRVBhZ2VCcmVhayBjb2x1bW5C
cmVha0luc2lkZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVQYWdlQnJlYWs+KHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX2JyZWFrSW5zaWRlKTsgfQorICAgIEVQYWdl
QnJlYWsgY29sdW1uQnJlYWtBZnRlcigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVQYWdl
QnJlYWs+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX2JyZWFrQWZ0ZXIpOyB9
CiAgICAgLy8gRW5kIENTUzMgR2V0dGVycwogCiAgICAgLy8gQXBwbGUtc3BlY2lmaWMgcHJvcGVy
dHkgZ2V0dGVyIG1ldGhvZHMKQEAgLTE2NDIsNiArMTY4NiwxOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNYXRjaE5lYXJlc3RNYWlsQmxvY2txdW90ZUNvbG9yKEVNYXRjaE5lYXJlc3RNYWlsQmxv
Y2txdW90ZUNvbG9yIGMpICB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1hdGNoTmVh
cmVzdE1haWxCbG9ja3F1b3RlQ29sb3IsIGMpOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHQoY29u
c3QgQXRvbWljU3RyaW5nJiBoKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGhpZ2hsaWdo
dCwgaCk7IH0KICAgICB2b2lkIHNldFJlc2l6ZShFUmVzaXplIHIpIHsgU0VUX1ZBUihyYXJlSW5o
ZXJpdGVkRGF0YSwgcmVzaXplLCByKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uV2lkdGgoZmxvYXQg
ZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBt
X3dpZHRoLCBmYWxzZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
bXVsdGlDb2wsIG1fd2lkdGgsIGYpOyB9CisgICAgdm9pZCBzZXRIYXNBdXRvQ29sdW1uV2lkdGgo
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1f
YXV0b1dpZHRoLCB0cnVlKTsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+
bV9tdWx0aUNvbCwgbV93aWR0aCwgMCk7IH0KKyAgICB2b2lkIHNldENvbHVtbkNvdW50KHVuc2ln
bmVkIHNob3J0IGMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9t
dWx0aUNvbCwgbV9jb3VudCwgYyk7IH0KKyAgICB2b2lkIHNldENvbHVtbkdhcChmbG9hdCBmKSB7
IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fbm9y
bWFsR2FwLCBmYWxzZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
bXVsdGlDb2wsIG1fZ2FwLCBmKTsgfQorICAgIHZvaWQgc2V0SGFzTm9ybWFsQ29sdW1uR2FwKCkg
eyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX25v
cm1hbEdhcCwgdHJ1ZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
bXVsdGlDb2wsIG1fZ2FwLCAwKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uUnVsZUNvbG9yKGNvbnN0
IENvbG9yJiBjKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVs
dGlDb2wsIG1fcnVsZS5jb2xvciwgYyk7IH0KKyAgICB2b2lkIHNldENvbHVtblJ1bGVTdHlsZShF
Qm9yZGVyU3R5bGUgYikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5t
X211bHRpQ29sLCBtX3J1bGUubV9zdHlsZSwgYik7IH0KKyAgICB2b2lkIHNldENvbHVtblJ1bGVX
aWR0aCh1bnNpZ25lZCBzaG9ydCB3KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fbXVsdGlDb2wsIG1fcnVsZS53aWR0aCwgdyk7IH0KKyAgICB2b2lkIHJlc2V0Q29s
dW1uUnVsZSgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0
aUNvbCwgbV9ydWxlLCBCb3JkZXJWYWx1ZSgpKSB9CisgICAgdm9pZCBzZXRDb2x1bW5CcmVha0Jl
Zm9yZShFUGFnZUJyZWFrIHApIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9tdWx0aUNvbCwgbV9icmVha0JlZm9yZSwgcCk7IH0KKyAgICB2b2lkIHNldENvbHVtbkJy
ZWFrSW5zaWRlKEVQYWdlQnJlYWsgcCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX211bHRpQ29sLCBtX2JyZWFrSW5zaWRlLCBwKTsgfQorICAgIHZvaWQgc2V0Q29s
dW1uQnJlYWtBZnRlcihFUGFnZUJyZWFrIHApIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9icmVha0FmdGVyLCBwKTsgfQogICAgIC8vIEVuZCBD
U1MzIFNldHRlcnMKICAgIAogICAgIC8vIEFwcGxlLXNwZWNpZmljIHByb3BlcnR5IHNldHRlcnMK
QEAgLTE3NzgsNiArMTgzNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRUFwcGVhcmFuY2UgaW5p
dGlhbEFwcGVhcmFuY2UoKSB7IHJldHVybiBOb0FwcGVhcmFuY2U7IH0KICAgICBzdGF0aWMgYm9v
bCBpbml0aWFsVmlzdWFsbHlPcmRlcmVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0aWMg
ZmxvYXQgaW5pdGlhbFRleHRTdHJva2VXaWR0aCgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMg
dW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVtbkNvdW50KCkgeyByZXR1cm4gMTsgfQogCiAgICAg
Ly8gS2VlcCB0aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBpbnQgaW5pdGlhbExpbmVDbGFt
cCgpIHsgcmV0dXJuIC0xOyB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy96aW5kZXgt
aW5oZXJpdC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJr
ZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvemluZGV4
LWluaGVyaXQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFB
QUpZQ0FZQUFBQ2Fkb0p3QUFBYWpVbEVRVlI0bk8zZGE1Q1daUm5BOFdzWEVGRlEKR05nUWNGb1Rr
OFV3VGZDUVRubW1zR1ZFakNKekduRWtrQmhLcGNPSHptWkltVTA2RTFKWm1ZTUNtazZhQkFrcTZv
UW9BODdBZ0JVVgpJOGFnWUNCeVdBN0wzUWZISFJmWUU0ZExyTi92Mjd2UDh6NTdQZmY3Zk5qL2U5
cUtVa29KQUFDQUJKWHY5Z0FBQU1EL0R3RUNBQUNrCkVTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFn
QUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQ2E5M1NBYk42OE9WYXZYbjNJanI5OSsvYjQKeTEvKzB1
VDIrdnI2ZU9tbGx3N1o3K2Z3dFhuejV2ajN2Lys5WC9kdDZib0NBUGhmMW1LQS9PbFBmNHFhbXBx
b3FLaUk2dXJxbURObgpUc08yZGV2V3hkZSs5cldvcUtpSTY2Ky9QdGF2WDM5SWgzMm4rKzY3TDNy
MjdCbjMzbnZ2SVRuK3dvVUxZOUNnUVRGOCtQQjlibi9oCmhSZmk5Tk5Qank5KzhZdUg1UGR6K0pv
NmRXcDA3OTQ5SG5qZ2dUYmZ0NlhyQ2dEZ2YxMkxBVEpreUpCNCt1bW5vN3E2T3JadTNScG4Kbm5s
bXc3YXFxcXJvM2J0M2ZPTWIzNGdwVTZaRWp4NDlEdW13NzNUVlZWZEZkWFgxSVR2KzJXZWZIZGRj
YzAyVDI4ODg4OHk0NElJTApva09IRG9kc0JnNVBZOGFNaVc3ZHV1M1hmVnU2cmdBQS90ZTE2aTFZ
NzN2ZisrS2hoeDZLVFpzMnhmang0eHQrL3ZMTEw4ZFRUejBWCmt5Wk5PbVFEdmxNcHBkSHREaDA2
UkVWRnhTSDdmVWNjY2NRK2o3OTc5KzZJaUdqZnZuMVVWcmE4aEh2T2ZiRHQycldyMWZzZTZsa08K
eEtHYXJTM3IwMW9IY3UwMWRWMEJBUHcvYVBWblFNNDQ0NHo0K3RlL0h2ZmZmMy84L3ZlL2o0aUlH
MjY0SVc2NzdiYTk5dDI4ZVhPTQpIejgrYnJycHBoZzJiRmhNbURBaHRtM2JGaEVSTTJiTWlENTkr
c1NkZDk0WkVSSFRwMCtQZnYzNnhkaXhZNXY4M1RObXpJZ3BVNmJFCmozNzBvemozM0hNYmJkdTll
M2Q4Kzl2Zmp2ZS8vLzB4WU1DQStOZS8vblhJNXRpNmRXdU1HemN1ZnZDREg4VFlzV05qMGFKRnph
NVoKVTNPLyt1cXJjZU9OTjhiNTU1OGZBd2NPak9lZWU2NVYyL1kwYjk2OG1EeDVjdHgrKysxeDNu
bm54YkpseTVxZGZmejQ4WEh6elRmSAo0TUdEWStUSWtURjU4dVI0NXBsbll2SGl4VEZtekpqNDVq
ZS9HYmZjY2t0VVZWWEY4ODgvdjE5elB2bmtrekZ5NU1pWU9IRmkzSDMzCjNkRzNiOStvcWFscDlM
aTBkcDNxNnVwaTRzU0pjZXV0dDhZVlYxd1JZOGFNaVpFalJ6YmNwNlhIcjZuMTJaL3piV3BOSjA2
Y0dEMTcKOW95QkF3ZkdpaFVyV2x5ZmZXbnVPbjNvb1llaXFxb3FycmppaXRpNGNXUDg5cmUvamFx
cXFyajAwa3RqNWNxVkVSRngrKzIzeDhjKwo5ckdvcTZ0cmRsNEFnTU5DYVlPNnVyclNyMSsvVWxW
VlZYN3lrNStVU1pNbTdYTy9qMy84NCtWM3YvdGRLYVdVSFR0MmxMUE9PcXZVCjF0WTJiTy9UcDAr
NTVaWmJHbTRQSGp5NGpCZ3hZcC9IMnJselp4azBhRkREN1J0dXVLSFUxOWVYVWtyNThJYy9YRTQ3
N2JReWQrN2MKc25yMTZsSlRVMU91dSs2Nmd6YkhIWGZjVVk0NzdyaUcyNS82MUtmSzlPblRTeW1s
MU5mWGw5NjllNWRMTDcyMFRYUHYycldyREJreQpwR3phdEtuVTE5ZVhNV1BHbEtxcXFySmh3NFpt
dCsxcCsvYnRwVStmUHVXSko1NG9wWlR5M2U5K3QxeDU1Wlg3bktXVVV1Njg4ODV5CjAwMDNsVkpL
V2JwMGFZbUlNbm55NUxKcTFhcXlZTUdDMHExYnQzTDY2YWVYQng5OHNJd1pNNmFzV0xGaXYrWmN1
M1p0T2Zua2swdE4KVFUxNTlORkh5NnBWcTBxL2Z2M0s2TkdqMjdST3BaUlNXMXRiN3IvLy9vWnR0
YlcxNWN3enoyeTQzZHpqMTl6NnRQVjg5K1g0NDQ4dgpIL3JRaDhvamp6eFNubmppaVhMQ0NTZVVF
MDg4c2V6Y3ViUEZ4M0hQNjZxbDYvU01NODRvMTE1N2JjUHRDeTY0b0l3YU5hcmg5bU9QClBWWis4
NXZmN0hOT0FJRERUWnUrQmF0ang0NHhkZXJVV0xkdVhkeDk5OTB4Y2VMRXZmYVpQWHQyUFB2c3N3
M1BWSGZvMENHdXZmYmEKK09NZi94Z0xGaXlJaUloT25UbzFlZ3ZLVVVjZDFlUmJValp1M0JndnZ2
aGl6Sm8xS3lJaVJvOGUzZWl0T3JXMXRYSHh4UmZIOGNjZgpIeGRlZUdIRHQxSWQ3RG1lZSs2NW1E
VnJWbnppRTUrSWlJakt5c3E0N0xMTG1seXJwdWFlT1hObWxGTGltV2VlaWRtelowZXZYcjFpCjNi
cDE4ZlRUVHplN2JVOGRPblNJNGNPSHgybW5uUllSRWQyN2QyLzBEUHllN3IzMzN1amV2WHRFUkF3
WU1DQ3FxcW9pSXFLNnVqck8KT2VlY3FLbXBpZjc5KzhlVlYxNFpkOTExVnl4WnNtUy81dXpaczJm
MDdkczNUajMxMUtpdHJZM3E2dXE0NktLTDRxOS8vV3ViMXVuWgpaNStOV2JObXhaQWhReHIyN2R1
M2I2UDdOdmY0TmJjK2JUM2ZwbnpoQzErSW9VT0h4b1VYWGhpMzNucHIvUE9mLzR5NWMrZTI2WEZz
CnpYVTZhdFNvbUROblRzTmIveTY1NUpKNDlORkhHOTVhTm5mdTNCZ3hZa1NUY3dJQUhFN2EvRFc4
NTU5L2ZoeDU1SkV4WU1DQWFOKysKL1Y3Ym4zLysrYWlxcW1yMDRleXp6am9ySWlLV0xGblM1Z0Y3
OU9nUnc0Y1BqNkZEaDhhWHZ2U2xPT0dFRTZKZHUzWU4yOS81QjJpMwpidDFpOCtiTmgyU09wNTU2
S21wcWFxSnIxNjROUCt2Y3VYT1R3ZExVM0FzV0xJanUzYnZIRVVjY0VVY2NjVVNjZDk1NThmampq
OGZBCmdRT2IzYmFuaW9xS3VPT09PMkxqeG8weGVmTGttRDkvZnJ6NTVwdE56dCtsUzVlR1AyZ2pJ
bzQ3N3JnNCsreXpHMjUzNnRTcElVb2kKNG9EbXJLaW9hTFF1WGJwMGFmTHRRVTJ0MC96NTg2T21w
aWFPUGZiWVJ1ZmMyczlPdExRK2JUbmZwcnh6dG5QT09TY2lJdjcrOTcrMwo2Vml0dVU0Lzk3blB4
YnAxNitLWlo1NkppSWhseTViRmxpMWJZdDY4ZVZGWFZ4ZTdkKytPbzQ4K3VsWHJBZ0R3YnR1N0lB
N1ExcTFiClkvMzY5YkY1OCtibzNMbHpSRVNjZXVxcDBiNTkrOWl5WmN0K0hmTysrKzZMM3IxN3g4
OSs5ck5ZdkhoeHpKa3pKNDQ1NXBqVU9WNTUKNVpWOWZzMXdjMzhRNzJ2dTlldlhSL3YyN2VPU1N5
N1phLy9tdHUzTDFLbFQ0OWxubjQxZi8vclg4YXRmL1NxZWYvNzVKdmU5NFlZYgo0cHBycm9tbFM1
ZEd4NDRkNDZpampvcnp6eisveWYwUDVwd3QyZGM2clZtekp2N3puLzhjMEhIYnNqNEhlazdWMWRY
UnBVdVg2TktsClM1dU8xWnJydEh2MzdsRmJXeHZUcGsyTHJsMjd4cUJCZzZLeXNqS21UNThlYjd6
eFJnd2JObXkvWmdZQWVEY2M5SDlFV0ZOVEUvWDEKOWZIQ0N5ODAvT3kxMTE2TFhidDJSZi8rL1J0
Kzl2YmJTVnF5ZHUzYWVPMjExK0tuUC8xcHpKNDlPNVl1WFJyVHAwOVBuNk4zNzk2eApidDI2K052
Zi9uWkFjMy9nQXgrSXh4OS92TkVyQXFXVWVPcXBwNXJkdHFmbHk1Zkh1SEhqNHJiYmJtdlZWd0Zm
ZHRsbE1YcjA2Smc5CmUzWXNXclFvbm56eXlXYjNQMWh6dHFTcGRlclZxMWVzWGJzMlhuNzU1VWEv
WTA5TlBYNXRYWjhEUGFjMWE5YkVtMisrR1IvNXlFZmEKZEt6V1hxZlhYSE5OUFBEQUEvSExYLzR5
cnJ2dXVoZzFhbFE4L1BERE1YZnUzR1pERWdEZ2NOUG1BS212cjQ4ZE8zYkU2NisvdnMvdApJMGFN
aU9PUFB6NGVmL3p4aHA4dFdyUW9hbXBxNHBPZi9HUkV2UFVNNzhLRkMyUEhqaDJ4WnMyYStNYy8v
dEhrOFY1Ly9mV1lNV05HClJFUU1Ianc0THIvODhvWm5pcmR1M1JwYnQyNXQySGZidG0wTjN4NTBN
T2JZc1dOSDdOeTVNeUlpUHZ2WnowYjc5dTNqcnJ2dWF0aisKMGtzdnhmcjE2Nk8rdnI3VmMzLys4
NStQVjE5OU5jYU1HUk1iTm15STExNTdMYjcvL2UvSEJ6LzR3V2EzN1duRmloV3hlL2Z1V0w1OApl
ZFRYMThmOCtmT2pycTR1U2luNy9FUDllOS83WHB4ODhza3hZY0tFdU9xcXE2SlRwMDZOdHUvYXRh
dGg3U0xpZ09iY3NXTkhvekRZCnVuWHJQdGVvdVhWNit6RjZlNzIzYjk4ZVM1Y3ViWFJ1elQxK0xh
MVBXODYzS2U4OHB5ZWVlQ0tHRFJzV3A1MTJXcXZXNSszcnFqWFgKYWNSYi80K25ZOGVPMGE1ZHV6
ajIyR1Bqb29zdWltT09PU1o2OWVxMTE2dHcyN2R2angvKzhJZnh5aXV2TkRrN0FNQzdwaTJmV0Yr
eQpaRW01OGNZYlMwU1VUcDA2bGNtVEo1YzFhOWJzdGQvaXhZdkxLYWVjVW43ODR4K1hXYk5tbFpF
alI1WVZLMVkwYko4M2IxN3AzcjE3Ck9mSEVFOHRYdi9yVk1uYnMySEx4eFJjM2ZHUFJPeTFidHF6
MDdkdTNUSjA2dGZ6aEQzOG80OGFOS3p0Mzdpd1BQdmhncWF5c0xLZWMKY2twWnNtUkpXYng0Y2Vu
ZnYzOXAzNzU5ZWVTUlJ3NTRqb1VMRjVhQkF3ZVdpQ2cvLy9uUHkvYnQyOHUwYWROS2x5NWRTdi8r
L2N0bgpQdk9aTW5UbzBITHV1ZWVXYWRPbXRYcnVVa3FaTW1WSzZkaXhZNm1vcUNoVlZWWGw0WWNm
YnJoZmM5dmVhY3VXTGVYMDAwOHZuVHQzCkxxTkdqU3FQUGZaWU9lcW9vOHJWVjE5ZHRtL2Z2dGYr
WC9uS1YwcEVsSWdvN2RxMUt6MTc5aXpqeG8xck9LK2pqejY2OU9yVnE4eVkKTWFOVnN6UzFiZjc4
K2FWcjE2NmxkKy9lWmNHQ0JlWEZGMThzSjUxMFV1bllzV1A1ODUvLzNLWjF1dm5tbTB0bFpXWHAz
YnQzdWZycQpxOHVJRVNNYWZRdFdjNDlmYyt0enp6MzN0UGw4OS9TZDczeW5uSHJxcWVYV1cyOHRr
eVpOS2wvKzhwZkxwazJiV2p6V3ZxNnJscTdUCnQwMmNPTEdzWExteTRmYTN2dld0UnJmZnRuejU4
bEpSVVZIdXVlZWVKdWNIQUhpM1ZKUnlhUDc3V3lrbFZxNWNHWldWbFh0OWUxSEUKVzg4QzE5ZlhS
NmRPbldMbnpwMU52azFtOSs3ZFVWbFpHUnMzYm93T0hUcTArY08yQjJ1T3Q5WFgxOGVHRFJ1aVI0
OGVVVmRYRjBjZQplZVIremIxang0NVl2WHAxVkZkWDcvVmgvdWEyN1duYnRtME5yMlkwTi8ra1Na
UGkwNS8rZE5UVjFjV2JiNzRaR3pkdWpKa3paOGJWClYxL2Q3R2NWRHRhY1RXbHBuVFp0MmhTVmxa
WFJ1WFBudVA3NjYyUHg0c1d4Y09IQ1JqTTA5L2kxZG4zMjk1eldybDBiUFhyMDJPZSsKYlRsV1M5
ZHB4RnV2YkhUczJMSEoyKyswYnQyNlJoK3lCd0E0WEJ5eUFPSHc4WXRmL0NKbXpwd1pjK2ZPYmZU
ek9YUG1STisrZmVPawprMDU2bHlacm0zMEZDQUFBN3kwSC9WdXdPUHg4OUtNZmpRa1RKc1NJRVNO
aTRNQ0JzVzNidG5qMTFWZWp0cmIyUFJNZkVSRkxseTZOCkRSczJSQ21sMVYvSEN3REE0Y1VySVA4
bjNuampqWGo2NmFkajdkcTFjZUdGRjc2bndpTWlZdHEwYWJGcTFhcUllT3NmS1Y1KytlWHYKN2tB
QUFPeVhGZ09rNG51ZWFUNmNsTy9vUlFBQTNyc08rdjhCQVFBQWFJb0FBUUFBMGdnUUFBQWdqUUFC
QUFEU0NCQUFBQ0NOQUFFQQpBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NO
QUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTCkNCQUFBQ0NOQUFFQUFOSUlFQUFB
SUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1EK
QUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVBQUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFND
QkFBQUNDTkFBRUFBTklJRUFBQQpJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFB
TklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOCkFBRUFBTklJRUFBQUlJMEFB
UUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pR
QUIKQUFEU0NCQUFBQ0NOQUFFQUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZ2pRQUJBQURTQ0JBQUFD
Q05BQUVBQU5JSUVBQUFJSTBBQVFBQQowZ2dRQUFBZ2pRQUJBQURTQ0JBQUFDQ05BQUVBQU5JSUVB
QUFJSTBBQVFBQTBnZ1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJCkVBQUFJSTBBQVFBQTBn
Z1FBQUFnalFBQkFBRFNDQkFBQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFE
U0NCQUEKQUNDTkFBRUFBTklJRUFBQUlJMEFBUUFBMGdnUUFBQWdqUUFCQUFEU0NCQUFBQ0NOQUFF
QUFOSUlFQUFBSUkwQUFRQUEwZ2dRQUFBZwpUVVVwcGJ6YlF3QUFBUDhmdkFJQ0FBQ2tFU0FBQUVB
YUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhCkFRSUFBS1FSSUFB
QVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVn
QUFCQUdnRUMKQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNr
RVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQQpwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlB
QUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSCklBQUFRQm9C
QWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFH
Z0VDQUFDa0VTQUEKQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFB
RUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQQpHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJ
QUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CCkFnQUFw
QkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FB
Q2tFU0FBQUVBYUFRSUEKQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFR
SUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDawpFU0FBQUVBYUFRSUFBS1FSSUFBQVFC
b0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnCkFB
QkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNB
QUFFQWFBUUlBQUtRUklBQUEKUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtR
UklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9CQWdB
QXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VD
CkFBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFh
QVFJQUFLUVJJQUFBUUJvQkFnQUEKcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFB
UUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUgpJQUFBUUJvQkFnQUFwQkVn
QUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tF
U0FBCkFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFB
S1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkEKR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JB
Z0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQgpBZ0FBcEJFZ0FBQkFH
Z0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFF
QWFBUUlBCkFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklB
QUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2sKRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBC
RWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZwpBQUJBR2dFQ0FB
Q2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJ
QUFLUVJJQUFBClFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJv
QkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWEKQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFC
QUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQwpBQUNrRVNB
QUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FS
SUFBQVFCb0JBZ0FBCnBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FB
cEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVIKSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VD
QUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQQpBRUFh
QVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFR
Qm9CQWdBQXBCRWdBQUJBCkdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdB
QUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0IKQWdBQXBCRWdBQUJBR2dFQ0FBQ2tF
U0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQQpB
S1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFn
QUFwQkVnQUFCQUdnRUNBQUNrCkVTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdn
RUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWcKQUFCQUdnRUNBQUNrRVNBQUFF
QWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFB
QQpRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJF
Z0FBQkFHZ0VDQUFDa0VTQUFBRUFhCkFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFD
a0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUMKQUFDa0VTQUFBRUFhQVFJ
QUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9C
QWdBQQpwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJB
R2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSCklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FB
QUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUEKQUVBYUFRSUFBS1FS
SUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFw
QkVnQUFCQQpHZ0VDQUFDa0VTQUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNB
QUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CCkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFB
UUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUEKQUtRUklBQUFR
Qm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FB
QkFHZ0VDQUFDawpFU0FBQUVBYUFRSUFBS1FSSUFBQVFCb0JBZ0FBcEJFZ0FBQkFHZ0VDQUFDa0VT
QUFBRUFhQVFJQUFLUVJJQUFBUUJvQkFnQUFwQkVnCkFBQkFHZ0VDQUFDa0VTQUFBRUFhQVFJQUFL
UVJJQUFBUUJvQkFnQUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUEKUUJvQkFn
QUFwQkVnQUFCQUdnRUNBQUNrRVNBQUFFQWFBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dF
Q0FBQ2tFU0FBQUVBYQpBUUlBQUtRUklBQUFRQm9CQWdBQXBCRWdBQUJBR2dFQ0FBQ2tFU0FBQUVB
YUFRSUFBS1FSSUFBQVFCb0JBZ0FBcFBrdll6NFNVNU5iCjJWd0FBQUFBU1VWT1JLNUNZSUk9Cgo=
</data>
<flag name="review"
          id="4588"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>