<?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>137221</bug_id>
          
          <creation_ts>2014-09-29 11:37:03 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for Document</short_desc>
          <delta_ts>2014-09-29 15:23:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>137056</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038000</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-29 11:37:03 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for Document instead of isDocumentNode() / toDocument(). This is a step towards getting rid of the NODE_TYPE_CASTS() macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038001</commentid>
    <comment_count>1</comment_count>
      <attachid>238864</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-29 11:54:06 -0700</bug_when>
    <thetext>Created attachment 238864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038002</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 11:55:40 -0700</bug_when>
    <thetext>Attachment 238864 did not pass style-queue:


ERROR: Source/WebCore/dom/Document.h:1745:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/svg/SVGDocument.h:57:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/ImageDocument.h:87:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/MediaDocument.h:61:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/PluginDocument.h:66:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/HTMLDocument.h:102:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 6 in 69 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038021</commentid>
    <comment_count>3</comment_count>
      <attachid>238864</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-09-29 13:02:50 -0700</bug_when>
    <thetext>Comment on attachment 238864
Patch

Attachment 238864 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6601009887444992

New failing tests:
accessibility/container-node-delete-causes-crash.html
accessibility/canvas-description-and-role.html
accessibility/canvas-fallback-content.html
accessibility/first-letter-text-transform-causes-crash.html
accessibility/content-editable-as-textarea.html
accessibility/contenteditable-table-check-causes-crash.html
accessibility/aria-namefrom-author.html
accessibility/accessibility-object-detached.html
compositing/generated-content.html
canvas/philip/tests/2d.composite.globalComposite.html
accessibility/aria-required.html
compositing/absolute-inside-out-of-view-fixed.html
accessibility/aria-inherits-presentational.html
accessibility/help-text.html
accessibility/aria-labelledby-overrides-aria-labeledby.html
accessibility/aria-mappings.html
accessibility/aria-hidden-hides-all-elements.html
accessibility/content-editable-set-inner-text-generates-axvalue-notification.html
accessibility/heading-crash-after-hidden.html
accessibility/aria-setsize-posinset.html
accessibility/heading-level.html
accessibility/duplicate-child-nodes.html
accessibility/aria-hidden-false-works-in-subtrees.html
accessibility/accessibility-node-memory-management.html
compositing/direct-image-compositing.html
accessibility/aria-invalid.html
compositing/clip-child-by-non-stacking-ancestor.html
compositing/compositing-visible-descendant.html
compositing/document-background-color.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038022</commentid>
    <comment_count>4</comment_count>
      <attachid>238870</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-09-29 13:02:56 -0700</bug_when>
    <thetext>Created attachment 238870
Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-15  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038027</commentid>
    <comment_count>5</comment_count>
      <attachid>238872</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-29 13:18:21 -0700</bug_when>
    <thetext>Created attachment 238872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038029</commentid>
    <comment_count>6</comment_count>
      <attachid>238873</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-29 13:25:24 -0700</bug_when>
    <thetext>Created attachment 238873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038030</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 13:27:59 -0700</bug_when>
    <thetext>Attachment 238873 did not pass style-queue:


ERROR: Source/WebCore/dom/Document.h:1745:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/svg/SVGDocument.h:57:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/ImageDocument.h:87:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/MediaDocument.h:61:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/PluginDocument.h:66:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/HTMLDocument.h:102:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 6 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038032</commentid>
    <comment_count>8</comment_count>
      <attachid>238874</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-29 13:30:08 -0700</bug_when>
    <thetext>Created attachment 238874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038035</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 13:33:04 -0700</bug_when>
    <thetext>Attachment 238874 did not pass style-queue:


ERROR: Source/WebCore/dom/Document.h:1745:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/svg/SVGDocument.h:57:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/ImageDocument.h:87:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/MediaDocument.h:61:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/PluginDocument.h:66:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/html/HTMLDocument.h:102:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 6 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038081</commentid>
    <comment_count>10</comment_count>
      <attachid>238874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 15:23:25 -0700</bug_when>
    <thetext>Comment on attachment 238874
Patch

Clearing flags on attachment: 238874

Committed r174089: &lt;http://trac.webkit.org/changeset/174089&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038082</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 15:23:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238864</attachid>
            <date>2014-09-29 11:54:06 -0700</date>
            <delta_ts>2014-09-29 13:18:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137221-20140929115406.patch</filename>
            <type>text/plain</type>
            <size>84968</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA2ZDJiMGNjNzAxNmIy
ZTMxMjgwYzJmODRkYTIzNGRmZTNkODRhZS4uMmM1M2NmYjM0ZjhmNjM2OTgxNzQ4NTE5NDY2ODkw
NjQ5YmE4MDVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3OCBAQAogMjAxNC0wOS0yOSAgQ2hy
aXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgVXNlIGlzPD4oKSAv
IGRvd25jYXN0PD4oKSBmb3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50
IGluc3RlYWQgb2YgaXNEb2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpmcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cGFnZSk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpk
b2N1bWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbjo6cGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmRvY3VtZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZUNvbnRleHQ6OmFsbG93RGF0YWJhc2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRz
aGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhh
bmRzaGFrZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpj
bGllbnRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ondy
YXApOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZG9jdW1lbnQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUmVxdWVzdFN0YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUmVxdWVzdFN0YXRlOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRp
b0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNBdWRpb0Nv
bnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZl
bnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVySW5saW5l
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmcmFtZUZyb21FeGVjU3RhdGUp
OgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VidGxlQ3J5cHRvOjpkb2N1bWVudCk6CisgICAgICAgICogZG9tL0NvbW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vQ29udGFpbmVy
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FjY2VwdENoaWxkKToKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1
bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0Rv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFn
ZSk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXaW5kb3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZl
bnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hbWVkRmxvd0NvbGxlY3Rpb246OmRvY3VtZW50KToKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0RlZmF1bHROYW1lc3Bh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bG9va3VwUHJlZml4KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3Bh
dGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydE1hcmt1
cCk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
SFRNTERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE5hbWVDb2xsZWN0aW9uOjpkb2N1bWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVs
ZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjppc0ltYWdlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvTWVkaWFE
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNNZWRpYURvY3VtZW50KToKKyAgICAgICAg
KiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1BsdWdpbkRvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlOjpvd25lckRvY3VtZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNr
L1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmluaXRpYWxpemUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVlRUUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdp
b246Om93bmVyRG9jdW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnRO
b2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dCk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJy
aWRnZTo6bWFpblRocmVhZENyZWF0ZUxvYWRlcik6CisgICAgICAgICogcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjpyZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0bzo6ZG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6Omluc3RhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NVGltZXI6OmZpcmVkKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpnZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZCk6CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkpOgorICAgICAgICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
aXN0b3J5Ojpnbyk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzY3Jv
bGxhYmxlRW5jbG9zaW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5TY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpu
b2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyk6CisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbnRleHREb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5k
UnVuUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09i
amVjdCk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0
KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclByb3h5OjphZGRUb1dvcmtlckRvY3VtZW50
cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6b3Blbik6CisKKzIwMTQtMDktMjkgIENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCiAgICAgICAgIFVzZSB0aGUgbmV3IGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgU2hh
ZG93Um9vdCBhbmQgU3R5bGVkRWxlbWVudAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTk5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiNzE5NzU5YmY4OWVlODVh
ODU5ZWVlNTMwNzVlYzdkNGYyNzhhZDVlLi5jNzEzOWI4YTA4YWExOTMxMzE1ODAyZjYwZWRjZDk4
ZDgwYzMwMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTQtMDktMjkgIENocmlz
dG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIFVzZSBpczw+KCkgLyBk
b3duY2FzdDw+KCkgZm9yIERvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzcyMjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBEb2N1bWVudCBp
bnN0ZWFkIG9mIGlzRG9jdW1lbnROb2RlKCkgLworICAgICAgICB0b0RvY3VtZW50KCkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5t
bToKKyAgICAgICAgKC1bV0tET01Eb2N1bWVudCBjcmVhdGVFbGVtZW50Ol0pOgorICAgICAgICAo
LVtXS0RPTURvY3VtZW50IGNyZWF0ZVRleHROb2RlOl0pOgorICAgICAgICAoLVtXS0RPTURvY3Vt
ZW50IGJvZHldKToKKworMjAxNC0wOS0yOSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKICAgICAgICAgVXNlIHRoZSBuZXcgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBU
ZXh0IE5vZGVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzcxODgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAppbmRleCAzZGE4MmE1NDQxMDQ5M2E5ZTZiMGMzYTY4MjJhYzVhNmZmNmU5
NWJhLi43ZDg0ODExODZjNzY0MDY1NzdlNWEyMDAxZmQ3ZDViM2U3YWQwMWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MjUwLDE3ICsyNTAsMTcgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigpCiAKIERvY3VtZW50
KiBHZW9sb2NhdGlvbjo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3VtZW50
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBGcmFtZSogR2VvbG9jYXRpb246OmZy
YW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPmZyYW1l
KCkgOiAwOworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51
bGxwdHI7CiB9CiAKIFBhZ2UqIEdlb2xvY2F0aW9uOjpwYWdlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPnBhZ2UoKSA6IDA7CisgICAgcmV0dXJuIGRvY3Vt
ZW50KCkgPyBkb2N1bWVudCgpLT5wYWdlKCkgOiBudWxscHRyOwogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNw
cAppbmRleCBlZGFmZDdlMmU2NGZjYTMxYWZkM2E2YTcwMjYyNGE4ODYwMWFkM2E1Li5jZTAxMDA3
YTdkMDAwNzg4ZTFjZjFiYTYxNDg1M2NkNzY2N2ZjMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNjgsMTAgKzY4LDEwIEBAIElE
QkZhY3Rvcnk6On5JREJGYWN0b3J5KCkKIG5hbWVzcGFjZSB7CiBzdGF0aWMgYm9vbCBpc0NvbnRl
eHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVChj
b250ZXh0LT5pc0RvY3VtZW50KCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsK
LSAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkb2N1bWVudC0+ZnJh
bWUoKSAmJiBkb2N1bWVudC0+cGFnZSgpICYmICghZG9jdW1lbnQtPnBhZ2UoKS0+dXNlc0VwaGVt
ZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJblBy
aXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkpOwor
ICAgIEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9i
YWxTY29wZSgpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5mcmFtZSgpICYmIGRvY3VtZW50LnBhZ2UoKSAmJiAoIWRvY3VtZW50
LnBhZ2UoKS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dz
RGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LT5wcm90b2NvbCgpKSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNzksOSArNzks
OSBAQCBzdGF0aWMgYm9vbCBpc0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQogc3RhdGljIFN0cmluZyBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoaXNDb250ZXh0VmFsaWQoY29u
dGV4dCkpOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLmluZGV4ZWREQkRhdGFiYXNlUGF0
aCgpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCkuaW5kZXhlZERCRGF0YWJh
c2VQYXRoKCk7CiAgICAgfQogICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3Mg
PSB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT5ncm91cFNldHRpbmdzKCk7CiAgICAgaWYg
KGdyb3VwU2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggOWYzYzk2YTJjMTJhNmFlMjEwNTRkYTM5MGQyODAx
NTM3ODhjMzE0MS4uY2E1MzRjZTg4Y2Q2N2MwNTAxY2RhM2JjMWExODc5MzQ1OTczNDU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgVmVjdG9yPFN0cmluZz4gU291cmNlQnVmZmVyOjpi
dWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2sKIERvY3Vt
ZW50JiBTb3VyY2VCdWZmZXI6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICByZXR1cm4gKnRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDI5ZGMxOTI2ZGQ2YTc0YWJkNWM0ZTc2OTY2NDU4YTEwNTFkZmRmZWMuLjM1MTlj
M2QyZGQxM2Q2Mzg0OTk2NmE0MzMzZWJlNmE3Yzk2ZWNkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzgsNyArMTc4LDcgQEAgUlRDUGVlckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHIKICAgICAsIG1fY29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogewotICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogCiAgICAgaWYgKCFkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmlu
ZGV4IGU5Y2IwMzUzNmNkOGYyMmU2NjFmMDIxYTM0MjU3MTViOWZhZWRlMjEuLjM2YWU2MWZlNDdk
ZGViYTE0MjY0MjQ1MTNmY2VkM2Q5NWM2NjJlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC04Niw3ICs4Niw3
IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBt
X3Rhc2tUaW1lcihzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPE5vdGlmaWNhdGlvbj4+KHRoaXMsICZO
b3RpZmljYXRpb246OnRhc2tUaW1lckZpcmVkKSkKIHsKLSAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ciA9IERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnModG9Eb2N1bWVu
dChjb250ZXh0KS5kb21XaW5kb3coKSk7CisgICAgbV9ub3RpZmljYXRpb25DZW50ZXIgPSBET01X
aW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KS5kb21XaW5kb3coKSk7CiAgICAgCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5jbGllbnQoKSk7CiAgICAgbV90YXNrVGltZXItPnN0YXJ0T25lU2hvdCgwKTsKQEAg
LTEzNSw5ICsxMzUsOSBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpCiAgICAgLy8gcHJldmVu
dCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlID09IElkbGUgJiYgbV9ub3RpZmljYXRp
b25DZW50ZXItPmNsaWVudCgpKSB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAg
IGlmICghdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkpCisgICAg
ICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLnBh
Z2UoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXI6OmZyb20odG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkp
LT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICBpZiAoTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkucGFnZSgpKS0+Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQpIHsKICAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC0yMTMsOCArMjEzLDggQEAgdm9pZCBOb3RpZmljYXRpb246OnRh
c2tUaW1lckZpcmVkKFRpbWVyPE5vdGlmaWNhdGlvbj4mIHRpbWVyKQogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogY29uc3QgU3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVCh0b0RvY3VtZW50KGNvbnRl
eHQpLT5wYWdlKCkpOwotICAgIHJldHVybiBwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXI6OmZyb20odG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgpKS0+Y2xpZW50KCktPmNo
ZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkucGFnZSgpKTsKKyAgICByZXR1cm4gcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRp
b25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKS0+
Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CiB9CiAKIGNvbnN0IFN0cmluZyBO
b3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIHBlcm1pc3Npb24pCkBAIC0yMzQsOCArMjM0LDggQEAgY29uc3QgU3RyaW5nIE5vdGlmaWNh
dGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVy
bWkKIAogdm9pZCBOb3RpZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrPiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQodG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgp
KTsKLSAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHRvRG9jdW1lbnQoY29udGV4dCkt
PnBhZ2UoKSktPmNsaWVudCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBjYWxsYmFjayk7
CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKTsKKyAgICBO
b3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCku
cGFnZSgpKS0+Y2xpZW50KCktPnJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGNhbGxiYWNrKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKaW5kZXggMzY0YzBjNjhkZWQxOWIzMjc4YjUxYTZhZTEwOTU3MjBhOWY3NWI4
OS4uY2Y5OTU5Zjc5OGJlOWI4YzQ1MWEzYWMxYTNjOGIyNTExYWU3NDVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMzI1LDcg
KzMyNSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdG9wKCkKIERvY3VtZW50KiBBdWRpb0NvbnRl
eHQ6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKLSAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBz
YW1wbGVSYXRlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCmluZGV4IDNiZWNlMzAx
OTU3NGUzYTM5ZjY2MjVjN2MxZTMxZGY4NDlmODMwNGIuLjMwOWIxZGI5MmIxMmQ0M2QxZWYzZGQ1
NTVmMWNkZWVkNDIxNDNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMzcsMTIgKzM3LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29udGV4dD4gT2ZmbGlu
ZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2Ft
cGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0
IGZvciB3b3JrZXJzLgotICAgIGlmICghY29udGV4dC5pc0RvY3VtZW50KCkpIHsKKyAgICBpZiAo
IWlzPERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKIAogICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gMTAg
fHwgIWlzU2FtcGxlUmF0ZVJhbmdlR29vZChzYW1wbGVSYXRlKSkgewogICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAKaW5kZXggMjhmMDc2YTM1OTFlNzQwZTExMmM2NTZkZGFlNDUx
NDNiYTljZTE5YS4uMzhkYTE1YTE2ZTA1ZTNmNzdhNmNkNWJhNDg4NTM5NjNiZTAxNjA0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VD
b250ZXh0LmNwcApAQCAtMjE4LDkgKzIxOCw5IEBAIGJvb2wgRGF0YWJhc2VDb250ZXh0OjpzdG9w
RGF0YWJhc2VzKERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyKQogCiBib29s
IERhdGFiYXNlQ29udGV4dDo6YWxsb3dEYXRhYmFzZUFjY2VzcygpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAg
ICAgICAgaWYgKCFkb2N1bWVudC0+cGFnZSgpIHx8IChkb2N1bWVudC0+cGFnZSgpLT51c2VzRXBo
ZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJ
blByaXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkp
KQorICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKKyAg
ICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSB8fCAoZG9jdW1l
bnQucGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxs
b3dzRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLT5wcm90b2NvbCgpKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTIzMSwxMCArMjMxLDEwIEBAIGJvb2wgRGF0YWJhc2VDb250
ZXh0OjphbGxvd0RhdGFiYXNlQWNjZXNzKCkgY29uc3QKIAogdm9pZCBEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWls
cyBkZXRhaWxzKQogewotICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1l
bnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBh
Z2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YShkb2N1bWVudC0+ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CisgICAgaWYgKGlzPERv
Y3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZXhjZWVkZWREYXRhYmFzZVF1b3RhKGRvY3VtZW50LmZy
YW1lKCksIG5hbWUsIGRldGFpbHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VS
VChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA1NTQxYzNlNDFjNWI1MTgxZGE1MTlkN2Q3
ZDg5Zjc4ZmRmMjRmN2ZmLi4xNjU0ZGQ1NjBlMmM5NTA5OTIzZDY2OWZlZTZmOTg5YjE3MDc1NDQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFz
c1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OmNyZWF0ZShTY3JpcHQKICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0
cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHRv
RG9jdW1lbnQoY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6
OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKaW5kZXggZGIzY2U4ZTg2MWI4ZjBkYmM3MDFjMmEzYmQzOWRjYjBlM2Rl
YzNkOC4uOThiZGNlMmZkM2RkYmU3MjkwYjM3ZGQzOTEzMDVkZmI3ZTBmZjA0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTIzOSw5
ICsyMzksOSBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhjZQogCiAgICAgLy8gRklYTUU6IENvbnZl
cnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgogICAgIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAg
ICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpOworICAgIGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkg
eworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2Uo
bV91cmwpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4
IGNjZTMzMmJiNDU2OWUyNTIwM2EzMDNiZjgwMGM0MTk4ZDc3MGViZTUuLmYzNjZhMmQ1ZmE2ODcy
NGIxOTg2MGMzMDc5ZWM5NjgwMmJlYzM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0xOTYsOSAr
MTk2LDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3Nh
Z2UoKSBjb25zdAogICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVByb3RvY29s
OiAiICsgbV9jbGllbnRQcm90b2NvbCk7CiAKICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhl
bnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlmIChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkg
ewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0g
ICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1
bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG1fY29udGV4dCkpIHsKKyAgICAgICAg
RG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX2NvbnRleHQpOworICAg
ICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoJmRvY3Vt
ZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNvb2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBm
aWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBjb29raWUpOwogICAgICAgICAvLyBTZXQgIkNvb2tp
ZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhpc3RzIGZvciB1cmw/CkBAIC0yNDcsOSArMjQ3
LDkgQEAgUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtl
UmVxdWVzdCgpIGNvbnN0CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAKICAg
ICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlm
IChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0gICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1l
bnQ+KCptX2NvbnRleHQpKSB7CisgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9jb250ZXh0KTsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCZkb2N1bWVudCwgdXJsKTsKICAgICAgICAgaWYgKCFjb29r
aWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvb2tpZSwgY29va2llKTsKICAgICAgICAgLy8gU2V0ICJDb29raWUyOiA8
Y29va2llPiIgaWYgY29va2llcyAyIGV4aXN0cyBmb3IgdXJsPwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzU4MTkzZjM0Mzk4YjNhNWM2YzU0ZTUyYjAx
ZGM0ZGFmMDgxNDVmMi4uODkwY2IxZDZkMTZlNGFmNjU1OGRkYTM4ODc4ZDEyMGQ4Mzc0MGI2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lKCkK
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBjbGllbnRXcmFwcGVyLCBX
b3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBw
ZXIoY2xpZW50V3JhcHBlcikKICAgICAsIG1fbG9hZGVyUHJveHkobG9hZGVyUHJveHkpCi0gICAg
LCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh0b0RvY3Vt
ZW50KGNvbnRleHQpLCB0aGlzKSkKKyAgICAsIG1fbWFpbldlYlNvY2tldENoYW5uZWwoV2ViU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGhpcykpCiAg
ICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcAppbmRleCBhNDY0M2UzOGJhZTcyZGQ2NjZmZGViZDg0NTUzYWNjMTVlNzkzNjM3Li5l
NmM5NTA0YzcyMTNjMzBmYTFlYWU5MTUzMzBlMmY1N2JmODBlY2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKQEAgLTEw
MCw5ICsxMDAsOSBAQCBXZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENv
bW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgotICAgICAgICBpZiAodG9Eb2N1bWVudChub2RlKS0+aXNIVE1MRG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEhUTUxEb2N1bWVudChz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihub2RlKSkpOwotICAgICAgICByZXR1cm4gV0VCS0lU
X0RPTV9OT0RFKHdyYXBEb2N1bWVudCh0b0RvY3VtZW50KG5vZGUpKSk7CisgICAgICAgIGlmIChp
czxIVE1MRG9jdW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9E
RSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0PEhUTUxEb2N1bWVudD4obm9kZSkpKTsKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIHJl
dHVybiBXRUJLSVRfRE9NX05PREUod3JhcERvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVu
dFR5cGUqPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0
aERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Db25zdHJ1Y3Rvcldp
dGhEb2N1bWVudC5oCmluZGV4IDVjOThmNjExNjEwZGU3ZGRlYjNjMGJjNTAzMmE0OWMyMmY3YzAz
NzAuLjNlMjY5ODgyZjEyYWY3ZDI3NzEwOGQ1MjcxMTFjNTI1ZmFhNWFiMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1l
bnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCA6
IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0YXRlLmgKaW5kZXggOTA3MTU2MWQ1ODg4NWFh
YjlkZWMxMWJiNTE1OTc2NGFlMjhmZGViMC4uMmE0NzE0YzkzYjkzMDBlYTk3ZjQ4YTRlMWZiNjcz
NzI3MWUyZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVx
dWVzdFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0
YXRlLmgKQEAgLTQxLDExICs0MSwxMSBAQCBjbGFzcyBET01SZXF1ZXN0U3RhdGUgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICAsIG1fZXhlYygwKQorICAgICAgICAs
IG1fZXhlYyhudWxscHRyKQogICAgIHsKLSAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBtX2V4ZWMg
PSBleGVjU3RhdGVGcm9tUGFnZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZG9jdW1lbnQtPnBh
Z2UoKSk7CisgICAgICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkpIHsKKyAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIG1fZXhlYyA9IGV4ZWNT
dGF0ZUZyb21QYWdlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBkb2N1bWVudC5wYWdlKCkpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckds
b2JhbFNjb3BlID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwogICAgICAgICAgICAgbV9leGVjID0gZXhlY1N0YXRlRnJvbVdvcmtlckds
b2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhcigpCiAgICAgewotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSAwOwotICAgICAgICBtX2V4ZWMgPSAwOworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgPSBudWxscHRyOworICAgICAgICBtX2V4ZWMgPSBudWxscHRyOwogICAgIH0KIAogICAg
IGNsYXNzIFNjb3BlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCAzNGI0NWYzMTFmNTQ1MDE5NTA3NWY0ZjE5MWNmYzhj
N2MwYWU4ZmFlLi41Yzg0MTJhZjAwZDQ3ZGMxNDlmNWQ1ZWU4NGRlZDc0NTcxZDBhNjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20u
Y3BwCkBAIC01MywxMCArNTMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU0F1ZGlvQ29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJl
ZmVyZW5jZUVycm9yKGV4ZWMsICJBdWRpb0NvbnRleHQgY29uc3RydWN0b3Igc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0IGlzIHVuYXZhaWxhYmxlIikpOwogICAgICAgICAKLSAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzPERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIGNh
bGxlZCBpbiBhIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCB3aGljaCBpcyBub3QgYSBkb2N1bWVu
dCIpKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKICAgICBSZWZQdHI8QXVkaW9Db250ZXh0PiBh
dWRpb0NvbnRleHQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYWM5ZGQ3NTgxZjg3YzY2NmE1MTI3OWJhN2U2MGJlZjQx
ODhmZWEwYy4uOTljNDAyYzMyN2U3Zjk3Y2FjZTllYzYzOTVjNWRlZGVkZWQwODVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTA1LDE0ICsxMDUsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIAogSlNET01HbG9iYWxP
YmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlNET01H
bG9iYWxPYmplY3QodG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgZXhlYyk7Cisg
ICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0
dXJuIHRvSlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLCBleGVjKTsKIAogICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dv
cmtlckdsb2JhbFNjb3BlKCkpCiAgICAgICAgIHJldHVybiB0b1dvcmtlckdsb2JhbFNjb3BlKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5zY3JpcHQoKS0+d29ya2VyR2xvYmFsU2NvcGVXcmFwcGVy
KCk7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQpAQCAtMTIyLDE0ICsx
MjIsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmwKIAogSlNET01HbG9iYWxPYmplY3QqIHRv
SlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gdG9KU0RPTUdsb2JhbE9i
amVjdCh0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLCB3b3JsZCk7CisgICAgaWYg
KGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0dXJuIHRv
SlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpLCB3b3JsZCk7CiAKICAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKQogICAgICAgICByZXR1cm4gdG9Xb3JrZXJHbG9iYWxTY29wZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KS0+c2NyaXB0KCktPndvcmtlckdsb2JhbFNjb3BlV3JhcHBlcigpOwog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNmUzNGQyMWUzYzJj
M2M4MTIwYmE4ZDdkNmExNmYyMTdhNjQ5NzgxMC4uYjJjYzI3NmM0MThlNjBjZTE2MDQ5MjYzM2I2
OTM3ZWYxMDQyZTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTczLDMwICs3MywzMCBAQCBKU0xhenlFdmVudExpc3Rl
bmVyOjp+SlNMYXp5RXZlbnRMaXN0ZW5lcigpCiBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZXhlY3V0aW9u
Q29udGV4dCkgY29uc3QKIHsKICAgICBBU1NFUlQoZXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgQVNT
RVJUKGV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGlzPERvY3Vt
ZW50PihleGVjdXRpb25Db250ZXh0KSk7CiAgICAgaWYgKCFleGVjdXRpb25Db250ZXh0KQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQoIW1f
Y29kZS5pc051bGwoKSk7CiAgICAgQVNTRVJUKCFtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051bGwo
KSk7CiAgICAgaWYgKG1fY29kZS5pc051bGwoKSB8fCBtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChleGVjdXRpb25Db250ZXh0KTsKKyAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmV4ZWN1dGlvbkNvbnRleHQp
OwogCi0gICAgaWYgKCFkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
aWYgKCFkb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlm
ICghZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMobV9zb3VyY2VVUkwsIG1fcG9zaXRpb24ubV9saW5lKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKCFkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVF
dmVudEhhbmRsZXJzKG1fc291cmNlVVJMLCBtX3Bvc2l0aW9uLm1fbGluZSkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpOworICAgIFNjcmlwdENvbnRyb2xsZXImIHNjcmlwdCA9IGRvY3Vt
ZW50LmZyYW1lKCktPnNjcmlwdCgpOwogICAgIGlmICghc2NyaXB0LmNhbkV4ZWN1dGVTY3JpcHRz
KEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBzY3JpcHQuaXNQYXVzZWQoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoZXhlY3V0aW9uQ29udGV4dCwgaXNv
bGF0ZWRXb3JsZCgpKTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU09iamVjdCogSlNM
YXp5RXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogZXhlYwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOwogICAgICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigp
OwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgSlNGdW5jdGlvbiogbGlzdGVuZXJBc0Z1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihq
c0Z1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CmluZGV4IDdkMDhhMjBkYjY5Y2FjZTAxNjE1MTZkYmExODcxY2RlYjAxZDIyYTIuLmNmODA2MDlk
YTBiZGY2MmY5ZGY4NmE5MmI0ZWFhZTFiMmIwOGI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBBTFdB
WVNfSU5MSU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgogICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9j
dW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQotICAgICAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB0b0RvY3VtZW50KG5vZGUpKTsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRG9jdW1lbnRU
eXBlLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggMzdjNzcyOGVkOWU2MmQ0YmVhYzZjYWY3
YTMwNWRlZGVmMWQ2YWQyNi4uZDExZTQ1NGRiYTk3YzYyZTIxZTA2ZTQ1ZGFhMTBiOGRmYzNjZjg2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3Bw
CkBAIC03NCw4ICs3NCw4IEBAIFNjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvbiwgRE9NV3JhcHBlcldvCiAKIHZvaWQgU2NoZWR1
bGVkQWN0aW9uOjpleGVjdXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0g
ICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZXhlY3V0ZSh0b0RvY3VtZW50
KGNvbnRleHQpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKQorICAgICAgICBleGVj
dXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CiAgICAgZWxzZQogICAgICAgICBleGVj
dXRlKHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IDcwZGZkMTY1MzI0OTIyMzBjZDY1MGRmZDBi
NWY2Y2U2Y2VmZTA4YzAuLjM3NmNkMjU0Zjg3ZDM0MTZmYTczOWYyYTExN2NjM2ZkNjBkY2U0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKQEAgLTU4LDcg
KzU4LDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dGcm9tRXhlY1N0YXRlKEpTQzo6RXhlY1N0YXRl
KiBzY3JpcHRTdGF0ZSkKIEZyYW1lKiBmcmFtZUZyb21FeGVjU3RhdGUoSlNDOjpFeGVjU3RhdGUq
IHNjcmlwdFN0YXRlKQogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShzY3JpcHRTdGF0ZSk7Ci0gICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gY29udGV4dCAmJiBjb250ZXh0LT5pc0RvY3VtZW50KCkgPyB0b0Rv
Y3VtZW50KGNvbnRleHQpIDogbnVsbHB0cjsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250
ZXh0ICYmIGlzPERvY3VtZW50Pihjb250ZXh0KSA/IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSA6IG51bGxwdHI7CiAgICAgcmV0dXJuIGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBu
dWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IDFi
YzU4YzBjY2I0NzA3OTk3N2FhYjkyMDk0M2NkMzk0ZDVlMGM2YjAuLjY4ZDgyMGMzYWRjNTg2ZWQz
NzVhNTg5MWQ4YzI2ZDhhNDNkOWFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwCkBAIC0zOSw3ICszOSw3IEBAIFN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKERvY3Vt
ZW50JiBkb2N1bWVudCkKIAogRG9jdW1lbnQqIFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQoKSBjb25z
dAogewotICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKaW5kZXggNTEzMDBlOWU4YTllMTc5YTI0ZWRiYzhj
MmM5NTQzZjc2ZGZjMzM4Zi4uOTYxZThmMTIxYTc0MzUzZjg4NjIwZDc4MWYwYWJkYjJkZGMyMDIy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPENv
bW1lbnQ+IENvbW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIAogUGFzc1JlZlB0cjxDb21tZW50PiBDb21tZW50OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ29tbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCB0ZXh0KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb21tZW50KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGV4
dCkpOwogfQogCiBTdHJpbmcgQ29tbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGIxN2IwOWYwODJhNWFmMWE2OTA4NjZhMmRiMzBlZmFm
MTA0NzI2NTUuLjY1M2Y2OTcxYjdhMmU4NjUzYzEwMjk5ODY3YTFlMGU4ODVjZDgzNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTIwMiw4ICsyMDIsOCBAQCBzdGF0aWMg
aW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQ
YXJlbnQsIE5vZGUqIG5ldwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRz
KG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIG5ld1BhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkg
ewotICAgICAgICBpZiAoIXRvRG9jdW1lbnQobmV3UGFyZW50KS0+Y2FuUmVwbGFjZUNoaWxkKG5l
d0NoaWxkLCBvbGRDaGlsZCkpCisgICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PihuZXdQ
YXJlbnQpKSB7CisgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpuZXdQYXJlbnQpLmNh
blJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpKQogICAgICAgICAgICAgcmV0dXJuIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICB9IGVsc2UgaWYgKCFpc0NoaWxkVHlwZUFsbG93ZWQo
bmV3UGFyZW50LCBuZXdDaGlsZCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9F
UlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcApp
bmRleCA4MDRhNTY3NjUzNmY0ZGIzZTBkMjA4YTI0MjQwZmIyNmU3ZjJiODYxLi4xMDQ2ZDYyYWY4
YzY4ODZjOTExOWE4ZGE3YjI1NWQxNzIyNGJhMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKQEAgLTM2LDggKzM2LDggQEAgdm9pZCBDaGls
ZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3Vt
ZW50KENvbnRhaW5lck4KICAgICAgICAgLy8gSWYgd2UgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgZG9jdW1lbnQgZHVyaW5nIHRoaXMgbG9vcCwgdGhlbgogICAgICAgICAvLyB3ZSBkb24ndCB3
YW50IHRvIHRlbGwgdGhlIHJlc3Qgb2Ygb3VyIGNoaWxkcmVuIHRoYXQgdGhleSd2ZSBiZWVuCiAg
ICAgICAgIC8vIGluc2VydGVkIGludG8gdGhlIGRvY3VtZW50IGJlY2F1c2UgdGhleSBoYXZlbid0
LgotICAgICAgICBpZiAobm9kZS5pbkRvY3VtZW50KCkgJiYgY2hpbGQtPnBhcmVudE5vZGUoKSA9
PSAmbm9kZSkKLSAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqY2hp
bGQuZ2V0KCkpOworICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGNoaWxkLT5wYXJl
bnROb2RlKCkgPT0gJm5vZGUpCisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKmNoaWxkKTsKICAgICB9CiAKICAgICBpZiAoIW5vZGUuaXNFbGVtZW50Tm9kZSgpKQpA
QCAtNDUsNyArNDUsNyBAQCB2b2lkIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpub3RpZnlE
ZXNjZW5kYW50SW5zZXJ0ZWRJbnRvRG9jdW1lbnQoQ29udGFpbmVyTgogCiAgICAgaWYgKFJlZlB0
cjxTaGFkb3dSb290PiByb290ID0gdG9FbGVtZW50KG5vZGUpLnNoYWRvd1Jvb3QoKSkgewogICAg
ICAgICBpZiAobm9kZS5pbkRvY3VtZW50KCkgJiYgcm9vdC0+aG9zdEVsZW1lbnQoKSA9PSAmbm9k
ZSkKLSAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqcm9vdC5nZXQo
KSk7CisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKnJvb3QpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5ZjdhMjVkYjkwZmI1MDVjYjJmOWFi
MTJmY2EwNzVjYjIyMjhjZmIyLi5jNDJkNDQyYzYyOGFmMmU3NTNhYmRlNTJjZjdhZWUxYmI3ODRk
MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTc0MCwxMiArMTc0MCwxMCBAQCBpbmxpbmUg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7
CiAKLVNDUklQVF9FWEVDVVRJT05fQ09OVEVYVF9UWVBFX0NBU1RTKERvY3VtZW50KQotCi1pbmxp
bmUgYm9vbCBpc0RvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1
bWVudE5vZGUoKTsgfQotdm9pZCBpc0RvY3VtZW50KGNvbnN0IERvY3VtZW50Jik7IC8vIENhdGNo
IHVubmVjZXNzYXJ5IHJ1bnRpbWUgY2hlY2sgb2YgdHlwZSBrbm93biBhdCBjb21waWxlIHRpbWUu
Ci0KLU5PREVfVFlQRV9DQVNUUyhEb2N1bWVudCkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oRG9jdW1lbnQpCisgICAgc3RhdGljIGJvb2wgaXNEb2N1bWVudChjb25zdCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzRG9jdW1lbnQoKTsgfQor
ICAgIHN0YXRpYyBib29sIGlzRG9jdW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gbm9k
ZS5pc0RvY3VtZW50Tm9kZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwCmluZGV4IDdiMWJhM2EzMDMzM2JkMTc3NjgzYjcyMjgwZjY0ZWZmZWZlN2VhM2IuLjY3ZWNi
MTdlM2FlMzU5NjY3MTNiZTgwN2RiZDU4YmIxZDcyNWI0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRG9jdW1lbnRGcmFnbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCBOb2RlOjpDcmVhdGVEb2N1
bWVudEZyYWdtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudEZyYWdtZW50
KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgTm9kZTo6Q3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCkpOwogfQogCiBTdHJpbmcgRG9jdW1lbnRGcmFnbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDJkYThlNzNlZTkwNDc4NTlhNTYyMTI4MDkwOTQ3NDI4YzIz
MTg5MjQuLjIxYWQ1NjZhYTE5NDFkM2M3OWE2ZTAzMThhODI4YjRiNTJkZmFjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKQEAgLTIyMDAsOSArMjIwMCw5IEBAIEF0b21pY1N0cmluZyBFbGVtZW50
Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAogICAgICAgICAgICAgICAgIGlmIChj
b25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGVsZW1lbnREYXRhLT5maW5kTGFuZ3VhZ2VBdHRy
aWJ1dGUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+dmFsdWUoKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50Tm9kZS0+aXNEb2N1bWVu
dE5vZGUoKSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50PihjdXJyZW50Tm9kZSkp
IHsKICAgICAgICAgICAgIC8vIGNoZWNraW5nIHRoZSBNSU1FIGNvbnRlbnQtbGFuZ3VhZ2UKLSAg
ICAgICAgICAgIHJldHVybiB0b0RvY3VtZW50KGN1cnJlbnROb2RlKS0+Y29udGVudExhbmd1YWdl
KCk7CisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjdXJyZW50Tm9kZSku
Y29udGVudExhbmd1YWdlKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNWEwZGI0ZWY5NmUzNDdjZDNjMTFjNzhmM2FhOTVkYjgw
Y2FhYWMyNS4uYzZlMjVlZDlkOWM4NmM5OTAyNTBlZTZlMmM2YzZjNzkxM2VjNjc1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTYwLDEwICs2MCwxMCBAQCBwcml2
YXRlOgogV2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBjb25zdCBFdmVudENvbnRleHQqIHRvcEV2ZW50Q29udGV4dCkKIHsKICAgICBO
b2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4
dC0+bm9kZSgpIDogbm9kZS5nZXQoKTsKLSAgICBpZiAoIXRvcExldmVsQ29udGFpbmVyLT5pc0Rv
Y3VtZW50Tm9kZSgpKQorICAgIGlmICghaXM8RG9jdW1lbnQ+KHRvcExldmVsQ29udGFpbmVyKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV93aW5kb3cgPSB0b0RvY3VtZW50KHRvcExldmVsQ29u
dGFpbmVyKS0+ZG9tV2luZG93KCk7CisgICAgbV93aW5kb3cgPSBkb3duY2FzdDxEb2N1bWVudD4o
KnRvcExldmVsQ29udGFpbmVyKS5kb21XaW5kb3coKTsKICAgICBtX3RhcmdldCA9IHRvcEV2ZW50
Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+dGFyZ2V0KCkgOiBub2RlLmdldCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCAyNjUxNzhjZjZlM2UzZjEwOTcxYTA0Zjll
OGY2NTQxMDU2MzFkN2JkLi40ODM3ZDg2MWRmY2ZhNmExOTQ2YjU3N2JmZDY0MzVlMDE3NzRkZTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTIyMyw4ICsyMjMsOCBAQCB2b2lk
IEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50LCBFdmVudFRhcmdl
dERhdGEqIGQsIEV2ZW50TGlzdAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQg
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVs
bHB0cjsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZl
bnRDb29raWU7Ci0gICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0g
ICAgICAgIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKKyAgICBpZiAoY29udGV4dCAm
JiBpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIHdpbGxEaXNwYXRjaEV2ZW50Q29va2llID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudChkb2N1bWVudCwgKmV2ZW50
LCBzaXplID4gMCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFt
ZWRGbG93Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVj
dGlvbi5jcHAKaW5kZXggZWU5MmYwNDdmNjgyMjYwZTNkZTc4ODJjOTNhZTQxYTU4NTk0ZTcyMC4u
Njg2Nzg0MDhhMTFkYTVhZDI0MzkxMzRhYmJhMWZiZGE3ODM5ODFlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQg
TmFtZWRGbG93Q29sbGVjdGlvbjo6ZGlzY2FyZE5hbWVkRmxvdyhXZWJLaXROYW1lZEZsb3cqIG5h
bWVkRmxvdykKIERvY3VtZW50KiBOYW1lZEZsb3dDb2xsZWN0aW9uOjpkb2N1bWVudCgpIGNvbnN0
CiB7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgcmV0dXJuIHRvRG9j
dW1lbnQoY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxET01OYW1lZEZsb3dDb2xsZWN0aW9uPiBOYW1lZEZsb3dDb2xsZWN0
aW9uOjpjcmVhdGVDU1NPTVNuYXBzaG90KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkYjk3ZGUyMzE3
NjA4OTcwMDUwYzkwYWRkZjE2NjFhZWIyNjZmYzFmLi5lYTkyZGE4MGEyMDhjMGJjYTMwMTRiMjM1
YzMwYTA4NzViNzhiYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMTYyLDggKzExNjIsOCBAQCBi
b29sIE5vZGU6OmlzRGVmYXVsdE5hbWVzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFj
ZVVSSU1heWJlRW1wdHkpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgaWYgKEVsZW1lbnQq
IGRlID0gdG9Eb2N1bWVudCh0aGlzKS0+ZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGRlLT5pc0RlZmF1bHROYW1lc3BhY2UobmFtZXNwYWNlVVJJKTsKKyAgICAgICAg
ICAgIGlmIChFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnRo
aXMpLmRvY3VtZW50RWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVs
ZW1lbnQtPmlzRGVmYXVsdE5hbWVzcGFjZShuYW1lc3BhY2VVUkkpOwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBjYXNlIEVOVElUWV9OT0RFOgogICAgICAgICBjYXNlIE5PVEFU
SU9OX05PREU6CkBAIC0xMTk1LDggKzExOTUsOCBAQCBTdHJpbmcgTm9kZTo6bG9va3VwUHJlZml4
KGNvbnN0IEF0b21pY1N0cmluZyAmbmFtZXNwYWNlVVJJKSBjb25zdAogICAgICAgICBjYXNlIEVM
RU1FTlRfTk9ERToKICAgICAgICAgICAgIHJldHVybiBsb29rdXBOYW1lc3BhY2VQcmVmaXgobmFt
ZXNwYWNlVVJJLCBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50ICo+KHRoaXMpKTsKICAgICAgICAg
Y2FzZSBET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgaWYgKEVsZW1lbnQqIGRlID0gdG9Eb2N1
bWVudCh0aGlzKS0+ZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRl
LT5sb29rdXBQcmVmaXgobmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIGlmIChFbGVtZW50KiBk
b2N1bWVudEVsZW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnRoaXMpLmRvY3VtZW50RWxlbWVu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnQtPmxvb2t1cFByZWZp
eChuYW1lc3BhY2VVUkkpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICBj
YXNlIEVOVElUWV9OT0RFOgogICAgICAgICBjYXNlIE5PVEFUSU9OX05PREU6CkBAIC0xMjUzLDgg
KzEyNTMsOCBAQCBTdHJpbmcgTm9kZTo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyAm
cHJlZml4KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICAgICAgICAgIGlmIChFbGVtZW50KiBkZSA9
IHRvRG9jdW1lbnQodGhpcyktPmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBkZS0+bG9va3VwTmFtZXNwYWNlVVJJKHByZWZpeCk7CisgICAgICAgICAgICBpZiAoRWxl
bWVudCogZG9jdW1lbnRFbGVtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5kb2N1bWVu
dEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRFbGVtZW50LT5sb29r
dXBOYW1lc3BhY2VVUkkocHJlZml4KTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICAgICAgY2FzZSBFTlRJVFlfTk9ERToKICAgICAgICAgY2FzZSBOT1RBVElPTl9OT0RFOgpAQCAt
MjE5OCw4ICsyMTk4LDggQEAgdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJlZigpCiAgICAgLy8gQW4g
ZXhwbGljaXQgY2hlY2sgZm9yIERvY3VtZW50IGhlcmUgaXMgYmV0dGVyIHRoYW4gYSB2aXJ0dWFs
IGZ1bmN0aW9uIHNpbmNlIGl0IGlzCiAgICAgLy8gZmFzdGVyIGZvciBub24tRG9jdW1lbnQgbm9k
ZXMsIGFuZCBiZWNhdXNlIHRoZSBjYWxsIHRvIHJlbW92ZWRMYXN0UmVmIHRoYXQgaXMgaW5saW5l
ZAogICAgIC8vIGF0IGFsbCBkZXJlZiBjYWxsIHNpdGVzIGlzIHNtYWxsZXIgaWYgaXQncyBhIG5v
bi12aXJ0dWFsIGZ1bmN0aW9uLgotICAgIGlmIChpc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAg
IHRvRG9jdW1lbnQoKnRoaXMpLnJlbW92ZWRMYXN0UmVmKCk7CisgICAgaWYgKGlzPERvY3VtZW50
PigqdGhpcykpIHsKKyAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5yZW1vdmVkTGFz
dFJlZigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCAy
OTJmYTVhYmEyYzYwYTk5ZmQxMWM3MDBjYTkzODA2MzUwMDY1N2Y0Li44OGI5YjYxMDg4MjgwYzc5
MzEwZjE4MGI0OTViZWRmYzFhZDlmOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRlKERvY3VtZW50JiBvd25lckRv
Y3VtZW50LCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsCiAKIFBhc3NSZWZQdHI8UmFuZ2U+IFJhbmdl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJhbmdlKHRvRG9jdW1lbnQoY29udGV4dCkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJhbmdlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSkpOwogfQogCiBQYXNz
UmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRlKERvY3VtZW50JiBvd25lckRvY3VtZW50LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVTdGFydCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2
aXNpYmxlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCmluZGV4IDVmNDA1YWY0NmRkNGM5Y2I0Zjk1ODIwZWZhMjVlMjJmMWM2ZWE3YTYuLjUwYTg0
Yzc3OTQ4MWI5OGU3YjdmYTEzYzZhYWJlZWFjYjlkYmYwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTM3OCw4ICszNzgsOCBAQCBib29s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JN
KElPUykKLSAgICBpZiAodGFyZ2V0ID09IHRhcmdldC0+dG9ET01XaW5kb3coKSAmJiBpc0RvY3Vt
ZW50KCkpIHsKLSAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gdG9Eb2N1bWVudCh0aGlzKS0+
c2V0dGluZ3MoKTsKKyAgICBpZiAodGFyZ2V0ID09IHRhcmdldC0+dG9ET01XaW5kb3coKSAmJiBp
czxEb2N1bWVudD4oKnRoaXMpKSB7CisgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvd25j
YXN0PERvY3VtZW50PigqdGhpcykuc2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNldHRpbmdzICYm
ICFzZXR0aW5ncy0+c2hvdWxkRGlzcGF0Y2hKYXZhU2NyaXB0V2luZG93T25FcnJvckV2ZW50cygp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA3
OWE0NWRmY2QxNDE0M2VhZTEzYzAwYjYyNzIxNDI0ZWM0YzE5ZWZkLi43ZDI4OWIwYTA5OTBiNzM3
ODBjZDIxODZjZDYzNzkzYjE4Y2E1OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIFBhc3NSZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBkYXRhKQogCiBQYXNzUmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXh0KHRvRG9jdW1lbnQoY29udGV4dCksIGRhdGEsIENyZWF0ZVRl
eHQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLCBkYXRhLCBDcmVhdGVUZXh0KSk7CiB9CiAKIFBhc3NSZWZQdHI8VGV4dD4gVGV4dDo6
Y3JlYXRlRWRpdGluZ1RleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGRi
ZTk2ODg5ODI5OWJmMjI3YjRkMDgwM2E2ZDI0MDBkMTBhOTA4ZDkuLjczZTE5YmFmZDdkNTI3MmE2
YjAzN2ZiMGZhOGY2NWQ2N2ZjYWFlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NTksNyArNTU5LDcgQEAgdm9pZCBNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2Rl
JiBub2QKICAgICAgICAgYXBwZW5kQ29tbWVudChyZXN1bHQsIGRvd25jYXN0PENvbW1lbnQ+KG5v
ZGUpLmRhdGEoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9E
RToKLSAgICAgICAgYXBwZW5kWE1MRGVjbGFyYXRpb24ocmVzdWx0LCB0b0RvY3VtZW50KG5vZGUp
KTsKKyAgICAgICAgYXBwZW5kWE1MRGVjbGFyYXRpb24ocmVzdWx0LCBkb3duY2FzdDxEb2N1bWVu
dD4obm9kZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdN
RU5UX05PREU6CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5k
ZXggZTVhMDllOTM0ZGNjMjRiNTY3MjI2NDE4MzAyNzQyYzQ2ZjE1YTRhOS4uMGE5YjVhMmJmMGQ1
YjFjNTgwYTRlMzlkYjNhYTdlMGJmODBmYmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oSFRNTERvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQoKTsg
fQotICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0
dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc0hUTUxEb2N1bWVudCh0b0RvY3VtZW50KG5v
ZGUpKTsgfQorICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUp
IHsgcmV0dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBpc0hUTUxEb2N1bWVudChkb3duY2FzdDxE
b2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE5h
bWVDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5o
CmluZGV4IDgwMTAwZjYxYWM5MzhiMDY0OWIwODNkNzQxZDQ5ZjQ3NzA5ZDQzZWYuLjA5MTRjNTQz
Y2IyOGZhYjRlNmRiNTU1YzQ0NDU3ODlmZDA5ODkwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTmFtZUNvbGxlY3Rpb24uaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBIVE1MTmFtZUNvbGxl
Y3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGljOgogICAgIH5IVE1MTmFtZUNv
bGxlY3Rpb24oKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCgpIHsgcmV0dXJuIHRvRG9jdW1l
bnQob3duZXJOb2RlKCkpOyB9CisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KG93bmVyTm9kZSgpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE5h
bWVDb2xsZWN0aW9uKERvY3VtZW50JiwgQ29sbGVjdGlvblR5cGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA2
ODA2NDk0OTI4ZGM4MzFjODdkODlkMThlOTdmZjg1OTJhMDYxYjlkLi4yZjRmNmNkZDMxNzRkYzdj
OTcxMWEwMWIwM2FkZTgwYWNmMGNiOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxl
RWxlbWVudC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpmaW5p
c2hQYXJzaW5nQ2hpbGRyZW4oKQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBI
VE1MU3R5bGVFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9p
bnQpCiB7CiAgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7Ci0g
ICAgaWYgKGluc2VydGlvblBvaW50LmluRG9jdW1lbnQoKSkKKyAgICBpZiAoaXM8RG9jdW1lbnQ+
KGluc2VydGlvblBvaW50KSkKICAgICAgICAgbV9zdHlsZVNoZWV0T3duZXIuaW5zZXJ0ZWRJbnRv
RG9jdW1lbnQoZG9jdW1lbnQoKSwgKnRoaXMpOwogCiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCmluZGV4IGM5YTI5NzYyMmIwZTM4MWI0MDNm
ODUwYzBlMzkyNjRjYjI1MTNhZTEuLjc4MWQwMmNhMzYzZDhmZmE0NWRkZjI3ODdmN2E1ODUxYTIz
Yzk5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCkBAIC04NCw3ICs4NCw3IEBA
IHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oSW1hZ2VEb2N1bWVudCkK
ICAgICBzdGF0aWMgYm9vbCBpc0ltYWdlRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KSB7IHJldHVybiBkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKTsgfQotICAgIHN0YXRpYyBib29s
IGlzSW1hZ2VEb2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1l
bnROb2RlKCkgJiYgaXNJbWFnZURvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3Rh
dGljIGJvb2wgaXNJbWFnZURvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIGlzPERv
Y3VtZW50Pihub2RlKSAmJiBpc0ltYWdlRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUp
KTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5oCmluZGV4IDdiZTllNjE5YjM5OTRkNTUwZTMxNTgzOWM4N2Y2YmYwMTc5N2Fh
NzIuLmFiNWVkMDgxYTZhNDMxODRkODc5ZGUwN2RiYTYwMjAwZGNjYzRlMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAKIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oTWVkaWFEb2N1bWVudCkKICAgICBzdGF0aWMgYm9vbCBp
c01lZGlhRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVu
dC5pc01lZGlhRG9jdW1lbnQoKTsgfQotICAgIHN0YXRpYyBib29sIGlzTWVkaWFEb2N1bWVudChj
b25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCkgJiYgaXNNZWRp
YURvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNNZWRpYURv
Y3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBp
c01lZGlhRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKTsgfQogU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19FTkQoKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKaW5k
ZXggMDEyZmI5NzBkNTY5MjJkMDk2OWFkNWNiNjg2ODU2MjIxZTZmMTkyZS4uMTg4MzRkNjhlMGEz
NWE1ZTNmMTY2MDA4YWJmYmZjMWFhMmNhN2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogCiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFBsdWdpbkRvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzUGx1Z2luRG9jdW1l
bnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVudC5pc1BsdWdpbkRv
Y3VtZW50KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1BsdWdpbkRvY3VtZW50KGNvbnN0IE5vZGUm
IG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc1BsdWdpbkRvY3VtZW50
KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNQbHVnaW5Eb2N1bWVudChj
b25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBpczxEb2N1bWVudD4obm9kZSkgJiYgaXNQbHVnaW5E
b2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0VORCgpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmlu
ZGV4IGYwZWU2NmI4NmUzZGQ3YzExNjViMDlhZWE5YzA2OTBhZDQ4MTZhYjQuLjk1MWZlOGM3YjUx
YzM0YmZhZDViNmQ2ODY0Y2ViZTQzNDRhNWEwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kKTsKIAotICAgIERvY3VtZW50JiBvd25lckRv
Y3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOyB9
CisgICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQoKSB7IHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsgfQogCiBwcml2YXRlOgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggYWIxOTg4ZjE4ODI4NWMwM2I1ZjcyMGEwZjE5MjM4
NzZlOGVjOGI4Yi4uNTljZjZlOTUzNWU0MTgzYWUzZGE0MDY3YzM3N2M5ODY5MTZjNjNiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtMjg4LDggKzI4OCw4IEBAIHZvaWQg
VlRUQ3VlOjppbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAg
bV93cml0aW5nRGlyZWN0aW9uID0gSG9yaXpvbnRhbDsKICAgICBtX2N1ZUFsaWdubWVudCA9IE1p
ZGRsZTsKICAgICBtX3dlYlZUVE5vZGVUcmVlID0gbnVsbHB0cjsKLSAgICBtX2N1ZUJhY2tkcm9w
Qm94ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSh0b0RvY3VtZW50KGNvbnRleHQpKTsKLSAgICBt
X2N1ZUhpZ2hsaWdodEJveCA9IEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRlKHNwYW5UYWcsIHRvRG9j
dW1lbnQoY29udGV4dCkpOworICAgIG1fY3VlQmFja2Ryb3BCb3ggPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CisgICAgbV9jdWVIaWdobGlnaHRC
b3ggPSBIVE1MU3BhbkVsZW1lbnQ6OmNyZWF0ZShzcGFuVGFnLCBkb3duY2FzdDxEb2N1bWVudD4o
Y29udGV4dCkpOwogICAgIG1fZGlzcGxheURpcmVjdGlvbiA9IENTU1ZhbHVlTHRyOwogICAgIG1f
ZGlzcGxheVNpemUgPSAwOwogICAgIG1fc25hcFRvTGluZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUUmVnaW9uLmgKaW5kZXggNDAyODFhNTRiN2Y0YjExZDcyNWE1YjA1ZTk3ZjBh
YTM1NWJkYzJjNy4uZGI5NjVhYmY5NTEzNGZiOGQyN2ZkYmEzMzZiMTJmZWE5YWMxMzdkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCkBAIC05OCw3ICs5OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgVlRUUmVnaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAot
ICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVudChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOyB9CisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQoKSB7IHJl
dHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsgfQogCiAg
ICAgdm9pZCBwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYmMzNzQ0ZDVlODBlMmM0N2Vl
YTgyN2M5ZWE5ZjgxZjYzODIzYzA0Ni4uY2YyZjc0NTM5NmMyYThmYWRjZjljNzQ0ZjNkYjlhMzU1
MWNmYzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0zNzksMTEgKzM3OSwxMSBAQCBEb2N1bWVudCogSW5zcGVjdG9yRE9NQWdlbnQ6
OmFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZAogICAg
IE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVycm9yU3RyaW5nLCBub2RlSWQpOwogICAgIGlmICgh
bm9kZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKCFub2RlLT5pc0RvY3VtZW50
Tm9kZSgpKSB7CisgICAgaWYgKCFpczxEb2N1bWVudD4obm9kZSkpIHsKICAgICAgICAgKmVycm9y
U3RyaW5nID0gIkRvY3VtZW50IGlzIG5vdCBhdmFpbGFibGUiOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQobm9kZSk7CisgICAgcmV0dXJuIGRv
d25jYXN0PERvY3VtZW50Pihub2RlKTsKIH0KIAogRWxlbWVudCogSW5zcGVjdG9yRE9NQWdlbnQ6
OmFzc2VydEVsZW1lbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkKQpAQCAt
MTMwMSwxMSArMTMwMSwxMSBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6
Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZQogICAgICAgICAgICAg
dmFsdWUtPnNldFRlbXBsYXRlQ29udGVudChidWlsZE9iamVjdEZvck5vZGUoZG93bmNhc3Q8SFRN
TFRlbXBsYXRlRWxlbWVudD4oKmVsZW1lbnQpLmNvbnRlbnQoKSwgMCwgbm9kZXNNYXApKTsKICNl
bmRpZgogCi0gICAgfSBlbHNlIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobm9kZSk7Ci0gICAgICAgIHZhbHVlLT5z
ZXREb2N1bWVudFVSTChkb2N1bWVudFVSTFN0cmluZyhkb2N1bWVudCkpOwotICAgICAgICB2YWx1
ZS0+c2V0QmFzZVVSTChkb2N1bWVudEJhc2VVUkxTdHJpbmcoZG9jdW1lbnQpKTsKLSAgICAgICAg
dmFsdWUtPnNldFhtbFZlcnNpb24oZG9jdW1lbnQtPnhtbFZlcnNpb24oKSk7CisgICAgfSBlbHNl
IGlmIChpczxEb2N1bWVudD4obm9kZSkpIHsKKyAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKTsKKyAgICAgICAgdmFsdWUtPnNldERvY3VtZW50VVJM
KGRvY3VtZW50VVJMU3RyaW5nKCZkb2N1bWVudCkpOworICAgICAgICB2YWx1ZS0+c2V0QmFzZVVS
TChkb2N1bWVudEJhc2VVUkxTdHJpbmcoJmRvY3VtZW50KSk7CisgICAgICAgIHZhbHVlLT5zZXRY
bWxWZXJzaW9uKGRvY3VtZW50LnhtbFZlcnNpb24oKSk7CiAgICAgfSBlbHNlIGlmIChpczxEb2N1
bWVudFR5cGU+KG5vZGUpKSB7CiAgICAgICAgIERvY3VtZW50VHlwZSYgZG9jVHlwZSA9IGRvd25j
YXN0PERvY3VtZW50VHlwZT4oKm5vZGUpOwogICAgICAgICB2YWx1ZS0+c2V0UHVibGljSWQoZG9j
VHlwZS5wdWJsaWNJZCgpKTsKQEAgLTE3MjgsMTAgKzE3MjgsOCBAQCB1bnNpZ25lZCBJbnNwZWN0
b3JET01BZ2VudDo6aW5uZXJDaGlsZE5vZGVDb3VudChOb2RlKiBub2RlKQogCiBOb2RlKiBJbnNw
ZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnROb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKG5v
ZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9E
b2N1bWVudChub2RlKTsKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5vd25lckVsZW1lbnQoKTsK
LSAgICB9CisgICAgaWYgKGlzPERvY3VtZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50Pigqbm9kZSkub3duZXJFbGVtZW50KCk7CiAgICAgcmV0dXJuIG5vZGUtPnBh
cmVudE5vZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA3YjY1YjBiZThkYjcwNzFhMzgwOTc0YjA0
YjgwNGNmNjM2YjhjZjI0Li5lZjAwOGQzYTI2ZmVkNzY5MjVjMzg1NDFkZDMyYzYzNjY1ZjM1Yzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtMTAwLDggKzEwMCw4IEBAIGludCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnNfZnJvbnRlbmRDb3VudGVyID0gMDsKIHN0YXRpYyBGcmFtZSogZnJhbWVGb3JTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAg
ICAgRnJhbWUqIGZyYW1lID0gbnVsbHB0cjsKLSAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgp
KQotICAgICAgICBmcmFtZSA9IHRvRG9jdW1lbnQoY29udGV4dCktPmZyYW1lKCk7CisgICAgaWYg
KGlzPERvY3VtZW50Pihjb250ZXh0KSkKKyAgICAgICAgZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCktPmZyYW1lKCk7CiAgICAgcmV0dXJuIGZyYW1lOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
ZDBhNWJiYjY4ZjFlYmNhYTcwNGRlMGM5ODk4Yjg3MzQwODg4ZThlZi4uYjllMGNlNWYwODE5ODNl
NTY3ZWUxYjg2YmYxMGJjZDgxM2MxMGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjA2Miw4ICsyMDYyLDggQEAg
aW5saW5lIEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5z
dHJ1bWVudGluZ0FnZW50c0ZvckNvbnQKIHsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpCi0gICAgICAgIHJl
dHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZSh0b0RvY3VtZW50KGNvbnRleHQpLT5wYWdl
KCkpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpCisgICAgICAgIHJldHVybiBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yUGFnZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCktPnBhZ2Uo
KSk7CiAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHNGb3JOb25Eb2N1bWVudENvbnRleHQo
Y29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAK
aW5kZXggNGIwZjY1MWYyZDcwMWQwZTUxYjZiN2Q3ZWVhZWI5YmQ0ZDNlYTQwYy4uMzUzY2VmMjcz
NDJjZWQ4ZmUxZDdiMmU1ODYzYjVmNDVjOTJkYTU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFRleHRUcmFja0xv
YWRlcjo6ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSog
cmVzb3VyYwogdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKCkK
IHsKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVz
c2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHRleHQgdHJhY2sgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7Ci0gICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwogICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgIG1f
c3RhdGUgPSBGYWlsZWQ7CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NF
UlQobV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CiAKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAg
aWYgKCFtX2Nyb3NzT3JpZ2luTW9kZS5pc051bGwoKQogICAgICAgICAmJiAhZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVzb3VyY2UtPnJlc3BvbnNlKCkudXJsKCkpCiAg
ICAgICAgICYmICFyZXNvdXJjZS0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKGRvY3VtZW50LT5z
ZWN1cml0eU9yaWdpbigpKSkgewpAQCAtMTU1LDggKzE1NSw4IEBAIGJvb2wgVGV4dFRyYWNrTG9h
ZGVyOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSkK
IHsKICAgICBjYW5jZWxMb2FkKCk7CiAKLSAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5pc0RvY3VtZW50KCkpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBBU1NFUlQoaXM8RG9jdW1lbnQ+KG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCBjdWVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwo
dXJsKSkpOwogCiAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA0MWE3YzFhNTg5ODYyMTY1
YmVkNDMwMDAxZGE4M2RmNTVmOWM5YzhlLi4yZThjMmJmZjdhYzBjMDNmY2E1MGU3NjQ4MTMwY2Ey
NGYwYjhjZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJs
ZUxvYWRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAgaWYgKGNvbnRl
eHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSkKICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFi
bGVMb2FkZXI6OmNyZWF0ZSh0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLCBjbGllbnQsIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIHJlcXVlc3QsIG9wdGlvbnMpOwogCi0gICAgcmV0
dXJuIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHRvRG9jdW1lbnQoKmNvbnRleHQp
LCAqY2xpZW50LCByZXF1ZXN0LCBvcHRpb25zKTsKKyAgICByZXR1cm4gRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KSwgKmNsaWVudCwg
cmVxdWVzdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNsaWVudCwg
Y29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCkBAIC03MSw3ICs3MSw3IEBA
IHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoKnRvRG9j
dW1lbnQoY29udGV4dCksIHJlcXVlc3QsIGNsaWVudCwgb3B0aW9ucyk7CisgICAgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KCpkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCksIHJlcXVlc3QsIGNsaWVudCwgb3B0aW9ucyk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCA2MTEwZWMzODdjMDAxYzYwNWZhOTQ0ZmIxNzQ2MDJmNWZiMmFm
ZGIyLi44NTc5NWE4ZGEzM2QxY2Q4YjI1YmEzYzMxZGZiY2ZmODQyM2UzYmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xMDEs
MTQgKzEwMSwxNCBAQCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjp+
TWFpblRocmVhZEJyaWRnZSgpCiB2b2lkIFdvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJl
YWRCcmlkZ2U6Om1haW5UaHJlYWRDcmVhdGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgTWFpblRocmVhZEJyaWRnZSogdGhpc1B0ciwgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhLCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyBvcHRpb25zLCBjb25zdCBTdHJpbmcmIG91dGdvaW5nUmVmZXJyZXIpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KCZj
b250ZXh0KTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dCk7CiAKICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdDo6YWRvcHQocmVxdWVzdERhdGEpKTsKICAgICByZXF1ZXN0LT5zZXRIVFRQUmVmZXJyZXIo
b3V0Z29pbmdSZWZlcnJlcik7CiAgICAgLy8gRklYTUU6IElmIHRoZSBhIHNpdGUgcmVxdWVzdHMg
YSBsb2NhbCByZXNvdXJjZSwgdGhlbiB0aGlzIHdpbGwgcmV0dXJuIGEgbm9uLXplcm8gdmFsdWUg
YnV0IHRoZSBzeW5jIHBhdGgKICAgICAvLyB3aWxsIHJldHVybiBhIDAgdmFsdWUuICBFaXRoZXIg
dGhpcyBzaG91bGQgcmV0dXJuIDAgb3IgdGhlIG90aGVyIGNvZGUgcGF0aCBzaG91bGQgZG8gYSBj
YWxsYmFjayB3aXRoCiAgICAgLy8gYSBmYWlsdXJlLgotICAgIHRoaXNQdHItPm1fbWFpblRocmVh
ZExvYWRlciA9IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCpkb2N1bWVudCwgKnRo
aXNQdHIsICpyZXF1ZXN0LCBvcHRpb25zKTsKKyAgICB0aGlzUHRyLT5tX21haW5UaHJlYWRMb2Fk
ZXIgPSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShkb2N1bWVudCwgKnRoaXNQdHIs
ICpyZXF1ZXN0LCBvcHRpb25zKTsKICAgICBBU1NFUlQodGhpc1B0ci0+bV9tYWluVGhyZWFkTG9h
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwCmluZGV4IGY5YzVjOTgwMTE5NDZjODY5NDVjM2I1OTQxYTY5NzE2Nzk2ZTg5OTQuLjM4MDU4
ZGE5NzE5N2Q4MzczYTk3M2Q5MWI5ZWQ1OGUyYzUwMjg0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTE2MTMsMTEgKzE2MTMsMTEgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcm
IGRpcmVjdGl2ZVRleHQsIGNvbnN0IFMKICAgICBsb2dUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2Us
IGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCBzdGF0ZSk7CiAKICAgICAvLyBGSVhNRTogU3VwcG9y
dCBzZW5kaW5nIHJlcG9ydHMgZnJvbSB3b3JrZXIuCi0gICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzPERvY3VtZW50PigqbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBGcmFtZSogZnJh
bWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTY0NCw4ICsxNjQ0LDggQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9y
dFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFMKICAgICAvLyBo
YXJtbGVzcyBpbmZvcm1hdGlvbi4KIAogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNzcFJl
cG9ydCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgY3NwUmVwb3J0LT5zZXRTdHJp
bmcoQVNDSUlMaXRlcmFsKCJkb2N1bWVudC11cmkiKSwgZG9jdW1lbnQtPnVybCgpLnN0cmlwcGVk
Rm9yVXNlQXNSZWZlcnJlcigpKTsKLSAgICBjc3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVy
YWwoInJlZmVycmVyIiksIGRvY3VtZW50LT5yZWZlcnJlcigpKTsKKyAgICBjc3BSZXBvcnQtPnNl
dFN0cmluZyhBU0NJSUxpdGVyYWwoImRvY3VtZW50LXVyaSIpLCBkb2N1bWVudC51cmwoKS5zdHJp
cHBlZEZvclVzZUFzUmVmZXJyZXIoKSk7CisgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoQVNDSUlM
aXRlcmFsKCJyZWZlcnJlciIpLCBkb2N1bWVudC5yZWZlcnJlcigpKTsKICAgICBjc3BSZXBvcnQt
PnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInZpb2xhdGVkLWRpcmVjdGl2ZSIpLCBkaXJlY3RpdmVU
ZXh0KTsKICNpZiBFTkFCTEUoQ1NQX05FWFQpCiAgICAgaWYgKGV4cGVyaW1lbnRhbEZlYXR1cmVz
RW5hYmxlZCgpKQpAQCAtMTY1NCwxMyArMTY1NCwxMyBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3Qg
UwogICAgIFVOVVNFRF9QQVJBTShlZmZlY3RpdmVEaXJlY3RpdmUpOwogI2VuZGlmCiAgICAgY3Nw
UmVwb3J0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJvcmlnaW5hbC1wb2xpY3kiKSwgaGVhZGVy
KTsKLSAgICBjc3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImJsb2NrZWQtdXJpIiks
IHN0cmlwVVJMRm9yVXNlSW5SZXBvcnQoZG9jdW1lbnQsIGJsb2NrZWRVUkwpKTsKKyAgICBjc3BS
ZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImJsb2NrZWQtdXJpIiksIHN0cmlwVVJMRm9y
VXNlSW5SZXBvcnQoJmRvY3VtZW50LCBibG9ja2VkVVJMKSk7CiAKICAgICBSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IHN0YWNrLT5maXJzdE5vbk5hdGl2ZUNhbGxGcmFtZSgpOwogICAgIGlmIChjYWxs
RnJhbWUgJiYgY2FsbEZyYW1lLT5saW5lTnVtYmVyKCkpIHsKICAgICAgICAgVVJMIHNvdXJjZSA9
IFVSTChVUkwoKSwgY2FsbEZyYW1lLT5zb3VyY2VVUkwoKSk7Ci0gICAgICAgIGNzcFJlcG9ydC0+
c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgic291cmNlLWZpbGUiKSwgc3RyaXBVUkxGb3JVc2VJblJl
cG9ydChkb2N1bWVudCwgc291cmNlKSk7CisgICAgICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKEFT
Q0lJTGl0ZXJhbCgic291cmNlLWZpbGUiKSwgc3RyaXBVUkxGb3JVc2VJblJlcG9ydCgmZG9jdW1l
bnQsIHNvdXJjZSkpOwogICAgICAgICBjc3BSZXBvcnQtPnNldEludGVnZXIoQVNDSUlMaXRlcmFs
KCJsaW5lLW51bWJlciIpLCBjYWxsRnJhbWUtPmxpbmVOdW1iZXIoKSk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NyeXB0by5jcHAKaW5kZXggMzM1ODczMDUxYWI4NTEyZmUxYmUzZTYyZTA5MTMwZGM3YzNi
MWVhNy4uOGNjMGFmNzZiMDk2NzM3OTA5MTJkMjZhMzY5NTY0M2E2OWYyOGMxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3J5cHRvLmNwcApAQCAtNTksNyArNTksNyBAQCBDcnlwdG86On5DcnlwdG8oKQogCiBEb2N1
bWVudCogQ3J5cHRvOjpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIHZvaWQgQ3J5cHRvOjpnZXRSYW5kb21W
YWx1ZXMoQXJyYXlCdWZmZXJWaWV3KiBhcnJheSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NVGltZXIuY3BwCmluZGV4IGI3ZTE4YTBjNTJkNzgxMzc5NzhkYzhlYTM4Y2M2MjY3YjBi
NDJhMmQuLmFlYzkwMTg1NmM5YWRhNjZhNThiMGQ0ZGYyOWNjMDg3MTk1NGEzYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0xMjAsOCArMTIwLDggQEAgaW50IERPTVRpbWVyOjppbnN0
YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWQKICAgICAvLyBpcyBkZXN0cm95ZWQsIG9yIGlmIGV4cGxpY2l0bHkgY2FuY2VsbGVkIGJ5
IHJlbW92ZUJ5SWQuIAogICAgIERPTVRpbWVyKiB0aW1lciA9IG5ldyBET01UaW1lcihjb250ZXh0
LCBXVEY6Om1vdmUoYWN0aW9uKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAjaWYgUExBVEZPUk0o
SU9TKQotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gdG9Eb2N1bWVudCgqY29udGV4dCk7CisgICAgaWYgKGlzPERvY3VtZW50Pihj
b250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVu
dD4oKmNvbnRleHQpOwogICAgICAgICBib29sIGRpZERlZmVyVGltZW91dCA9IGRvY3VtZW50LmZy
YW1lKCkgJiYgZG9jdW1lbnQuZnJhbWUoKS0+dGltZXJzUGF1c2VkKCk7CiAgICAgICAgIGlmICgh
ZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVvdXQgPD0gMTAwICYmIHNpbmdsZVNob3QpIHsKICAgICAg
ICAgICAgIFdLU2V0T2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdLQ29udGVudEluZGV0ZXJtaW5hdGVD
aGFuZ2UpOwpAQCAtMTczLDggKzE3Myw4IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKIAogI2lm
IFBMQVRGT1JNKElPUykKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwotICAgIGlm
IChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQgPSB0b0RvY3VtZW50
KGNvbnRleHQpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIEFTU0VSVCghZG9j
dW1lbnQtPmZyYW1lKCktPnRpbWVyc1BhdXNlZCgpKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCAyYjJmMjA0MjRjYWI4NGM5MTExNjAyMTgwOTZkZTZjYzM2
ODQ4NzliLi40MTk2M2YxZTdjODVlNmVhY2NiZWUwNGNmODY3OWQ4YTM2M2U4MzM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC05NzMsOCArOTczLDggQEAgdm9pZCBET01XaW5kb3c6
OmZvY3VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgYm9vbCBhbGxvd0Zv
Y3VzID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yOjp3aW5kb3dGb2N1c0FsbG93ZWQoKSB8
fCAhbV9mcmFtZS0+c2V0dGluZ3MoKS53aW5kb3dGb2N1c1Jlc3RyaWN0ZWQoKTsKICAgICBpZiAo
Y29udGV4dCkgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBEb2N1
bWVudCogYWN0aXZlRG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOwotICAgICAgICBpZiAo
b3BlbmVyKCkgJiYgb3BlbmVyKCkgIT0gdGhpcyAmJiBhY3RpdmVEb2N1bWVudC0+ZG9tV2luZG93
KCkgPT0gb3BlbmVyKCkpCisgICAgICAgIERvY3VtZW50JiBhY3RpdmVEb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAgIGlmIChvcGVuZXIoKSAmJiBvcGVuZXIo
KSAhPSB0aGlzICYmIGFjdGl2ZURvY3VtZW50LmRvbVdpbmRvdygpID09IG9wZW5lcigpKQogICAg
ICAgICAgICAgYWxsb3dGb2N1cyA9IHRydWU7CiAgICAgfQogCkBAIC0xMDI1LDExICsxMDI1LDcg
QEAgdm9pZCBET01XaW5kb3c6OmNsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
CiAKICAgICBpZiAoY29udGV4dCkgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgICAgICBEb2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOwot
ICAgICAgICBpZiAoIWFjdGl2ZURvY3VtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGlmICghYWN0aXZlRG9jdW1lbnQtPmNhbk5hdmlnYXRlKG1fZnJhbWUpKQorICAgICAgICBp
ZiAoIWRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkuY2FuTmF2aWdhdGUobV9mcmFtZSkpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDEzLDI0ICsxNDA5LDI0IEBAIERPTVdp
bmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1l
bnQoKSBjb25zdAogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIHJl
dHVybiB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4o
Y29udGV4dCk7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1l
ZGlhKCkgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX21l
ZGlhKQogICAgICAgICBtX21lZGlhID0gU3R5bGVNZWRpYTo6Y3JlYXRlKG1fZnJhbWUpOwogICAg
IHJldHVybiBtX21lZGlhLmdldCgpOwogfQogCi1QYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRp
b24+IERPTVdpbmRvdzo6Z2V0Q29tcHV0ZWRTdHlsZShFbGVtZW50KiBlbHQsIGNvbnN0IFN0cmlu
ZyYgcHNldWRvRWx0KSBjb25zdAorUGFzc1JlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBET01X
aW5kb3c6OmdldENvbXB1dGVkU3R5bGUoRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBw
c2V1ZG9FbHQpIGNvbnN0CiB7Ci0gICAgaWYgKCFlbHQpCi0gICAgICAgIHJldHVybiAwOworICAg
IGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoZWx0LCBmYWxzZSwgcHNldWRvRWx0KTsK
KyAgICByZXR1cm4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoZWxlbWVudCwg
ZmFsc2UsIHBzZXVkb0VsdCk7CiB9CiAKIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IERPTVdpbmRv
dzo6Z2V0TWF0Y2hlZENTU1J1bGVzKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcHNl
dWRvRWxlbWVudCwgYm9vbCBhdXRob3JPbmx5KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAppbmRleCBkZDNmNjVhZGM3MGNkZjgxZjc1ZTliYWM0YzM1NThiODI2ZTRk
NWZiLi42MTZkMTMxMzVlYjNkZmJjZWRiZTc4YTM5YzNiZjQ1ZTNiYzE3NWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTkyLDEwICsxOTIsMTAgQEAgdm9pZCBE
cmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRlZChEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIG1f
cGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVN
b3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKICAgICAgICAgZGF0YVRy
YW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsg
Ly8gSW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgfQotICAg
IG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk7CisgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChu
dWxscHRyKTsKICAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSkKICAgICAgICAg
bV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZS0+c2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhm
YWxzZSk7Ci0gICAgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSA9IDA7CisgICAgbV9maWxl
SW5wdXRFbGVtZW50VW5kZXJNb3VzZSA9IG51bGxwdHI7CiB9CiAKIERyYWdPcGVyYXRpb24gRHJh
Z0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVkKERyYWdEYXRhJiBkcmFnRGF0YSkKQEAgLTI1NSw3ICsy
NTUsNyBAQCBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZChEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9IG1f
Y2xpZW50LmFjdGlvbk1hc2tGb3JEcmFnKGRyYWdEYXRhKTsKICAgICBpZiAobV9kcmFnRGVzdGlu
YXRpb25BY3Rpb24gPT0gRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZSkgewotICAgICAgICBjYW5j
ZWxEcmFnKCk7IC8vIEZJWE1FOiBXaHkgbm90IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgw
KT8KKyAgICAgICAgY2FuY2VsRHJhZygpOyAvLyBGSVhNRTogV2h5IG5vdCBjYWxsIG1vdXNlTW92
ZWRJbnRvRG9jdW1lbnQobnVsbHB0cik/CiAgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9u
ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5kZXggMDcyZGZhYWZl
YmY0Njg3ZTcxZmE2NDJhMzE1YjE5YmFmZGQwYWI0My4uMzM2ZTE1MWI2NDhjMTU2NTRkYWRhMDky
ZmQ1NWYwMTljYTRhNTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKQEAgLTc3
LDI1ICs3NywyNSBAQCBQYXNzUmVmUHRyPEV2ZW50U291cmNlPiBFdmVudFNvdXJjZTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbgogewogICAgIGlmICh1cmwuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFVSTCBmdWxsVVJMID0gY29udGV4
dC5jb21wbGV0ZVVSTCh1cmwpOwogICAgIGlmICghZnVsbFVSTC5pc1ZhbGlkKCkpIHsKICAgICAg
ICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IENvbnZlcnQgdGhpcyB0byBjaGVjayB0aGUg
aXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvbmNlIHdlYmtpdC5vcmcv
Yi8xMDQ1MjAgaXMgc29sdmVkLgogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpKSB7
Ci0gICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAg
aWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQg
PSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBp
ZiAoIXNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhY29udGV4
dC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2UoZnVsbFVSTCkp
IHsKICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIHRocm93aW5nIGFuIGV4Y2VwdGlv
bj8KICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBSZWZQdHI8RXZlbnRTb3VyY2U+IHNvdXJj
ZSA9IGFkb3B0UmVmKG5ldyBFdmVudFNvdXJjZShjb250ZXh0LCBmdWxsVVJMLCBldmVudFNvdXJj
ZUluaXQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiMTc2
MzE2NzEwYWU4MWIwMDc0NWQxMDVjZjc0ZmVkNmZiOWRmMGZhLi5jMTRkMDk3ZGU1ODY1MWMzNGQ0
MTM0OTk2MjBiMGIxYzIzODRiNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCkBAIC04NzYsOCArODc2LDggQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2EKICAgICBF
bGVtZW50KiBmb2N1c2VkRWxlbWVudCA9IGZvY3VzZWREb2N1bWVudC0+Zm9jdXNlZEVsZW1lbnQo
KTsKICAgICBOb2RlKiBjb250YWluZXIgPSBmb2N1c2VkRG9jdW1lbnQ7CiAKLSAgICBpZiAoY29u
dGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICB0b0RvY3VtZW50KGNvbnRhaW5lcikt
PnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGlmIChpczxEb2N1
bWVudD4oY29udGFpbmVyKSkKKyAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250YWluZXIp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgLy8gRmlndXJl
IG91dCB0aGUgc3RhcnRpbmcgcmVjdC4KICAgICBMYXlvdXRSZWN0IHN0YXJ0aW5nUmVjdDsKQEAg
LTkwMCw4ICs5MDAsOCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0
aW9uYWxseShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYQogICAgICAgICBjb25zdW1l
ZCA9IGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcihjb250YWluZXIsIHN0YXJ0
aW5nUmVjdCwgZGlyZWN0aW9uLCBldmVudCk7CiAgICAgICAgIHN0YXJ0aW5nUmVjdCA9IG5vZGVS
ZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVzKGNvbnRhaW5lciwgdHJ1ZSAvKiBpZ25vcmUgYm9yZGVy
ICovKTsKICAgICAgICAgY29udGFpbmVyID0gc2Nyb2xsYWJsZUVuY2xvc2luZ0JveE9yUGFyZW50
RnJhbWVGb3JOb2RlSW5EaXJlY3Rpb24oZGlyZWN0aW9uLCBjb250YWluZXIpOwotICAgICAgICBp
ZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgICAg
IHRvRG9jdW1lbnQoY29udGFpbmVyKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CisgICAgICAgIGlmIChjb250YWluZXIgJiYgaXM8RG9jdW1lbnQ+KGNvbnRhaW5lcikp
CisgICAgICAgICAgICBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRhaW5lcikudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgfSB3aGlsZSAoIWNvbnN1bWVkICYmIGNv
bnRhaW5lcik7CiAKICAgICByZXR1cm4gY29uc3VtZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0hpc3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcApp
bmRleCA3NGNlZjRkZDMyMTM4MWMyZjkzOWI4NmNlYzNhNDQ2MTZmN2QzMjNiLi5mMjg5ZWE1YWZl
NTA3N2RlZjZiZTY5ZGYxMDgyNjgxZjdmOTY5NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0hpc3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAK
QEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIEhpc3Rvcnk6OmdvKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIGludCBkaXN0YW5jZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBEb2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSB0b0RvY3Vt
ZW50KGNvbnRleHQpOworICAgIERvY3VtZW50KiBhY3RpdmVEb2N1bWVudCA9IGRvd25jYXN0PERv
Y3VtZW50Pihjb250ZXh0KTsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50KQogICAgICAgICByZXR1
cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXggZTVm
YjA1ZTMyYzkxYTdkOGIxOWRjYzg3NjU4YzkzMjUzZjA5NTljYS4uMjhkOWQzZDUwMjdiYzk2ZGI3
YTkzYjVkODFjOWEzYmM5ZjJkMWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5jcHAKQEAgLTM2Niw4ICszNjYsOCBAQCBib29sIHNjcm9sbEluRGlyZWN0aW9uKEZy
YW1lKiBmcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogYm9vbCBzY3JvbGxJbkRpcmVj
dGlvbihOb2RlKiBjb250YWluZXIsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBB
U1NFUlQoY29udGFpbmVyKTsKLSAgICBpZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQot
ICAgICAgICByZXR1cm4gc2Nyb2xsSW5EaXJlY3Rpb24odG9Eb2N1bWVudChjb250YWluZXIpLT5m
cmFtZSgpLCBkaXJlY3Rpb24pOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGFpbmVyKSkKKyAg
ICAgICAgcmV0dXJuIHNjcm9sbEluRGlyZWN0aW9uKGRvd25jYXN0PERvY3VtZW50PigqY29udGFp
bmVyKS5mcmFtZSgpLCBkaXJlY3Rpb24pOwogCiAgICAgaWYgKCFjb250YWluZXItPnJlbmRlckJv
eCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MzUsMTEgKzQzNSwxMSBAQCBOb2RlKiBz
Y3JvbGxhYmxlRW5jbG9zaW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihGb2N1
c0RpcmVjdGlvbiBkaXJlYwogICAgIEFTU0VSVChub2RlKTsKICAgICBOb2RlKiBwYXJlbnQgPSBu
b2RlOwogICAgIGRvIHsKLSAgICAgICAgaWYgKHBhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkKLSAg
ICAgICAgICAgIHBhcmVudCA9IHRvRG9jdW1lbnQocGFyZW50KS0+ZG9jdW1lbnQoKS5mcmFtZSgp
LT5vd25lckVsZW1lbnQoKTsKKyAgICAgICAgaWYgKGlzPERvY3VtZW50PihwYXJlbnQpKQorICAg
ICAgICAgICAgcGFyZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpwYXJlbnQpLmRvY3VtZW50KCku
ZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBhcmVu
dCA9IHBhcmVudC0+cGFyZW50Tm9kZSgpOwotICAgIH0gd2hpbGUgKHBhcmVudCAmJiAhY2FuU2Ny
b2xsSW5EaXJlY3Rpb24ocGFyZW50LCBkaXJlY3Rpb24pICYmICFwYXJlbnQtPmlzRG9jdW1lbnRO
b2RlKCkpOworICAgIH0gd2hpbGUgKHBhcmVudCAmJiAhY2FuU2Nyb2xsSW5EaXJlY3Rpb24ocGFy
ZW50LCBkaXJlY3Rpb24pICYmICFpczxEb2N1bWVudD4ocGFyZW50KSk7CiAKICAgICByZXR1cm4g
cGFyZW50OwogfQpAQCAtNDUxLDggKzQ1MSw4IEBAIGJvb2wgY2FuU2Nyb2xsSW5EaXJlY3Rpb24o
Y29uc3QgTm9kZSogY29udGFpbmVyLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgaWYg
KGlzPEhUTUxTZWxlY3RFbGVtZW50Pihjb250YWluZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4g
Y2FuU2Nyb2xsSW5EaXJlY3Rpb24odG9Eb2N1bWVudChjb250YWluZXIpLT5mcmFtZSgpLCBkaXJl
Y3Rpb24pOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGFpbmVyKSkKKyAgICAgICAgcmV0dXJu
IGNhblNjcm9sbEluRGlyZWN0aW9uKGRvd25jYXN0PERvY3VtZW50PigqY29udGFpbmVyKS5mcmFt
ZSgpLCBkaXJlY3Rpb24pOwogCiAgICAgaWYgKCFpc1Njcm9sbGFibGVOb2RlKGNvbnRhaW5lcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUyMCw4ICs1MjAsOCBAQCBMYXlvdXRSZWN0IG5v
ZGVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVzKE5vZGUqIG5vZGUsIGJvb2wgaWdub3JlQm9yZGVy
KQogewogICAgIEFTU0VSVChub2RlICYmIG5vZGUtPnJlbmRlcmVyKCkgJiYgIW5vZGUtPmRvY3Vt
ZW50KCkudmlldygpLT5uZWVkc0xheW91dCgpKTsKIAotICAgIGlmIChub2RlLT5pc0RvY3VtZW50
Tm9kZSgpKQotICAgICAgICByZXR1cm4gZnJhbWVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVzKHRv
RG9jdW1lbnQobm9kZSktPmZyYW1lKCkpOworICAgIGlmIChpczxEb2N1bWVudD4obm9kZSkpCisg
ICAgICAgIHJldHVybiBmcmFtZVJlY3RJbkFic29sdXRlQ29vcmRpbmF0ZXMoZG93bmNhc3Q8RG9j
dW1lbnQ+KCpub2RlKS5mcmFtZSgpKTsKICAgICBMYXlvdXRSZWN0IHJlY3QgPSByZWN0VG9BYnNv
bHV0ZUNvb3JkaW5hdGVzKG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSwgbm9kZS0+Ym91bmRpbmdC
b3goKSk7CiAKICAgICAvLyBGb3IgYXV0aG9ycyB0aGF0IHVzZSBib3JkZXIgaW5zdGVhZCBvZiBv
dXRsaW5lIGluIHRoZWlyIENTUywgd2UgY29tcGVuc2F0ZSBieSBpZ25vcmluZyB0aGUgYm9yZGVy
IHdoZW4gY2FsY3VsYXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKaW5kZXggOTk2MDE1ZWVk
MTlhMzg5M2ZkMWEwMGJjZDczYjA5OGM0ZjVkNGNmOC4uNmNhY2YwM2E4MWU4Y2JjNzNiOTRmYmU2
MmYzYTM0NWJmOGViZjc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKQEAgLTU0LDcgKzU0
LDcgQEAgcHJpdmF0ZToKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihTVkdEb2N1bWVu
dCkKICAgICBzdGF0aWMgYm9vbCBpc1NWR0RvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCkgeyByZXR1cm4gZG9jdW1lbnQuaXNTVkdEb2N1bWVudCgpOyB9Ci0gICAgc3RhdGljIGJvb2wg
aXNTVkdEb2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnRO
b2RlKCkgJiYgaXNTVkdEb2N1bWVudCh0b0RvY3VtZW50KG5vZGUpKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzU1ZHRG9jdW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8RG9jdW1lbnQ+
KG5vZGUpICYmIGlzU1ZHRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKTsgfQogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggODhhY2QxZjExZjY0ZTI5ZDc2MmNiMzQy
YTE1NzA1MzgwZGEyMjZlYy4uNDQxNTc1MDI2ZDQwZTE3NmEzNmQ1NzczNmQ2N2U4NzE1MmRlY2Vh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzE5LDEzICszMTksMTMg
QEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBEb2N1bWVudCog
SW50ZXJuYWxzOjpjb250ZXh0RG9jdW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3Vt
ZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3Vt
ZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBGcmFtZSogSW50ZXJuYWxzOjpm
cmFtZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjb250ZXh0RG9jdW1l
bnQoKS0+ZnJhbWUoKTsKIH0KIApAQCAtMTkxNiw4ICsxOTE2LDggQEAgdm9pZCBJbnRlcm5hbHM6
OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RMYXlvdXRUYXNr
cyhOb2RlKgogICAgIERvY3VtZW50KiBkb2N1bWVudDsKICAgICBpZiAoIW5vZGUpCiAgICAgICAg
IGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7Ci0gICAgZWxzZSBpZiAobm9kZS0+aXNEb2N1
bWVudE5vZGUoKSkKLSAgICAgICAgZG9jdW1lbnQgPSB0b0RvY3VtZW50KG5vZGUpOworICAgIGVs
c2UgaWYgKGlzPERvY3VtZW50Pihub2RlKSkKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4obm9kZSk7CiAgICAgZWxzZSBpZiAoaXM8SFRNTElGcmFtZUVsZW1lbnQ+KG5vZGUp
KQogICAgICAgICBkb2N1bWVudCA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVtZW50Pigqbm9kZSku
Y29udGVudERvY3VtZW50KCk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggM2IxYjkxY2VlMzEyOTNhOTJjMzYz
OWY1MGNjMjAwOWZlZTk0MjExOC4uYWVhOGU0YTkwZDQxMWVlYzg3N2IwZDQ5ZTM5Zjk3MGYzMjQy
MjJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcApAQCAtNDYsOCArNDYsOCBAQCB2b2lkIGluamVjdEludGVybmFsc09iamVjdChKU0Nv
bnRleHRSZWYgY29udGV4dCkKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRDb250ZXh0ID0gZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
Ci0gICAgaWYgKHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZ2xvYmFsT2Jq
ZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCBJbnRlcm5hbHM6Omlu
dGVybmFsc0lkKSwgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIEludGVybmFsczo6Y3JlYXRlKHRv
RG9jdW1lbnQoc2NyaXB0Q29udGV4dCkpKSk7CisgICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRD
b250ZXh0KSkKKyAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRl
bnRpZmllcihleGVjLCBJbnRlcm5hbHM6OmludGVybmFsc0lkKSwgdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIEludGVybmFsczo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRDb250ZXh0
KSkpKTsKIH0KIAogdm9pZCByZXNldEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4
dCkKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCByZXNldEludGVybmFsc09iamVjdChKU0NvbnRleHRS
ZWYgY29udGV4dCkKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRDb250ZXh0ID0gZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAg
UGFnZSogcGFnZSA9IHRvRG9jdW1lbnQoc2NyaXB0Q29udGV4dCktPmZyYW1lKCktPnBhZ2UoKTsK
KyAgICBQYWdlKiBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdENvbnRleHQpLT5mcmFt
ZSgpLT5wYWdlKCk7CiAgICAgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKHBhZ2Up
OwogICAgIEludGVybmFsU2V0dGluZ3M6OmZyb20ocGFnZSktPnJlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggOTMwYzYxNGE0MmQwMjc2NTM1OTdlMjhjNjli
NTgwZjRkMjk3NjNkOS4uZjlkMGUzYWI4ODVhODA0NDU3OTJjNmIyNzQ3NDJlNjkzYzZhMGYzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclBy
b3h5OjphZGRUb1dvcmtlckRvY3VtZW50cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBBU1NFUlQoIWlzQ2xvc2luZygpKTsKICAgICBN
dXRleExvY2tlciBsb2NrKG1fd29ya2VyRG9jdW1lbnRzTG9jayk7Ci0gICAgbV93b3JrZXJEb2N1
bWVudHMuYWRkKHRvRG9jdW1lbnQoY29udGV4dCkpOworICAgIG1fd29ya2VyRG9jdW1lbnRzLmFk
ZChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkpOwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclBy
b3h5Ojpkb2N1bWVudERldGFjaGVkKERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggYzNjMThjMDc0ZWUz
YWZlYjE3NzMyYmU0M2Y5N2IxZjc4ZTk4NGRlNy4uMmJjYWE0YmQ5YzgxYzgzMDJkMWZlMmE2ZTI4
Mjg2ZDg4ZWU4ZjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKQEAgLTgzLDExICs4MywxMSBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dAogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3Vw
cG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7Ci0gICAgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MgPSAwOwotICAgIGlm
IChkb2N1bWVudC0+cGFnZSgpKQotICAgICAgICBzZXR0aW5ncyA9ICZkb2N1bWVudC0+cGFnZSgp
LT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKTsKLSAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhy
ZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBk
b2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIoKSwgZG9j
dW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgpLCBk
b2N1bWVudC0+dG9wT3JpZ2luKCkpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBHcm91cFNldHRpbmdz
KiBzZXR0aW5ncyA9IG51bGxwdHI7CisgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkKKyAgICAgICAg
c2V0dGluZ3MgPSAmZG9jdW1lbnQucGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKTsKKyAg
ICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUs
ICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+ZGVwcmVjYXRlZEhlYWRlcigpLCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
ZGVwcmVjYXRlZEhlYWRlclR5cGUoKSwgZG9jdW1lbnQudG9wT3JpZ2luKCkpOwogICAgIHdvcmtl
clRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7CiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcywgc2NyaXB0VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCmluZGV4IGMyMzc1YzQ4YjUzYzc4ZDNmYzk3MTU1YjkzZmE4ZjJjNTE5
YzFmYzAuLjRkNTM0ZWU5YThmNWZjMzI1OThiNDhkYWU1OWI1ZjAwYWM2MjI1N2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIFhNTEh0dHBS
ZXF1ZXN0Ojp+WE1MSHR0cFJlcXVlc3QoKQogRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0Ojpkb2N1
bWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0g
ICAgcmV0dXJuIHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1
cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIFNl
Y3VyaXR5T3JpZ2luKiBYTUxIdHRwUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApAQCAt
NDg3LDEwICs0ODcsMTAgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcm
IG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvb2wgYXN5bmMsIEV4Y2UKIAogICAgIC8vIEZJWE1F
OiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xhdGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2IvMTA0NTIwIGlzIHNvbHZlZC4KICAgICBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGZhbHNlOwotICAg
IGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
Ci0gICAgICAgIGlmIChkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgICAgIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LT5mcmFtZSgpLT5zY3Jp
cHQoKS5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKKyAgICBp
ZiAoaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpIHsKKyAgICAgICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOworICAgICAgICBpZiAoZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCkt
PnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwog
ICAgIH0KICAgICBpZiAoIXNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
YWxsb3dDb25uZWN0VG9Tb3VyY2UodXJsKSkgewogICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHRo
aXMgYmUgdGhyb3dpbmcgYW4gZXhjZXB0aW9uPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVu
dC5tbQppbmRleCA1Mzk4Yjk5M2VhNTRiZjRjOGYzMDMyYzEzOWJlYWMxNzM1NGEyNThiLi5kZGQ3
YmQ2ZDkwNDU2YzUyNGI5NDNiY2M0ZDNjZWQ5MGRkNWVlMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01Eb2N1bWVudC5tbQpAQCAtMzksMTcgKzM5LDE3IEBAIC0gKFdLRE9NRWxlbWVudCAqKWNy
ZWF0ZUVsZW1lbnQ6KE5TU3RyaW5nICopdGFnTmFtZQogewogICAgIC8vIEZJWE1FOiBEbyBzb21l
dGhpbmcgYWJvdXQgdGhlIGV4Y2VwdGlvbi4KICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9NRWxlbWVudCh0b0RvY3VtZW50KF9pbXBs
LmdldCgpKS0+Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCBlYykuZ2V0KCkpOworICAgIHJldHVybiBX
ZWJLaXQ6OnRvV0tET01FbGVtZW50KFdlYkNvcmU6OmRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50
PigqX2ltcGwpLmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgZWMpLmdldCgpKTsKIH0KIAogLSAoV0tE
T01UZXh0ICopY3JlYXRlVGV4dE5vZGU6KE5TU3RyaW5nICopZGF0YQogewotICAgIHJldHVybiBX
ZWJLaXQ6OnRvV0tET01UZXh0KHRvRG9jdW1lbnQoX2ltcGwuZ2V0KCkpLT5jcmVhdGVUZXh0Tm9k
ZShkYXRhKS5nZXQoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTVRleHQoV2ViQ29yZTo6
ZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KCpfaW1wbCkuY3JlYXRlVGV4dE5vZGUoZGF0YSku
Z2V0KCkpOwogfQogCiAtIChXS0RPTUVsZW1lbnQgKilib2R5CiB7Ci0gICAgcmV0dXJuIFdlYktp
dDo6dG9XS0RPTUVsZW1lbnQodG9Eb2N1bWVudChfaW1wbC5nZXQoKSktPmJvZHkoKSk7CisgICAg
cmV0dXJuIFdlYktpdDo6dG9XS0RPTUVsZW1lbnQoV2ViQ29yZTo6ZG93bmNhc3Q8V2ViQ29yZTo6
RG9jdW1lbnQ+KCpfaW1wbCkuYm9keSgpKTsKIH0KIAogQGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>238870</attachid>
            <date>2014-09-29 13:02:56 -0700</date>
            <delta_ts>2014-09-29 13:02:56 -0700</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>170410</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
qNupPgKz7R3j7hCmILCvKbrXutJX/wFQSwMECgAAAAAAiGM9RQAAAAAAAAAAAAAAAA4AHABhY2Nl
c3NpYmlsaXR5L1VUCQADz7IpVNSyKVR1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAhWM9RT7FNLjl
AAAAkgEAAD0AHABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1tZW1vcnktbWFuYWdl
bWVudC1hY3R1YWwudHh0VVQJAAPKsilUyrIpVHV4CwABBPUBAAAEFAAAAH2PwU7DMBBE7/6KIWfE
H3AoJTcgEckPOPGGGFw7sjdN/fdsmhYVIXGxrN03OzOqHW0CU2Ic9BclpDkSeNSMXd9TSrazznJ+
C4aq7pN6TtBCTDFMFF2GIdb9SAbLSF6EBC/o+smYgvUMDhALQ46YzINSlReT8+175DBjsc4hEUHL
G61kCAOKetc0BQ5C6Q8ScgjOhUV8uoyiLZsW++q1finbspCbasVBp0kCknmamYN/D45w9/gzfb4k
Pc/X0nGmTddrf9TpRiXbv7c29tp3/4/m1mlTXQoPs3O51jFJj2sC9auMUt9QSwMEFAACAAgAhWM9
RZ7J8XQGAQAA4gEAADsAHABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1tZW1vcnkt
bWFuYWdlbWVudC1kaWZmLnR4dFVUCQADyrIpVMqyKVR1eAsAAQT1AQAABBQAAADFUEtug0AM3XOK
J7ZkOoraA5C2rPpJVFCzNuCUaQcGMUYJt6+JumhP0I0/0vP72BgD+x783HO0jyRki2Npj1w/Oflp
97PzrX1jzxTZelrCLEY4ipk4zl6ipabhGF3tvJPl72aG0LLpuQ/TYnoa6IN7HsTwZeRGuL2RiyRZ
lv2LCWpkJn+1kOcw280tsu3mDnmeZAmqzkWsEujpiyPiPDGkI8HuN/mrcu/rT00TQYoYpzDy5Be0
LNR03OLc8aCHjNXGOiwYgxsEEqASrYZaP5EgwX5QmSv7BhoRZ+c9IjNI6+TURTghPezKMoU+K2oS
RZ6C9+GsSvWCtCrKCg/7l8NzURXpTfINUEsDBBQAAgAIAIVjPUVOq06t5QAAAJEBAAA/ABwAYWNj
ZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtZXhwZWN0ZWQu
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
ABwAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW9iamVjdC1kZXRhY2hlZC1kaWZmLnR4dFVU
CQADyrIpVMuyKVR1eAsAAQT1AQAABBQAAAC9kEFOw0AMRfc5xVe2yXRUwQFSICtArUhE107ikoFp
pqodpbk904hKcAE2tr78/b5sYwzse/DjkcU+kZIt95Xdc/Ps9Kc9jM539o09k7D1NIdRjbKoObOM
XsVS27KIa5x3Ov9VJjSf3KrpWKntuTN8OUXN3UovmmRZ9r/p1OpIfskuCph1fodsnd+jKJIsQd07
wZWNI32xQMYzQ3tSbH5TtwtUQHF6I2PqeYhexhC66xLPOAU3KDQgUm++VYIE2yGiF2KOeA8m5z2E
GRTr2cXkcEC621RVivgZoQ+OzkPwPkwxqpmR1mVV43H7unsp6zJdJd9QSwMEFAACAAgAhWM9RbXn
Li/DAAAAIwEAADgAHABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVk
LWV4cGVjdGVkLnR4dFVUCQADyrIpVMqyKVR1eAsAAQT1AQAABBQAAABVj8FSwzAMRO/+iiVnhj/g
UCA3mGRIfsBJFGJwrU4kT+q/r1JaZrjosHraXfVLECiJ4uh/SCB5JejiFYdxJJEwhBi0NMM3jSrw
tp1I/bjQhG2hZCwh8bQfUcGJQ1Iow1zv3JNzTTLjq98jCmdsIUYIEbzNNVguz6jaQ9dVOBrlv8jI
mWPkzYKGgqqvux6vzUf7Xvd1ZZ5ux0HnkxWj6SWrcvrkSHh4/lPfbhWu+v7omun37lZnzjGW1q9i
Kfe9+xfl3AVQSwMEFAACAAgAhmM9RX0+qnTKBwAA3xgAADwAHABhY2Nlc3NpYmlsaXR5L2FjY2Vz
c2liaWxpdHktb2JqZWN0LWRldGFjaGVkLXByZXR0eS1kaWZmLmh0bWxVVAkAA8uyKVTLsilUdXgL
AAEE9QEAAAQUAAAApVltb9s2EP6eX0Ek2AIUkWzHdhfbbYY2cTBgLy2WYPs4UBJlsaFElaQSO9v+
+45vsiRLSYauWC2RR/JennvuqL7LVM4uj95lBCfwkxOFUZxhIYl6f1qpNLg4hWGpdoxcHi0ZLe7P
0PKBSqpIgv4+QvCfIlsVJCTmAivKiyUqeEFWZiriIiEiiLhSPF+iSblFCTyTZHX075Hdzm0Sc8bF
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
11lusAv36+A2WjMfeQbH3SwiAMdddts7HgDJCxahjEsUEKRuVtQN0FtCMlQ5C1/LvCC+vj/SvyBA
5hcEdnKgzoXatRHOIvTx0xMS2gT6n4v2fMw734VvdhAnrQ36YBSgJcity/zv5HM74F1YZwef0oDV
Cdsdx+OCseVn9bspsKRAyizf4tONh75tueqZ32r9F1BLAwQUAAIACACGYz1Fp3a7RbQAAAD9AAAA
NwAcAGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4taGlkZXMtYWxsLWVsZW1lbnRzLWFjdHVhbC50
eHRVVAkAA8uyKVTLsilUdXgLAAEE9QEAAAQUAAAAVU/LisMwDLz7K4acu2V/oZTcdkkg+QHFVjZe
tHaxbEL+virpZS9CaB6acfMWFZW1KqhE+thiCJyQEwgPKpwqUg6MPYrAQAbZUjdWhj7YRxJoW7yQ
KvLyy77q1bkh2dV7Vr3gyO2UK5vaZols3BXdeJumDn/Goh825ppF8s4By4Fu7qcZ9+F7/OrnvjNP
96LD51Qt1dVvUYLlu+dmGa3E54m/365N5BipqLm9GpbGzv2zdO4JUEsDBBQAAgAIAIZjPUUBOVj/
9QAAALsBAAA1ABwAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1oaWRlcy1hbGwtZWxlbWVudHMt
ZGlmZi50eHRVVAkAA8uyKVTLsilUdXgLAAEE9QEAAAQUAAAAvZBNTsNADIX3OcVTtsl0VMEBwk9W
gFqRiK6dxKWD3EwVO2pze6aFBSdgY0uW3/f87JyD/4gyH1n9Mxn5etf4HXcvwX7b4xxk8O8sTMpe
aImzOWM1N7HOYuqp71k1dEGCLZ6mQO4QhoHHa2N1JOKS/MijqePLiXvjYWUXy4qi+Gd76m0muZlX
Fdy6vEOxLu9RVVmRoT0ExRWu+MNBHEE40ZQIGOPAOAcRXOlIcNiBlaEpVyCBzl0vpIrYfaWkusqQ
YTOm+e3OEinBD0A56VOdAqftPfLtQ9PkSL9Q+uS0uY8i8cwDugV5WzctnjZv29e6rfNV9g1QSwME
FAACAAgAhmM9ReiitZqzAAAA/AAAADkAHABhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWhpZGVz
LWFsbC1lbGVtZW50cy1leHBlY3RlZC50eHRVVAkAA8uyKVTLsilUdXgLAAEE9QEAAAQUAAAAVU/L
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
ZmYudHh0VVQJAAPLsilUy7IpVHV4CwABBPUBAAAEFAAAAMWQTU7EMAyF9zmF1W2aRiM4QPnpCtCM
aMWs3dbDRDIExQ4zvT2hQiC4AJvnxbOfP9s5B/4pcn4h8beo6Lt97/c03gX9Ktc58OwfiQmFPOMS
szolUZdIMqt4nCYSCWPgoIvHFNAxjsRM87i4+E4phZnE/TirQec3mpTmRs9qrLX/BoKTZuQVo23B
beoLsJv6EtrWWAPDMQh8ril6RIU/sfAdC79jYYoplQN5aQwY2L6C5JWvhkIOp8AMQgRYNIUyHg9Q
7a76voLyA8FnKp2HyBxPNEPJq4auH+Bm+7C774auaswHUEsDBBQAAgAIAIZjPUWOzCrfrAAAAPcA
AABDABwAYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWxl
ZGJ5LWV4cGVjdGVkLnR4dFVUCQADy7IpVMuyKVR1eAsAAQT1AQAABBQAAABVj7EOgkAMhvd7ioaF
RX0AN6JsGklgULfjKHKxcqY9JLy9RR1w+Yf+X7+0VecFIkrU7GwEy96uydZIhE09QXghs29QFs2n
cIEZXaRpY8ypBxmcQ5EVTGGA0ROBIILVZK/LoYWkyMoygYdS9oZKtoEojNiA2pIqLyvYnY7FIa/y
RJ1mxoF8f9+jOPbP6EMPemyanReTLVzgmn7h3w3tQDQVlkXV83M8oDF/fmPeUEsDBBQAAgAIAIZj
PUVuZKpgugcAAMkYAABHABwAYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVz
LWFyaWEtbGFiZWxlZGJ5LXByZXR0eS1kaWZmLmh0bWxVVAkAA8uyKVTLsilUdXgLAAEE9QEAAAQU
AAAApVltb+M2Ev6eX0EkuAYoIsmO7W1s7+bQTRwccG130QTdjwdKoixuKFElqcTe9v77Dd9kSZaS
HLaLriVySM7LM/MMte9zVbDrk/c5wSn8FERhlORYSKI+nNcqC67OYViqPSPXJytGy8cLtHqikiqS
or9OEPynyE4FKUm4wIrycoVKXpK1mYq5SIkIYq4UL1ZoWu1QCs8kXZ/898Ru5zZJOONihc4ms6WZ
C+8oI7c0y9x8jJPHreB1mQZeNLvSf9oH2RMkZzRFZ2ma2rmMlyrIcEHZfoUKXnJZ4cQpWGCxpaDy
lBRoYocqDsYZOwRhYNETMQrl056ms9lsYH+JSxlIImjWmpT0GzFntA8NGMnUCk3ChR9PqawYhk1o
CZ5xGj7TVOWweDL5h9MPpyktt81Kq5sLjX7qRsepS8sclFKNeM6fiOhZtFgs1mPOJsS6IdQx+QXO
km5xxjgGMwTd5qobOS11A+ZjsMUfxcH1VIGJk57JCseMBAlhrGNlYPbteOk5B+sCE0MNtWeBq4Nm
9yTRsRsFjVnchUwfLg6z3u8AqEm1sydsdhWEF/YH08gFCvVP38JR9SRNSbzXfyOj6kfGk8fPWKgQ
TF1lVEgVJDll6ahj9XH3sP7ipc0EKSC0F6+c587w7reAC2It0oHdwqMO0KJoglmAGd1Cbig+YJYg
Gun/wmXKiHeH20e7UL/nxAb0gOekFlKHRqvdz0AcQ3RqHzE4swGOTR6j3ktadHB+DIetIPt1D5jh
4rV4WRejUPFX3Rxmghc9Z7v6qM/QXv+tLmIiAE2kjS476hU/LqMOtctlpwD6dBkqgz6T5/P5YLlp
R7+pMXqjhU0BmwZNwXc4cPAcgohVtwOnmStYLcONiYMFx5LEqFteKFKV0Nmp1XQO9NXEocYb0slV
WBTYbDVT4E/zCnYIgh8DPWAVogXekk5kVuiycXjMsPaiFkygNIAOoIp7Qn27D1G5mi9Ha29GskMB
0LCCHRt6bGXzwNI0S7tLIdhyXHxJluuXOL3ZyVWZth4uK8bpOk2PNkApYeMryPJVbaIf0X1dVVwo
YFrhkAxOLQpSKol+jOA8XKucW39bNtbNDKBeAU4THymzwMiM8H8jo5XBAAkj7MvZOw9sXW4wYzde
g0HpS8tlBd4FPXovoC9wQ5eThnf6R4PfXzynyewmpTvHDOkZ8opY2gyeSfxIVaCETjvrCas4Ci/l
umXG3Bl9JhVWtfxYx8DhDR+GOnsG1dFLFOcsxqI774/OGDEZepgo+LdmtClOM5vHro/Sj75b0M/j
LeFY5XixlTvAIqM7Yvdx9XjSNSnEpgexaXbM4s8UaoHoQa3Z81tAy5TsoEi9YNqBCFsqDNnlilGH
3q5cFSu1mi5hB6kJzov57lVF3x0UnVoQexKyb0ZZ99wwmHttFG46s87RNBO4sBr28qTbRrRy5Gak
0h77Zg+9Jn92XE8YNI7QM7+BmN4t7w7wcpw8Mmkc0Z1r2sj0uD3uNsduD+u+YwyPtgSpr7P2mJ99
UfBXnUl79sFzZO9O8u4nX9CO1XwhSVq3HVlg28u3a27JBQyvR6qMs1+3YHLocGuHz+vJkAjDMWEr
nEGGXRwtt+NmE0PIJZh6iv5Gp+uThohb9N1fzTB06DwL1L4ig1udjmrkBHtX3JwwUyCbZhTrZnSE
o84KIqVvPEb9PBSWVnbcm0L9FioEioGG6InyWt40I9DMfiPlTYssh3jetxx9immTi67lgFqDBF/b
3btDoisiM8+Bb9LGQQN6HKJ0TnTowrV9I01fm2fjGrKqbNcdz+8pfVplPHE+5LXS9aKdfjGrDZO4
KcBLBroAg029IW2yNLtAD/OQE3tS5Jh2C/prGxRHCuZiK+2gJtETxbomq18dJkDZWPBnCDh0AjmG
ta4poirUTVBjx3zhuvimFXHvvjroRlb/P+mSqP+k0+/xC5rCLcsapgMk/eV7gFGgD+MSP4HvwQOk
xyvtm94R1QXTcGZbpsPHD8/+AzE4u729baX02dXd7d3ibrA+QXM5jOLNZjOk9YoUFVSoTvBdm9aT
DOERNO1k/mZ5NblydSthBIv/mPbAXwX0iLk25VrkfeS+ur2XiaAVxFQkH05zpSq5iiL8Fe/CLedb
WFRRqaFrxiJGYxl9/bMmYh9Nw3l46V5CaC3Dr/L0GvY1+12j7s4JT0mgY0ieQe6fEGkdzA/zq9YS
UMp9KIx5uocfyAfQG0v54dzfBPT3wnx6Hf0B8YSaFd1ihaPNl/voC4n/TZX7+VhTlka/A+9iSSJA
CrgzUAQqLFzfa6ZkhJME0E1jyoATIiwoDkwtZSSN94EuLgIu3TI4zJgJ6GpqzEK1U6DrtKti6wvR
+fGMubmPjesbPQLw9eb1XQZ1PwM5ISgwpZcyHwEOncX59Q9lLKs1uBWErjuikPBtwemgDJD2+bWb
gZCAPv6nrVsLYVraTDvZ/9tymcPl4nXjXzV8+gabL8dtfsipvupI5cpcDxWoQQXqogIyUAgIPNuH
fbd9nz2Xb7Bn9vYYfp8yszcoMx9X5lMJtGGS7gJBOgJlMAYkRKDv0p0EOJVn6Ic/a67Wn3++v7dP
yLUlsCbjuqGGJhr8bScfNvcP6ObTr59/2Txs7FD4PbDt/ZgaBFlu/gXjf1BLAwQUAAIACACGYz1F
UQU6YkEBAAAKBAAAOQAcAGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXdpdGgtZGVzY2Vu
ZGFudHMtYWN0dWFsLnR4dFVUCQADy7IpVMuyKVR1eAsAAQT1AQAABBQAAAClk09vgkAQxe/7KSac
2yZq/yTeTPXWRhM59Lqwg2y67pDdIWo/fQelxLbWiD3sAOG933uEjFJpaSMwRpZZagZbgA5W3zqd
oXNosh2IoCLr2foVMIEngxE2lkuQmxy90Z7jDViGgFwHH0E7J8wt3yk19xDrPMcoih3V4pN3ERG0
zGCFRAUki8lymcBaVHqFoizIOdqgAYlP0tkyhef56+Jlls4SYaqmLwzGv5o2fYKt2JIfw+RtevxY
iojAWf8OdUTYUHBm/+GD/Rzu56hD47bCnKWB6Q+BA2XYr2BBBJkOnfd0g1bVRoz+ETG6LOK+d0Tn
+xt/kDz0Q0/RIWNnPU0/iNqAx2sCoApk6pzB6zV2nLNpx442+umqPyPnAzKq5CqHaN3Bzv+qnzZQ
zUZ9bV5RO7db6BDF3mx7qFGpb1ul1CdQSwMEFAACAAgAhmM9RVR9cEB1AQAADAYAADcAHABhY2Nl
c3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS13aXRoLWRlc2NlbmRhbnRzLWRpZmYudHh0VVQJAAPL
silUzLIpVHV4CwABBPUBAAAEFAAAAL2UX0/CMBTF3/cp7vuoCwxH5GkoPKmROCK+dtslNJaVrLcB
/PRuoxPxDzA0ZmmbJvec+ztNV8YYeE9KmgVqb8iJe6Np5E0xvhVkl2sjZOo9okSu0ZN8owwxQk0s
R20kaY8nCWotYiEFbTyeC84kj1FKTOMNWwmasxR1glnKM9IM10tMCNMLWpPjuu6/A/CEDJdV+zAE
FrQ6AbhBq30FYehA+ZXu0O7DJysoXXKxJKGyPgyehx+386JIgRTZCxiNsFK5TCujdjV3qtl3WO1d
H8O+6akujvsXPnXUTrOoM6Ug5rnN0vmJ4b3Mwh4rrGn839D4p9L4J9J0G9NYku6BBgXFtuiymfuw
+AsIYSf+vsO27D3qIRKwNWeB7LSHOOqTDM7KusxVahKCjC/Q5g6O9NuXWMgmopq4d9ZNLMYrxGpZ
rMVQamGxe8du3FedZW+sLAKMB1EE2lRP48xIuRnzXBd6oYFyg+UzNxlFE7h5uB/fjSYj5w1QSwME
FAACAAgAhmM9RVTIrVJAAQAACwQAADsAHABhY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS13
aXRoLWRlc2NlbmRhbnRzLWV4cGVjdGVkLnR4dFVUCQADy7IpVMuyKVR1eAsAAQT1AQAABBQAAACl
k09vgkAQxe/7KSac2yZq/yTeTPXWRhM59Lqwg2y67JDdIWo/fQdRUqM11R52gPDe7z1CRqm0tBEY
I8ssNYMtQAer753O0Dk02RZEUJP1bP0KmMCTwQhryyXITY7eaM/xDixDQG6Cj6CdE+aGH5Sae4hN
nmMUxZYa8cm7iAhaZrBCogKSxWS5TKASlV6hKAtyjtZoQOKTdLZM4XX+vnibpbNEmKrtC4PxSdO2
T7A1W/JjmHxMfz6WIiJw1n9CExHWFJzZffhgN4e7OerRuKkxZ2lgboB0lOF1BQsiyHTovecbHFSd
bPSPiNHfIh6vjuh9v+L36Kfr0FN0yAi99zy+U+0Tnm9KqAOZJmfwusKecynt2NFZXm76NXK+IKNa
rnKIqh528V+d2lS7UofVKxrntgsdotjbdQ+NtDxaK6W+AVBLAwQUAAIACACGYz1F5AEU9AcJAADA
MwAAPwAcAGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXdpdGgtZGVzY2VuZGFudHMtcHJl
dHR5LWRpZmYuaHRtbFVUCQADzLIpVMyyKVR1eAsAAQT1AQAABBQAAADlW2tv47gV/Z5fQSRoAywi
+Z3YTibFTB4o0N120ATdfisoiYo4oURVpBI7bf97Lx+SJVmyPRtnFkFmYEvi89x7z31QRi4iGbPL
g4uI4AAuMZEY+RHOBJGfjnMZOtNjaBZyycjlwZzR5PEEzZ+ooJIE6D8HCP5JspBOQHyeYUl5MkcJ
T8i57vJ4FpDM8biUPJ6jQbpAAdyT4PzgfwdmObuIzxnP5uioP5rpPveWMnJNw9D2e9h/fMh4ngRO
MTScqv/VjcwOgjMaoKMgCExfyBPphDimbDlHMU+4SLFvAcY4e6AAeUBi1DdNKQfhtBwZYSDRE9GA
okED6Wg0allf4EQ4gmQ0rHQK+kL0HtVNHUZCOUd9d1K0B1SkDMMiNAHNWITPNJARTO73/2Dx4SCg
yUM502CzplF3detYuDSJAJQsh0f8iWQNiSaTyXmXsgkxanCVTX6GvYSdHDKOQYyMPkSybjk16grE
xyBLsRUH1VMJIvYbIkvsMeL4hLGalI5et6al5wikc7QNFdWeM5yukN0RX9mukzR6cp0yTbpYzhZ6
B0L104XZ4WaRgnlhfRCNnCBXXZoSdsITNCDeUn0jDfUL4/7jV5xJF0SdhzQT0vEjyoJOxart7mD+
yabFMhKDaU+27Gf3KNRvCOd4akiNdpOCdcAWSX3MHMzoA/iG5C1iZUQx/c84CRgp1GHXUSpUzxEx
Bl3x2c8zoUyjYDc9EHtgnbywGOxZEsc4j4a3CUWN5+t0eMjI8rxBTHeyzV5GxciVfKua3TDjcUPZ
Nj6qPZTW/5rHHsmATaTKLtNaAF8Po5a1s1ktABbu0hYGC08ej8et4aZq/TLGqIUmxgWMG5QB3/LA
0rONIgZujU4jG7AqgmsRWwOOSRKdatkQpNJMeaeCaRVYRBPLmkKQmq/CJMd4q+4CfepHkCMj+NFR
DQYQjfEDqVlmjoalwj2GlRbVQB9CA2AAKPYONeVeWWU6nnXG3pCEqwCgaAUrlumx4s0tU4MwqE8F
Y4vu4TMyO9+U08uVbJSp4rBe0Z2ug2BtARQQ1j2DzLai6f2E7vI05ZmETJtZJoNS45gkUqCferAf
zmXEjb5NNlbFDLBeAk/9wlJ6gh7Tkf/LMQoMBkrowUU4Oy2IrcINZuyqQNA6emhyWYwXTiO9x1AX
2KZhv8w7za1B7xv3KT27dOnaNm04XZ4SkzadZ+I9UunITLmd0YQBjtyhOK+IMbZCHwmJZS6+5B7k
8DIfusp7WuGoKZJz5uGs3l9sHTKiPXTVEfOXsrUMTiPjx7aOUrdFtaDuu0vCrsixsZRb0SKkC2LW
sfG4XxfJxboGMW62nsWfKcSCrEG1cs0XhyYBWUCQ2iDaKhFWILTJZYNRLb1NbRRLFEzrsK2pCfbz
+GIr0NMV0IEhcZGEzJMGa+/LDGYfS8BlZVbbmoYZjg3Chp/Uy4iKj1x1RNp13Syh1uTPNtcTBoUj
1Mw7JKbT2e2KXjYnd3RqRdT7yjIyWC+P68WxXcOob53DnSVBUMRZs83nIigUR51+tfe+yJGNM8np
WRHQ1mFucJLKaUfE2NTy1Zib8AyazzuijJVflWCibXMjR+HX/bYhDHuEzXEIHnayNt2060V0Qk5A
1EP0X3R4flAm4kr6bs5mGCp0HjpymZLWpQ47EdmBjSNuRJgOkGUxilUx2pGjjmIiRFF4dOq5zSwV
77jTgXqXVAgpBgqiJ8pzcVW2QDH7QpKrSrJsy/NFydFMMdXkomI5sFYzoYjt9tky0QaRUZEDd0Jj
qQE1DpHKJ2rpwpZ9HUVfNc96OXhVUo07RX4P6NM85L7VIc+lihdV9/NYrjOJ7QK+hIAFMtigEKSa
LPUqUMPcR8Ts1LOZ9gHwKxkkRxL6PDPaUk2gJ4pVTJa/WE4AWC/jz2BwqAQiDHNtUUSlq4qgUo7x
xFbxZSlin4vooApZ9enXk2jxSqdZ48c0gFOWEUwZSBSH75aMAnUYF/gJdA8aII28Uj3praU6Z+CO
TMm0evlRZP8WGxxdX19XXPpoent9O7ltjU9QXLaz+Obmpg31nMQpRKia8W2Z1hjpwi0grXn+zWza
n9q45TOCs3/p8qA4CqgWfWyK1JCLnn3rdiH8jKZg08z/dBhJmYp5r4e/4YX7wPkDTEqpUNTVbT1G
PdH79u+cZMvewB27Q/vgQmnpfhOHl7CuXu8S1Vf2eUAcZUPyDOP+BJZWxvw0nlamACj7otDjwRIu
4A+AGwvx6bg4Caj3hdHgsvcPsCfErN41lrh38+td71fi/YVKe/mSUxb0/g55FwvSA6aAOh1JIMLC
8T1nUvSw7wO7qUcZ5IQezih2dCxlJPCWUCTLCI4EwidJgMElHKhmcsxcuZCAcVCHVnkzdLzeo0/s
Xe3qJI9EBKV10BiijjGo9gZIvymFrFqM0Gf/VUFxfHkKioT+y9oocPHtYyBNH1/aHjACwHg1mLMd
wJz9KDDTHcBMu8Eo4qABRJE6S5AiiCKuDjGf/3ldfYxU/Yf0K+hcEHXgZwFSCw3091B/j5pi6ktV
2IofK6Xo7nWV7MYzcyjeyrPKuI1Kne2g1D8mnkjPt2uWLFJTIQev1+FehBv09yDdVuvW7QPJZ7tx
7KCN4Dfg4juYcG+WQT+U3vsKo4PBDprr4MdKdcPvCxch51AnZO85HgyG+woIwy7adWhpP/BHH8Hj
O8i9u+7fqU+Pd9HNcItuRh/Ppyf78unR7+LTpx/Cp0ev1P079eldjhgdjr/Szfi7ffpd+/N0X/48
3sCpt/Hl2Rv48l6QDfv7Uurk+8h4TRiRBL2NUIM9CtXOFAP/bdAPP0Tgn7zCSb+TNvsFfvoWjvB7
CnT2Oid4nxl4uMuRabDtxdrpbwp6acaD3JcowTF5zxl5ON5XnD3dQrFNGtuPKJMPEXRne7TDO/X7
XY5Vw21vyM5+02kaPi/I4ylc4cN5/K6d/2xfzn+27Yi3TW37kWf6ESLAcLBvY7zTMLDLiWy44aXa
1893d0jk+pfYMGds+VX9ZUiAqEAyy8l+fwMc7XJKG45+1E+So13OV8MNby/ub+7u0dXffvn68839
zWv407jon94veuYPd/4PUEsDBBQAAgAIAIZjPUU8qTEh3QIAAO0GAAAmABwAYWNjZXNzaWJpbGl0
eS9hcmlhLW1hcHBpbmdzLWFjdHVhbC50eHRVVAkAA8yyKVTMsilUdXgLAAEE9QEAAAQUAAAAjVVN
b9swDL37VxC59JLuBwzYIRiKYcCGFm2A7SrbjK1BljRKSup/P1KSU7sr0F78IZF8j48UpQxSBHIG
GyWfvVbGDXWBou4Mlp/1Ru+6NKGtfiGqmEL5js6ZqH39IcSXLx1xKn/NcdQBIobIz1FFQNWN4E78
gwHh8Pj9kA0DjOqMoLwn50mriDDxj7ZD+NQ09xZC6joMYQ+zS3DRxkBgRMVP0uzNEXcPh6enHUxs
pQZky5Mzxl2wh3aG3fHu6Qhf738+/Lg73u04ZvPIsGxDcNO6fr4BHT7D4besyvsXtgdCxXZC78su
K7aDMLpkehi0kF2wmE8cQU/eUVQ27kHZHlJIypgZop7wNqANOrLTHrRlzElF7eynFYcc/wZ6fX5F
5Bu55Lc0Sn12bMgcarEuo2ZhO2ej0pbXLWTTheJ/UMXtA4ClMSpYwE6Ii9wKvKSei8qwQUuJ83rn
WAlJlw3ztiScKWnbo0d+cD95jlzslxbb54h7YI7sjWvGhcT7bNfKWOkmo7ssNZfI9u5S+PBuj0EP
lnsjOmYVkSj5KE0JXSLK/MhJw3EHZpbbaJoloB5J3Nlwqr4plCWUiOtKS06Ef5MmaRvC4FmxTVE+
Wo9FrFoQwkHC17oLWULDp6ffoL9k3RlFvKnCVfXsm9XnRee5ckUVBRds10lv2Fbn9/mWiVHZVpqs
zWVknAU6b/ZnHRzNG96CddW1TdnQuvhy1Fhpl4ZR+P5JIerTfO187qMTB89u4mNRyqlI85n0XAGp
URaCu7pMtVbROsey+n6GdQ6uUsTnyGcfvPPJF+17HbxRcz6vGDrS/pof80WDIuYavAb9ADqP2wod
Z4/Sq4aPYoGd1LxozgO0vTV4RsNKBEl9kDh1KnfMopV6GKO8NIBMMHz2/MJ+w4vh3iJ1n6Lhwm5o
yS2wHEVXEs4XQz70YvA6sOy+FfzRXRoZ7sslcEo8WB8UCVG5XSjJRbMe8E3zD1BLAwQUAAIACACG
Yz1FNcvYuPwAAABVAgAAJAAcAGFjY2Vzc2liaWxpdHkvYXJpYS1tYXBwaW5ncy1kaWZmLnR4dFVU
CQADzLIpVMyyKVR1eAsAAQT1AQAABBQAAAC9UMFKAzEQve9XDL30sI0BEQRBWEXx4K2C9TpNputA
NgmZibR/b7rrwYN4UwIzZPLevJdnjAH7mkKdSOwDKtrH3Yvd0f6Z9avdVw7ebikQCtmAp1TVKIma
QlKDikXnSIT3HFhPFgujmTBnjqMYOmZySv5Cj9r1ff+3aui0Ypi1hgHM5dXmGvq5DkMH2xQIDqnA
GgMV9YwhjWvw/AEsN3D3dgac+1NJNXfQjiltdLvCouwCrRoOEEDalzhFSId2yzgS6DsquBSFRWWZ
uzTlJDwD5+emPDV6BI6eMrUStbGLLnifXMsl6mbeuIHms7Gp63+y8K8Ovge3uPg9tE9QSwMEFAAC
AAgAhmM9RdWC7aLeAgAA7gYAACgAHABhY2Nlc3NpYmlsaXR5L2FyaWEtbWFwcGluZ3MtZXhwZWN0
ZWQudHh0VVQJAAPMsilUzLIpVHV4CwABBPUBAAAEFAAAAI1VTW/bMAy9+1cQufSS7gcM2CEYimHA
hhZtgO0q24ytQZY0Skrqfz9SklO7K9Be/CGRfI+PFKUMUgRyBhsln71Wxg11gaLuDJaf9UbvujSh
rX4hqphC+Y7Omah9/SHEly8dcSp/zXHUASKGyM9RRUDVjeBO/IMB4fD4/ZANA4zqjKC8J+dJq4gw
8Y+2Q/jUNPcWQuo6DGEPs0tw0cZAYETFT9LszRF3D4enpx1MbKUGZMuTM8ZdsId2ht3x7ukIX+9/
Pvy4O97tOGbzyLBsQ3DTun6+AR0+w+G3rMr7F7YHQsV2Qu/LLiu2gzC6ZHoYtJBdsJhPHEFP3lFU
Nu5B2R5SSMqYGaKe8DagDTqy0x60ZcxJRe3spxWHHP8Gen1+ReQbueS3NEp9dmzIHGqxLqNmYTtn
o9KW1y1k04Xif1DF7QOApTEqGMvdCXPRW4GX3HNVGTdoqXFe7xxLIfmyYd6WjDMnbXv0yA9uKM+h
i/3SY/sccQ9Mkr1xTbmweJ/uWhor7WR0l7XmGtneXQof3u0x6MFyc0THrCISJR+lK6FLRJkfOek4
bsHMchtNswTUI4k7G07VN4WyhBJxXWrJifBv0iR9Qxg8K7apykcLsohVK0I4SPhaeCFLaPj49Bv0
l6w7o4g3Vbiqnn2z+rzoPFeuqKLggu066Q3b6vw+3zIyKttKk7W5jIyzQOfN/qyDo3nDW7CuurYp
G1oXX84aK+3SMArfPylEfZqvrc99dOLg2U18LEo5FWk+lJ4rIDXKQvAQKWOtVbTOsay+n2EdhKsU
8Tny4QfvfPJF+14Hb9ScDyyGjrS/5sd80aCIuQavQT+AzvO2QsfZo/Sq4aNYYCc1L5rzBG1vDZ7R
sBJBUh8kTh3LHbNopR7GKC8NICMMnz2/sN/wYri3SN2naLiwG1pyDSxH0ZWE882QD70YvA4su28F
f3SXRqb7cgucEk/WB0VCVK4XSnLTrCd80/wDUEsDBBQAAgAIAIZjPUVKvhqoAwgAAFscAAAsABwA
YWNjZXNzaWJpbGl0eS9hcmlhLW1hcHBpbmdzLXByZXR0eS1kaWZmLmh0bWxVVAkAA8yyKVTMsilU
dXgLAAEE9QEAAAQUAAAAzVlrb+u2Gf6eXyEkWAMUkezEdupL4qEnlw7oNgxNse7bQImUxRNKVEkq
cc66/76XN1mSJdtAD4r1oEcW+ZJ83uvzUucuUzlbn91lBGF45EShIMmQkETdX1YqDeeXMCzVByPr
syWjxetVsHyjkiqCg/+cBfCfIlsVYpJwgRTlxTIoeEFWZirmAhMRxlwpni+D63IbYPhN8Orsv2d2
O7dJwhkXy+BiPFmYueiZMvJI09TNxyh53QheFTj0oulc/2keZE+QnFEcXGCM7VzKCxWmKKfsYxnk
vOCyRIkDmCOxoQD5muTB2A6VHJQzegjCQKM3YgBl1x2kk8mkZ3+JChlKImjamJT0CzFnNA8NGUnV
MhhHMz+OqSwZgk1oAZZxCN8pVhksHo//5PAhjGmxqVdabM41+lfbOw4uLTIApWrxjL8R0dFoNput
hoxNiDVDpH3yVzhLusUp4wjUEHSTqbbntNQDqI9AF38UB9NTBSqOOyorFDMSJoSxlpah2bdlpfcM
tAuND3WovQtU7pC9kET7bjBozOJ2yHTDxcWstzsE1Ljc2hOetiW4F/YH1chVEOlHV8NBeJJiEn/o
vwMD9RPjyes/kFARqLpMqZAqTDLK8KBh9XEvsP7q0GaC5ODaqyPnuTO8+W3AhbEWaYXdzEcdRIui
CWIhYnQDuaF4j1qC6Ej/CyowI94cbh9tQv2eEevQXTwnlZDaNRp2NwNRDN6pvMfgzDpwbPIYeIdQ
tOJ8Pxw2gnysOoEZzY75y5o4iBQ/auYoFTzvGNvVR32GtvrfqzwmAqKJNKPLjnrg+2XURe1i0SqA
Pl36yqDP5Ol02ltumt6va4zeaGZTwKZBXfBdHLjw7AsRC7cVThNXsBqKGxV7C44liUGzHChSpdDZ
qWE6A/pq4qLGK9LKVVgU2mw1U2BP8wp6CIJeQz1gAdEcbUjLM8vgpjZ4zJC2ohZMoDQABoDifgVd
vXdemU8Xg7U3JemuAOiwgh1remxkc89SnOL2UnC2HBZfkMXqEKfXO7kq08ThsmKYrjHe2yDAhA2v
IIujaEbfBi9VWXKhgGmFi2Qwap6TQsng2xGchyqVcWtvy8a6mYGoVxCnifeUWWBkBvi/ltFgEISE
Efbl7NYHti43iLEHj6BX+sZyWY62YYfec+gL3NDNuOad7tFg94Pn1Jldp3TrmD6cES+Jpc3wncSv
VIVK6LSzlrDAg+hGrhpqTJ3SF1IhVclPVQwcXvNhpLOnF45eojhnMRLteX90yojJ0N1Ezr/Uo3Vx
mtg8dn2U/um7Bf17uCUcqhwHW7ldWKR0S+w+rh6P2ypFyPQgNs32WfydQi0QnVCr9/wS0gKTLRSp
A6rtiLABoU8vV4xa9DZ3VazQMF3C9lITnBfz7VGgtzug1zaIPQnZNwPW/a4ZzL3WgOvOrHU0TQXK
LcJOnrTbiEaOPAxU2n3bfECvyd8d1xMGjSP0zCcQ0+3ieRdejpMHJo0h2nN1G4n32+N2c+z2sObb
j+HBlgD7OmuP+d4XBX/VGTdnf/Yc2bmT3H7nC9o+zANJ0rjtyBzZXr5ZcwsuYHg1UGWc/roFk32H
Wz18Xo/7RBiKCVuiFDLsam+5HTebGEIuQNXz4LfgfHVWE3GDvrurGYIOnaeh+ihJ71bng4icYOeK
mxFmCmTdjCLdjA5w1EVOpPSNx6Cd+9zSyI4XU6hPoUKgGGiI3iiv5EM9As3sF1I8NMiyj+d9y9Gl
mCa56FoOUWsiwdd29+4i0RWRiefAk9C40IAehyidEy26cG3fQNPX5Nm4gqwqmnXH8zumb8uUJ86G
vFK6XjTTL2aVYRI3BfGSAhZgsGuvSJMszS7Qw/ycEXvSyDHtBvBrHRQPFMzFVtqFmgzeKNI1Wf3N
xQSAjQV/B4dDJ5AhWOuaIqoi3QTVekxnrouvWxH37quDbmT1/+M2ifpPOt0eP6cYbllWMe0g6S/f
PYwCfRiX6A1sDxYgHV5p3vT2qC68jia2Zdp9/PDs3+ODi8fHx0ZKX8yfH59nz731CZrL/ih+enrq
Q70keQkVquV816Z1JCP4CUhbmf+0mI/nrm4ljCDxb9Me+KuAHjHXpkyL3I3cV7c7mQhagk9Fcn+e
KVXK5WiEPqNttOF8A4tKKnXomrERo7Ecff61IuJjdB1Noxv3EkFrGX2W52vY1+y3Dto7JxyTUPuQ
vIPcn8HT2pn303ljCYByHwpjjj/gAfkAuJGU95f+JqC/F2bX69E/wZ9Qs0aPSKHR0y8vo19I/CNV
7vGpogyPfgLeRZKMIFLAnKEiUGHh+l4xJUcoSSC6aUwZcMIICYrCHJUl2FSG0LpUiEVqqwDQdRtH
4zPQ5f6MuZ4PjetreyAz6KNxR0TfWYLW5x7zWRQo1EuYi/6ue7hc30zBbCCwbolBQp8gBKx8uf6J
Q8rrW80lYpB2mCLGN5eBRkXlMvj+X1pAP3+A0C3dPuAhEPj94GengJ8Ng//KcG5PgXN7OhzzaIJq
pKOWNtP70E+LIHu3PRpBDbnDyn93gvLfFLEsV8MGEBAr99/8WnG1QrqEM2JfIJQCdAfX8HUA+uqH
dJ9QeQoNV6nZxTAKcI+kErjHjEO58bXbTkOc5rBTEehbAVwlsebRUlvDyGPgTEvbeserAKJaf6Q+
6pa2YaH4H7eqEzpo0gPW4qfY/rhJ/7/M+DWj+6vVx/kp9p+fVB+t+f+o2rg4Bfjij6qNk/EJcAaE
fndt7DxMVwCUbP5N8X9QSwMEFAACAAgAhmM9RXs4ESgCAQAAqQEAAC0AHABhY2Nlc3NpYmlsaXR5
L2FyaWEtbmFtZWZyb20tYXV0aG9yLWFjdHVhbC50eHRVVAkAA8yyKVTMsilUdXgLAAEE9QEAAAQU
AAAAVZBBTsMwEEX3PsUoa+gBuitQVqBGahZsJ8kPseTYyDNWye0ZByKVTeRYz+//GdfNXkghKsQh
kM6ggQVCtxkZFHnBa07LkbjonDIZXQQj+SgKHilNd8yQoiKqHGjTLuBo8pmV/FTVAkLAUhFis/+Z
7Oz5MXCPEDD2a0VXkjmVMFJMShlacqzX3hrEiGyVv7XGgPqimuKOG8pm9FvCbiWWbbIRMmT/pT7F
g3MXe1SGASIPtKZCN28LEIDYvtnbDmy4pj1dr42NIsKfMHJKIaSb9baeTXe+dvR8eW/fzt25Mad7
+m1zl3Sk08fL/W+t7qp2j59KCGvLeduGNc0Fzv1TO/cDUEsDBBQAAgAIAIZjPUV9Ek17RAEAAEsC
AAArABwAYWNjZXNzaWJpbGl0eS9hcmlhLW5hbWVmcm9tLWF1dGhvci1kaWZmLnR4dFVUCQADzLIp
VMyyKVR1eAsAAQT1AQAABBQAAAC9kMtqwzAQRff+iiFbRxGhXXWVPtJNWxLq0K7H9rgWyFLQjEj8
9x07CfQLupFAXJ37MMaA/Yo+D8T2BQXt9ruy31S/ObleT9n51n6SJ2SyHseYxQixmEScvbDFpiFm
VzvvZLSYHJqAA3UpDgaz9DEZOh+pEWpXcpaiLMt/McVGMvrZcrMBs17eQble3sNmU5QFHHrHMCEZ
0HuQnqBRM4ZTT4lggr0q7AEuNFB1ZmrBBRbCFmL3R9PEIBSEVxfsQBgU3qOA6yY0E2iXYZIAKv1K
gjm3x5q8p7YeJ+kI3MfsWwhRIJHkFKZnpwlCoKSRzzLZENRZJIabXKWoRDc73KiAPDdriZvkjuJi
WBVQwE6/5XnBJei2cHI6ARMB6pmcrqD1FvvHqlpoGWb8IVV20ft40uSadHHYVgd43n3s37eH7WJV
/AJQSwMEFAACAAgAhmM9Re9vmIUCAQAAqAEAAC8AHABhY2Nlc3NpYmlsaXR5L2FyaWEtbmFtZWZy
b20tYXV0aG9yLWV4cGVjdGVkLnR4dFVUCQADzLIpVMyyKVR1eAsAAQT1AQAABBQAAABVkEFOwzAQ
Rfc+xVfW0AN0VyCsQI2ULNhOkwmx5NjIM1bJ7RkXKoVN5FjP7/+ZYfECZVEBhQBdGCMJC64LZ0ak
lV9zWo+gokvKMLoIT/BRlGlCmnfMmKJyVDlgqNqVKZp8IYWfq1oYHHitCMjsfyY7e3oMdOEQeLps
Fd0gSyphQkyKzFpyrNfeGsTI2Sp/a41hXIpqinfcUDKjvyXcrSC5TTaxjNl/qU/x4NzZHpVxZJEH
bKng6m0Bwgyyb/a2Axuu6U5939goIvTJRs4phHS13tazGdp+wPP5vXtrh7Yxp3v6bbNLOuL08bL/
rdVd1d7j5xLC1lG+bcOa5sLO/VM79wNQSwMEFAACAAgAhmM9RQyCM1cUCAAAaxkAADMAHABhY2Nl
c3NpYmlsaXR5L2FyaWEtbmFtZWZyb20tYXV0aG9yLXByZXR0eS1kaWZmLmh0bWxVVAkAA8yyKVTM
silUdXgLAAEE9QEAAAQUAAAApVltb+O4Ef6eX0Ek6AU4RLIdJ3uJvZviNnFQoPeyaILex4KSRhY3
lOgjqcTetv+9wzdZkqUkxd7i1hI5JOflmWeG2o+FLvnN0ccCaIY/JWhK0oJKBfrTaa3z6OoUh5Xe
cbg5WnBWPZ2RxTNTTENG/n1E8D8NWx1lkApJNRPVglSigqWdSoTMQEaJ0FqUCzLbbEmGz5Atj/57
5Lbzm6SCC7kgJ9P5tZ2L7xmHO5bnfj6h6dNairrKoiCaX5k/7YPcCUpwlpGTLMvcXC4qHeW0ZHy3
IKWohNrQ1CtYUrlmqPIMSjJ1QxuBxlk7JHC06BmsQsWsp+l8Ph/YX9FKRQoky1uTin0De0b70IhD
rhdkGl+G8YypDae4CavQM17DF5bpAhdPp3/x+tEsY9W6Wel086ExT93oeHVZVaBSuhEvxDPInkWX
l5fLMWcDODfEJia/4FnKL865oGiGZOtCdyNnpG7RfIq2hKMEup5pNHHaM1nThEOUAucdKyO7b8dL
LwVaF9kYGqi9SLrZa/YAqYndKGjs4i5k+nDxmA1+R0BNN1t3wmq7wfDi/mganJHY/PQtHFVPsQyS
nfmbWFU/c5E+faFSx2jqImdS6SgtGM9GHWuOe8D1Z69tJqHE0J69cZ4/I7jfAS5KjEgHdpcBdYgW
zVLKI8rZGnNDiwGzJBik/41WGYfgDr+PcaF5L8AFdI/ntJbKhMao3c9AmmB06hAxPLMBjkseq95r
WnRwfgiHtYTdsgfM+PKteDkXk1iLN90c51KUPWd7fjRnGK//VpcJSEQTtNHlRoPihzTqUXt93SHA
kC5DNBgy+eLiYpBu2tFvOMZsdOlSwKVBQ/geBx6eQxBx6nbgNPeE1TLcmjhIOK5IjLrlFZLaSJOd
Rk3vwMAmHjXBkE6u4qLIZaudQn/aV7RDAn2KzIBTiJV0DZ3ILMh54/CEU+NFI5giNaAOqIp/In27
91G5urge5d4c8j0BGFjhjk15bGXzwNIsz7pLMdhqXPwarpev1fRmJ88ybT18VoyX6yw72IBkwMdX
wPWb2kx+JA/1ZiOkxkorPZLRqWUJlVbkxwmeR2tdCOdvV41NM4Oo14jTNETKLrAyI/W/kTHKUISE
FQ509iEA29AN5fw2aDAofe5qWUm3Ua+8l9gX+KHzaVN3+kej3189p8nsJqU7xwzpGYsNuLIZvUDy
xHSkpUk75wmnOInP1bJlxoU3+kRpqmv1uU6whjf1MDbZM6iOWaKF4AmV3flwdM7BZuh+ohTfmtGG
nOYuj30fZR5Dt2Cex1vCMeZ4tZXbwyJnW3D7eD6edk2Kqe1BXJodVvEXhlwge1Br9vwWsSqDLZLU
K6btC2FLhSG7PBl1ytuVZ7HKqOkTdrA04XmJ2L6p6Ie9ojMH4lCE3JtV1j83Fcy/Ngo3nVnnaJZL
WjoNe3nSbSNaOXI7wrSHvtlhrylefK0Hjo0j9szvKEwfru/38PI1eWTSOqI717SR2WF73G2O/R7O
fYcYHm0JssCz7pifAymEq860PfsYamTvTvLhp0Boh2q+kiSt244qqevl25xbCYnDyxGW8fabFkwN
He7sCHk9HRLhNAG+oDlm2NnBcjduN7EFuUJTj8l/yPHyqCnErfLdX80pdugij/RuA4NbHY9q5AV7
V9wCuCXIphmlphkdqVEnJSgVGo9RPw+FpZUdD5ao31MKscRgQ/TMRK1umxFsZr9BddsqlkN1PrQc
/RLTLi6GyxG1FgmB2/27R6InkXmoge/SxkMDexzQJic65cK3fSNNX7vOJjVmVdXmnVDfM/a8yEXq
fShqbfiinX4Jr20l8VOIlxx1wQo2C4a0i6XdBXuYxwLcSRNfadeov7FBC6JxLnHSHmqKPDNqOFn/
6jGByiZSvGDAsRMoKK71TRHTsWmCGjsuLn0X37Qi/j2wg2lkzf/TbhENn3T6PX7JMrxlOcNMgFS4
fA9UFOzDhKLP6Hv0APTqSvumd1Dqolk8dy3T/uNHqP4DMTi5u7trpfTJ1f3d/eX9ID9hczmM4tVq
NaT1AsoNMlQn+L5N60nG+IiadjJ/dX01vfK8lXKg8l+2PQhXATNir02FEfk48V/dPqpUsg3GVKaf
jgutN2oxmdCvdBuvhVjjog1TBrp2bMJZoiZf/6xB7iaz+CI+9y8xtpbxV3V8g/va/W5Id+dUZBCZ
GMILyv0VI22C+eniqrUElfIfChOR7fAH8wH1pkp9Og03AfO9sJjdTP6J8UTOmtxRTSerPx4mf0Dy
d6b9z+ea8WzyD6y7VMEEkYLujDQgw+L1veZaTWiaIrpZwjjWhAmVjEYVdgPmQh25lj7CDqamPNZb
jXrNuuq0vgadHs7YW/rYuLm9EwRab97cW0j3k48XQjKpgpS98O+7iNObH6pEbZboQhS66YhicrcF
Z4MyWKBPb/wMuh/1CT9t3VpoMtJ22sv+35arAi8Sbxv/puGzd9h8Pm7zY8HMtUYh3WGmWhpMESsK
CRwkEIOFe2l6H3+/Q+lagb3gasQoEXlLJjBnTOy2JWB9dEzJcrO1AoJQdHUKrQ87EQs7W8I5ZMnO
iO7QQaLmGTKbxiuirmVlhpm5fRpMGO1jy+i+jHhxFEW/ISOr1q6EKmtZBi7DEK1xP9jfF4Xzd0Rh
/n7kfZ8y83coczGuzO/ozNrSwhlBwsCihsBQANgZml4HsYFB/+HPWujll58fHtwT8Y0TrsmFafkx
shhJN/m4engkt7//+uWX1ePKDcXfk2y9H8uSyE3231j+B1BLAwQUAAIACACGYz1FT693ClsBAABd
BwAAJgAcAGFjY2Vzc2liaWxpdHkvYXJpYS1yZXF1aXJlZC1hY3R1YWwudHh0VVQJAAPMsilUzLIp
VHV4CwABBPUBAAAEFAAAAJWVTW+DMAyG7/kVFudtl6mX3aaJ26aiwr0K1LTRUtLlQy3/fgntOmBL
Qi5IKM9rvzY2IdWBKdCotH0eqAYqGX2U+GWYxB3YMwpG0ZojUK0lq43GJ0LWHSjTNKjUA/TCwJlx
DgotZJ+SoQLRQla8lmUGR0vRPVqyFZyLsw1b95BVeVnB2/qjeM+rPLMxSc7xiJ0zIgZHL/C8IsQF
sa8X3TLkztFmZK6lXOEM2Y7cj1ktjRfdurITdGN88LDA18obtzlg81mLiz/IDxGv7Q+5rLS7LKGy
cKpU8XA2ieDceQ0r5Nhof/zrebxfM25Zt26ihHJDadKkiX1y42dJGh5QRyzbmwm5fG0GWeLW+FOl
ihN7xpnS811IFkQ83iR+QNIdE3spzGm5D48mYuVXFRjCE+vsv1+LLmFF/9fExv2uCnxgiSkrMKdj
42P5gL/rvdcazvuCSjXKRiZ3GiHfUEsDBBQAAgAIAIZjPUXqD0l21wAAAHgBAAAkABwAYWNjZXNz
aWJpbGl0eS9hcmlhLXJlcXVpcmVkLWRpZmYudHh0VVQJAAPMsilUzLIpVHV4CwABBPUBAAAEFAAA
ALWPQU7DQAxF93MKK9tkMqrgAAGaFaBWJKJrT+JSS4bA2KM2t2eo2HAANt+L//2f7b2H8LpIficN
WzQM/WEIB4qPbL/jPrPM4YWEUCkIrks2b6TmE2kW04DTRKocWdjWgImxWF+ZE82eLp80Gc2tXczV
df2/NJwso1xZXQd+09xAvWluoetc7WA8scJPV9ETGvzZheIhZMUoBGiWOGaj1oGD3QdovlIbKPfA
mUVAqcSKJiaF5QjV/m4YKiifKb5RSR4XkeVciuMK1dgPIzzsnvdP/dhXrfsGUEsDBBQAAgAIAIZj
PUVqrRrFWwEAAFwHAAAoABwAYWNjZXNzaWJpbGl0eS9hcmlhLXJlcXVpcmVkLWV4cGVjdGVkLnR4
dFVUCQADzLIpVMyyKVR1eAsAAQT1AQAABBQAAACVlU1vgzAMhu/5FRbnbZepl92midumosK9CtS0
0VLS5UMt/34J7TpgS0IuSCjPa782NqkOTIFGpe3zQDVQyeijxC/DJO7AnlEwitYcgWotWW00PhGy
7kCZpkGlHqAXBs6Mc1BoIfuUDBWIFrLitSwzOFqK7tGSreBcnG3YuoesyssK3tYfxXte5ZmNSXKO
R+ycETE4eoHnFSEuiH296JYhd442I3Mt5QpnyHbkfsxqabzo1pWdoBvjg4cFvlbeuM0Bm89aXPxB
foh4bX/IZaXdZQmVhVOlioezSQTnzmtYIcdG++Nfz+P9mnHLunUTJZQbSpMmTeyTGz9L0vCAOmLZ
3kzI5WszyBK3xp8qVZzYM86Unu9CsiDi8SbxA5LumNhLYU7LfXg0ESu/qsAQnlhn//1adAkr+r8m
Nu53VeADS0xZgTkdGx/LB/xd773WcN4XVKpRNjK50wj5BlBLAwQUAAIACACGYz1Fp0Yj0K4HAACf
GAAALAAcAGFjY2Vzc2liaWxpdHkvYXJpYS1yZXF1aXJlZC1wcmV0dHktZGlmZi5odG1sVVQJAAPM
silUzLIpVHV4CwABBPUBAAAEFAAAAKVZa2/bOBb9nl9BJNgJUESSHdud2G6zmCYOBphXsQl2Pi4o
ibLYUKJKUondmf3ve/mSJVlKsugUU0vkJXnu81yqH3JVsOuTDznBKfwURGGU5FhIoj6e1yoLrs5h
WKo9I9cnK0bLxwu0eqKSKpKiv04Q/KfITgUpSbjAivJyhUpekrWZirlIiQhirhQvVmha7VAKzyRd
n/z3xG7nNkk442KFziazpZkL7ygjtzTL3HyMk8et4HWZBl40u9J/2gfZEyRnNEVnaZrauYyXKshw
Qdl+hQpeclnhxAEssNhSgDwlBZrYoYqDckYPQRho9EQMoHzaQzqbzQb2l7iUgSSCZq1JSb8Rc0b7
0ICRTK3QJFz48ZTKimHYhJZgGYfwmaYqh8WTyT8cPpymtNw2Ky025xr91PWOg0vLHECpRjznT0T0
NFosFusxYxNizRBqn/wKZ0m3OGMcgxqCbnPV9ZyWugH1Mejij+JgeqpAxUlPZYVjRoKEMNbRMjD7
dqz0nIN2gfGhDrVngasDsnuSaN+NBo1Z3A2Zfri4mPV2h4CaVDt7wmZXgXthf1CNXKBQ//Q1HIUn
aUrivf4bGaifGE8eP2OhQlB1lVEhVZDklKWjhtXH3cP6i5c2E6QA1168cp47w5vfBlwQa5FO2C18
1EG0KJpgFmBGt5Abig+oJYiO9J9xmTLizeH20SbU7zmxDj3Ec1ILqV2jYfczEMfgndp7DM5sAscm
j4H3EopOnB+Hw1aQ/boXmOHiNX9ZE6NQ8VfNHGaCFz1ju/qoz9BW/70uYiIgmkg7uuyoB35cRl3U
LpedAujTZagM+kyez+eD5abt/abG6I0WNgVsGjQF38WBC8+hELFwO+E0cwWrpbhRcbDgWJIYNcsL
RaoSOjs1TGdAX01c1HhFOrkKiwKbrWYK7GleQQ9B8GOgBywgWuAt6XhmhS4bg8cMaytqwQRKA2AA
KO4J9fU+eOVqvhytvRnJDgVAhxXs2NBjK5sHlqZZ2l0Kzpbj4kuyXL/E6c1Orsq0cbisGKfrND3a
AKWEja8gy1fRRO/QfV1VXChgWuEiGYxaFKRUEr2L4Dxcq5xbe1s21s0MRL2COE28p8wCIzPC/42M
BoMhJIywL2fvfWDrcoMZu/EIBqUvLZcVeBf06L2AvsANXU4a3ukfDXZ/8Zwms5uU7hwzhDPkFbG0
GTyT+JGqQAmddtYSFjgKL+W6pcbcKX0mFVa1/FTHwOENH4Y6ewbh6CWKcxZj0Z33R2eMmAw9TBT8
WzPaFKeZzWPXR+lH3y3o5/GWcKxyvNjKHcIiozti93H1eNJVKcSmB7FpdszizxRqgeiFWrPnt4CW
KdlBkXpBtQMRtiAM6eWKUYferlwVKzVMl7CD1ATnxXz3KtD3B6BTG8SehOybAeueGwZzrw3gpjPr
HE0zgQuLsJcn3TailSM3I5X22DZ76DX5s+N6wqBxhJ75DcT0fnl3CC/HySOTxhDduaaNTI/b425z
7Paw5juO4dGWIPV11h7zky8K/qozac8+eI7s3Une/+gL2jHMF5KkdduRBba9fLvmllzA8Hqkyjj9
dQsmhw63evi8ngyJMBwTtsIZZNjF0XI7bjYxhFyCqqfob3S6PmmIuEXf/dUMQ4fOs0DtKzK41eko
IifYu+LmhJkC2TSjWDejIxx1VhApfeMxaucht7Sy494U6rdQIVAMNERPlNfyphmBZvYbKW9aZDnE
877l6FNMm1x0LYeoNZHga7t7d5HoisjMc+Cb0LjQgB6HKJ0THbpwbd9I09fm2biGrCrbdcfze0qf
VhlPnA15rXS9aKdfzGrDJG4K4iUDLMBgU69ImyzNLtDDPOTEnhQ5pt0Cfq2D4kjBXGylXahJ9ESx
rsnqNxcTADYW/BkcDp1AjmGta4qoCnUT1OgxX7guvmlF3LuvDrqR1f9PuiTqP+n0e/yCpnDLsopp
B0l/+R5gFOjDuMRPYHuwAOnxSvumd0R1wTSc2Zbp8PHDs/+AD85ub29bKX12dXd7t7gbrE/QXA5H
8WazGUK9IkUFFarjfNem9SRDeASknczfLK8mV65uJYxg8R/THvirgB4x16Zci3yI3Fe3DzIRtAKf
iuTjaa5UJVdRhL/gXbjlfAuLKip16JqxiNFYRl++1kTso2k4Dy/dSwitZfhFnl7Dvma/a9TdOeEp
CbQPyTPI/RM8rZ35cX7VWgKg3IfCmKd7+IF8ANxYyo/n/iagvxfm0+vo3+BPqFnRLVY42vx5H/1J
4l+ocj+fasrS6F/Au1iSCCIFzBkoAhUWru81UzLCSQLRTWPKgBMiLCiGqa81FSQNoHWpMQvVTgGg
aRdH6zPQ+fGMuZ6PjetrO4II683rCwvqfutxQlBFSi9lbvqH9uH8+ocyltUabAdC1x1RyOq24HRQ
Bpj5/NrNgN0Bj/9pY2uFkZY20072/9Zc5nCDeF35VxWfvkHny3GdH3Kq7zNSuVrWcT2COYxqqT8X
IqyUoFCsSdi30/cpcPkGBWZvd9r3gZm9Acx8HMwfJZCBSaULBEkGRMAYUAsYD+n+gEjEM/TD15qr
9eef7u/tE3LNBqzJuG6TwfDx3ok9bO4f0M0fv33+dfOwsUPh98Rp78dUFkhr8+8S/wNQSwMEFAAC
AAgAhmM9RQndsn1VAQAAkgMAAC4AHABhY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNl
dC1hY3R1YWwudHh0VVQJAAPMsilUzLIpVHV4CwABBPUBAAAEFAAAAJ2Tz27CMAzG73kKqxdA2irQ
nqCaOCBtolortGtp3dVSSFCcAN3Tzy1/BgJNg0skO86X72cnKm+IwSN7hg06qgklbAoPhaPieW2Z
DKNEptpnJGD6RgkQcCf7WIG3UJQlMtOSNPkWSuscll63sVJzAxz63SdobYAtaQ2MoiCr666zNURp
kmURrKSq+EKprK3WdivayxaifJrl8Dp/T9+m+TQSTbXorLZ7o75BqMmxB/K4AjJ9RpMk9gYZTqaF
4hfJe0fLIOyx6q7vj8RlQ7pK/MxUuBuORzFxcqzLwnptncdqOEg+k49ZkqHPRHYwgq6HLuCDOqnl
mRGxM6F/Ajr0wRnuE4emw6bQQQ5YdxP7L1YTVkt0J5+LTugm62Q8flDmEvXlipOxtOL2CrSyMkZj
vbylvnn3sU3umGNdaMYHhS7pzpQOP6AOWrdp4bpPc5y0unjdSv0AUEsDBBQAAgAIAIZjPUX9ev/l
7wAAALMBAAAsABwAYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQtZGlmZi50eHRV
VAkAA8yyKVTMsilUdXgLAAEE9QEAAAQUAAAAvZBBTsNADEX3cwor22QyquAAAZoVoFYkomsncehI
JlONHdpweqYRSHABNra+bL3vb2stuNfA8zuJ26Kiqw+NO1D36PW73c+eB/dCTCjkGJcwq1UStZFk
ZhWHfU8ivvPsdXEYPVohFf9J9hTET0lYupyoVxpKvajJ8/x/XLHXGXn1rCqwm+IG8k1xC1VlcgPt
0QtcmQIfFP3oKckjKqywHwjgNMBvfBIEKU8QGkAD/DkE+hBjSspLacDAbgKZ13kBKQKcPTMIJUaq
8WoYRsj2d02TQXqG4BulzTEwh3Oidwtkbd208LB73j/VbZ2V5gtQSwMEFAACAAgAhmM9RalXnHtU
AQAAkQMAADAAHABhY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC1leHBlY3RlZC50
eHRVVAkAA8yyKVTMsilUdXgLAAEE9QEAAAQUAAAAnZPPbsIwDMbvfQqrF0DaKtCeoJo4IG2iWiu0
a2jd1VJIUJwA3dPPLX8GAk2DSyQ7zpfvZydFQwwe2TNs0FFNKGGjPChH6nltmQyjRKbaZyRg+kYJ
EHAn+1iBt6DKEplpSZp8C6V1Dkuv2ySK5gY49LtP0NoAW9IaGEVBVtddZ2uIszTPY1hJlfpCqayt
1nYr2ssW4mKaF/A6f8/epsU0Fs1o0Vlt90Z9g1CTYw/kcQVk+owmSewNMpxMC8UvkveOlkHYk6i7
vj+SlA3pKvUzU+FuOB4lxOmxLg/rtXUeq+Eg/Uw/ZmmOPhfZwQi6HrqAD+pklmdGxM6E/gno0Adn
uE8cmg4bpYMcsO4m9l+sJqyW6E4+F53QTdbJePygzCXqyxUnY2nF7RVoZWWMxnp5S33z7mOb3DHH
WmnGB4Uu6c6UDj+gDlq3mXLdpzlOOrp43VH0A1BLAwQUAAIACACGYz1FV+UO7sUHAADSGAAANAAc
AGFjY2Vzc2liaWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0LXByZXR0eS1kaWZmLmh0bWxVVAkA
A8yyKVTMsilUdXgLAAEE9QEAAAQUAAAApVltb+M2Ev6eX0EkuAYoIsmO7W1s7+bQTRwccG130QTd
jwdKoixuKFElqcTe9v77Dd9kSZaSHLaLriVySM7LM/MMte9zVbDrk/c5wSn8FERhlORYSKI+nNcq
C67OYViqPSPXJytGy8cLtHqikiqSor9OEPynyE4FKUm4wIrycoVKXpK1mYq5SIkIYq4UL1ZoWu1Q
Cs8kXZ/898Ru5zZJOONihc4ms6WZC+8oI7c0y9x8jJPHreB1mQZeNLvSf9oH2RMkZzRFZ2ma2rmM
lyrIcEHZfoUKXnJZ4cQpWGCxpaDylBRoYocqDsYZOwRhYNETMQrl056ms9lsYH+JSxlIImjWmpT0
GzFntA8NGMnUCk3ChR9PqawYhk1oCZ5xGj7TVOWweDL5h9MPpyktt81Kq5sLjX7qRsepS8sclFKN
eM6fiOhZtFgs1mPOJsS6IdQx+QXOkm5xxjgGMwTd5qobOS11A+ZjsMUfxcH1VIGJk57JCseMBAlh
rGNlYPbteOk5B+sCE0MNtWeBq4Nm9yTRsRsFjVnchUwfLg6z3u8AqEm1sydsdhWEF/YH08gFCvVP
38JR9SRNSbzXfyOj6kfGk8fPWKgQTF1lVEgVJDll6ahj9XH3sP7ipc0EKSC0F6+c587w7reAC2It
0oHdwqMO0KJoglmAGd1Cbig+YJYgGun/wmXKiHeH20e7UL/nxAb0gOekFlKHRqvdz0AcQ3RqHzE4
swGOTR6j3ktadHB+DIetIPt1D5jh4rV4WRejUPFX3Rxmghc9Z7v6qM/QXv+tLmIiAE2kjS476hU/
LqMOtctlpwD6dBkqgz6T5/P5YLlpR7+pMXqjhU0BmwZNwXc4cPAcgohVtwOnmStYLcONiYMFx5LE
qFteKFKV0Nmp1XQO9NXEocYb0slVWBTYbDVT4E/zCnYIgh8DPWAVogXekk5kVuiycXjMsPaiFkyg
NIAOoIp7Qn27D1G5mi9Ha29GskMB0LCCHRt6bGXzwNI0S7tLIdhyXHxJluuXOL3ZyVWZth4uK8bp
Ok2PNkApYeMryPJVbaIf0X1dVVwoYFrhkAxOLQpSKol+jOA8XKucW39bNtbNDKBeAU4THymzwMiM
8H8jo5XBAAkj7MvZOw9sXW4wYzdeg0HpS8tlBd4FPXovoC9wQ5eThnf6R4PfXzynyewmpTvHDOkZ
8opY2gyeSfxIVaCETjvrCas4Ci/lumXG3Bl9JhVWtfxYx8DhDR+GOnsG1dFLFOcsxqI774/OGDEZ
epgo+LdmtClOM5vHro/Sj75b0M/jLeFY5XixlTvAIqM7Yvdx9XjSNSnEpgexaXbM4s8UaoHoQa3Z
81tAy5TsoEi9YNqBCFsqDNnlilGH3q5cFSu1mi5hB6kJzov57lVF3x0UnVoQexKyb0ZZ99wwmHtt
FG46s87RNBO4sBr28qTbRrRy5Gak0h77Zg+9Jn92XE8YNI7QM7+BmN4t7w7wcpw8Mmkc0Z1r2sj0
uD3uNsduD+u+YwyPtgSpr7P2mJ99UfBXnUl79sFzZO9O8u4nX9CO1XwhSVq3HVlg28u3a27JBQyv
R6qMs1+3YHLocGuHz+vJkAjDMWErnEGGXRwtt+NmE0PIJZh6iv5Gp+uThohb9N1fzTB06DwL1L4i
g1udjmrkBHtX3JwwUyCbZhTrZnSEo84KIqVvPEb9PBSWVnbcm0L9FioEioGG6InyWt40I9DMfiPl
TYssh3jetxx9immTi67lgFqDBF/b3btDoisiM8+Bb9LGQQN6HKJ0TnTowrV9I01fm2fjGrKqbNcd
z+8pfVplPHE+5LXS9aKdfjGrDZO4KcBLBroAg029IW2yNLtAD/OQE3tS5Jh2C/prGxRHCuZiK+2g
JtETxbomq18dJkDZWPBnCDh0AjmGta4poirUTVBjx3zhuvimFXHvvjroRlb/P+mSqP+k0+/xC5rC
LcsapgMk/eV7gFGgD+MSP4HvwQOkxyvtm94R1QXTcGZbpsPHD8/+AzE4u729baX02dXd7d3ibrA+
QXM5jOLNZjOk9YoUFVSoTvBdm9aTDOERNO1k/mZ5NblydSthBIv/mPbAXwX0iLk25VrkfeS+ur2X
iaAVxFQkH05zpSq5iiL8Fe/CLedbWFRRqaFrxiJGYxl9/bMmYh9Nw3l46V5CaC3Dr/L0GvY1+12j
7s4JT0mgY0ieQe6fEGkdzA/zq9YSUMp9KIx5uocfyAfQG0v54dzfBPT3wnx6Hf0B8YSaFd1ihaPN
l/voC4n/TZX7+VhTlka/A+9iSSJACrgzUAQqLFzfa6ZkhJME0E1jyoATIiwohoKmdPACDRud4gG0
MDVmodopUGza1af1Oej8eMZc08fG9fUdAdJ68/rigrrffJwQVJPSS5kb/6GNOL/+oYxltQYfgtB1
RxSyuy04HZQBhj6/djPgf9DH/7R1a8FJS5tpJ/t/Wy5zuEm8bvyrhk/fYPPluM0POdX3GqnrnWYy
SlxxM1jwGEDQxaA2OuCFILKDeejn4LQOjiAVhQBQsH3Yd+n32Xr5Bltnb4/v9ykze4My83FlPpXA
H8ZrFwjyEriDMWAj8CzSLQWEgWfohz9rrtaff76/t0/I9SewJuO6swbvx3sn9rC5f0A3n379/Mvm
YWOHwu+BdO/HFCOoAOafMv4HUEsDBBQAAgAIAIZjPUXoc+NV+gAAAK8BAAA0ABwAYWNjZXNzaWJp
bGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtYWN0dWFsLnR4dFVUCQADzLIpVMyyKVR1
eAsAAQT1AQAABBQAAAB9kb1uwzAMhHc9BeE5CNCM3QLXKAo0iFF76ErLdCSElgL9JPXbl05cJO3Q
RZTAj6c7SbXGRkgUE4x4pAgxB4JkMAGCRnfGCBebDKDrrxufEwzI3KE+gvYukUtAqA0YQZMhCPZg
EgTPdB3qKepgT8l6t1Zq7+QGrSnGFUw+iyQzRBJU1mDFgB+gqLdNU8AoFB5IyMEz+wv10E1QtFXT
Qrnf1e9VWxWiqWYc8KsUN2gdhbU2lvtArvRZ3EnAjSpvWZ4e/TzD9vPl8bhAjB3xfWKOMqMfS30b
xdVPe/Ov4J36K/IafD7dnC8PMmTmqcYQJef8JyGTUr/CKvUNUEsDBBQAAgAIAIZjPUVwCVY4AgEA
AM0BAAAyABwAYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtZGlmZi50
eHRVVAkAA8yyKVTMsilUdXgLAAEE9QEAAAQUAAAAvZBBTsNADEX3OcVXtul0VMEBAjQrQK1IRNfO
xG1GdTNVxqHt7ZkGFpyAje3F9//PNsbAfgaZThztmpRstavtjttXr7/tefLS2Q8WpshW6BYmNcpR
zchxEo2WnOMYfevF6806Gr4omo6jG/1ZfRgMDZ0Zg7Dh65mdcrfUq2ZFUfxnNjmdSObksoRZLR5Q
rBaPKMusyND0PuLujBMdOSJOI0N7UhB+XHHx2iPZzUMCwZ5EWnJHuDAoDwom16NPUu0Zoz/0inv0
vPSHaZkhw2ZIGTP8AumsZCqCyEmc6ugTQtgj3z7VdY70oEgHTsp9EAkX7tDekDdV3eBl8759q5oq
X2bfUEsDBBQAAgAIAIZjPUXkA9YY+QAAAK4BAAA2ABwAYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVz
Y3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0VVQJAAPMsilUzLIpVHV4CwABBPUBAAAEFAAA
AH2RvW7DMAyEdz0F4TkI0IzdAtcoCjSIUXvoSst0JISWAv0k9duXTlwk7dBFlMCPpzupNTZCophg
xCNFiDkQJIMJEDS6M0a42GQAXX/d+JxgQOYO9RG0d4lcAkJtwAiaDEGwB5MgeKbrUE9RB3tK1ru1
UnsnN2hNMa5g8lkkmSGSoLIGKwb8AEW9bZoCRqHwQEIOntlfqIdugqKtmhbK/a5+r9qqEE0144Bf
pbhB6yistbHcB3Klz+JOAm5Uecvy9OjnGbafL4/HBWLsiO8Tc5QZ/Vjq2yiuftqbfwXv1F+R1+Dz
6eZ8eZAhM081hig55z8JmZT6FVapb1BLAwQUAAIACACGYz1FuQZpPdUHAADmGAAAOgAcAGFjY2Vz
c2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLXByZXR0eS1kaWZmLmh0bWxVVAkA
A8yyKVTMsilUdXgLAAEE9QEAAAQUAAAApVltb9tGEv7uX7GwcTVQmKRkSaklJT40towDrm2C2mg+
HpbkUtx4yWV3l7aU9v77zb5RJEXaPqRBI4r79szMM8/MKu9zVbDrk/c5wSl8FERhlORYSKI+nNcq
C67O4bVUe0auT1aMlo8XaPVEJVUkRX+dIPhPkZ0KUpJwgRXl5QqVvCRrMxRzkRIRxFwpXqzQtNqh
FJ5Juj7574ndzm2ScMbFCp1NZkszFt5RRm5plrnxGCePW8HrMg381OxK/2kfZE+QnNEUnaVpascy
XqogwwVl+xUqeMllhRMHsMBiSwHylBRoYl9VHIwzdgjCwKInYgDl0x7S2Ww2sL/EpQwkETRrDUr6
jZgz2ocGjGRqhSbhwr9PqawYhk1oCZ5xCJ9pqnJYPJn8w+HDaUrLbbPSYnOh0U/d6Di4tMwBlGqm
5/yJiJ5Fi8ViPeZsQqwbQh2TX+As6RZnjGMwQ9BtrrqR07NuwHwMtvijOLieKjBx0jNZ4ZiRICGM
dawMzL4dLz3nYF1gYqip9ixwdUB2TxIdu1HSmMVdyvTp4jjr/Q6EmlQ7e8JmV0F4YX8wjVygUH/0
LRyFJ2lK4r3+GxmoHxlPHj9joUIwdZVRIVWQ5JSlo47Vx93D+ouXNhOkgNBevHKeO8O73xIuiPWU
Du0WnnXAFkUTzALM6BZyQ/EBswTRTP8XLlNGvDvcPtqF+ntObEAPfE5qIXVoNOx+BuIYolP7iMGZ
DXFs8hh4L6Ho8PyYDltB9useMcPFa/GyLkah4q+6OcwEL3rOdvqoz9Be/60uYiKATaTNLvvWAz+W
Ucfa5bIjgD5dhmTQZ/J8Ph+Um3b0G43RGy1sCtg0aATf8cDRc4giFm6HTjMnWC3DjYmDgmOLxKhb
XhCpSujs1DCdA72aONZ4Qzq5CosCm61mCPxpvoIdguDHQL+wgGiBt6QTmRW6bBweM6y9qCcmIA2A
AaC4J9S3+xCVq/lyVHszkh0EQNMKdmzKYyubB5amWdpdCsGW49OXZLl+qaY3OzmVaeNwWTFertP0
aAOUEja+gixfRRP9iO7rquJCQaUVjsng1KIgpZLoxwjOw7XKufW3rca6mQHWK+Bp4iNlFpg5I/W/
maPBYKCEmezl7J0ntpYbzNiNRzA4+9LWsgLvgl55L6AvcK8uJ03d6R8Nfn/xnCazm5TuHDOEM+QV
sWUzeCbxI1WBEjrtrCcscBReynXLjLkz+kwqrGr5sY6hhjf1MNTZMwhHL1GcsxiL7rg/OmPEZOhh
oODfmreNOM1sHrs+Sj/6bkE/j7eEY8rxYit3oEVGd8Tu4/R40jUpxKYHsWl2XMWfKWiB6FGt2fNb
QMuU7ECkXjDtUAhbEIbscmLUKW9XTsVKDdMl7GBpgvNivnsV6LsD0KklsS9C9psB656bCua+NoCb
zqxzNM0ELizCXp5024hWjtyMKO2xb/bQa/JnV+sJg8YReuY3FKZ3y7sDvVxNHhk0juiONW1ketwe
d5tjt4d13zGHR1uC1OusPeZnLwr+qjNpjz74Gtm7k7z7yQvaMcwXkqR125EFtr18W3NLLuD1ekRl
nP26BZNDh1s7fF5PhqYwHBO2whlk2MXRcvvebGIKcgmmnqK/0en6pCnErfLdX80wdOg8C9S+IoNb
nY4ichN7V9ycMCOQTTOKdTM6UqPOCiKlbzxG/TwUllZ23BuhfksphBIDDdET5bW8ad5AM/uNlDet
YjlU533L0S8x7eKitRxYa5jgtd19d0x0IjLzNfBNaBw1oMchSudEp1y4tm+k6WvX2biGrCrbuuPr
e0qfVhlPnA95rbRetNMvZrWpJG4I+JIBFqhgU29Iu1iaXaCHeciJPSlylXYL+LUNiiMFY7Gd7agm
0RPFWpPVr44TADYW/BkCDp1AjmGta4qoCnUT1NgxX7guvmlF3HevDrqR1f9PukXU/6TT7/ELmsIt
yxqmAyT95XugokAfxiV+At+DB0ivrrRvekelLpiGM9syHX788NV/IAZnt7e3rZQ+u7q7vVvcDeoT
NJfDLN5sNkOoV6SoQKE6wXdtWm9mCI+AtJP5m+XV5MrpVsIIFv8x7YG/Cug35tqU6ynvI/er23uZ
CFpBTEXy4TRXqpKrKMJf8S7ccr6FRRWVmrrmXcRoLKOvf9ZE7KNpOA8v3ZcQWsvwqzy9hn3Nfteo
u3PCUxLoGJJnmPdPiLQO5of5VWsJgHI/FMY83cMH5APgxlJ+OPc3Af17YT69jv6AeIJmRbdY4Wjz
5T76QuJ/U+U+PtaUpdHvUHexJBEwBdwZKAIKC9f3mikZ4SQBdtOYMqgJUYLLJyzhEmCRALIAylcg
OCMBNDI1ZqHaKYA37aJq/Sh0fjxiLutj7/UlHgHfeuP6+oK6v/y4SaAppZ9l7v2HZuL8+ocyltUa
PAmTrjtTIcfbE6eDc6BOn1+7EYgC4PEfbWwtUunZZtjN/b8tlzncJ143/lXDp2+w+XLc5oec6tuN
VCBRj0SCsgliNQ4jSwrQNpUjYIN5AB6hDFJb57QXTERwkqMcSyOmRl6QZo5Z1KJU2Hfw91l++QbL
Z2+P9veBmb0BzHwczKcSPG8y8gJBroKrGYMKBS5Eus2AwPAM/fBnzdX688/39/YJuZ4F1mRcd9vQ
Ycd7N+1hc/+Abj79+vmXzcPGvgq/h+C9DyNQoAfmnzf+B1BLAwQUAAIACACHYz1FeDzK73oBAACv
CQAAMAAcAGFjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxiYWNrLWNvbnRlbnQtYWN0dWFsLnR4dFVU
CQADzbIpVM2yKVR1eAsAAQT1AQAABBQAAAC9VstugzAQvPsrVpzbSPWxUg4kIlWlVEEJlXI1ztJY
GBz5kZC/7wIJVT/AcEAWOzuz3mUsb1VbA6yC96aFv2djZHCi1MjS/WcK5RAf15oyWHFWDjw6D42o
0YELFsGfhYfqmQmoscHWO1AtSNFehYNKaF0KWYM0racYCEoTUqJzilIWjO1a4ho+vMDdBLgprcEh
oehtFUmZCpI8PRwSaAglfpCQldHa3PAE5R2SIjsUsN595dusyBLiZH3Jb6xPghOV11e1ENKrK2Zj
jbBcPsuFfmM24AgX3QOxsIa2RLEkPe5p+Q7pcUu0CWNjcyLwj1MhBY+dj8BfEO1GoT6RhDyjrEvT
RZBZ99Qr05GKFSdlIkjse96pXS6UjfIxByJNU5o43crN5fsyCU1uiqD0YU24kIawSrzG/4kHmbhO
7Nl5ZJ/zyD7n8/icx/c5n8fnfAaf89l8zmfxOZ/D5/GcGPNUnGUkk8gAfVx4qqD1PRfW0T3mScX+
XWYY+wVQSwMEFAACAAgAh2M9RcydbU7WAAAAtAEAAC4AHABhY2Nlc3NpYmlsaXR5L2NhbnZhcy1m
YWxsYmFjay1jb250ZW50LWRpZmYudHh0VVQJAAPNsilUzbIpVHV4CwABBPUBAAAEFAAAAL2PsU4D
MRBEe3/F9BfHigT9JQIkBFVApN5zNop1ezbKrlHy9xzhDhpqthmtNKOZ571HeCtSB9ZwR0bhfvcS
dtw9JZtkU5Psw5aFSTkIXUo1b6zmT6xVTAPFyKqpS5LsEiLlD1J/IJGOYu9jycbZPJ/fORrvl3Y2
1zTNf/VStEpybW1b+NXiFs1qcYO2df455R7YVLOS8XPOP5RYlTph1/xtwa8D6+3jGt3VMD0yZhxe
j0nxNRgD9azQemLYkQyHOYyRbhhHKlLGNwBmAEwAoDE2owov3SdQSwMEFAACAAgAh2M9RWfFMop6
AQAArwkAADIAHABhY2Nlc3NpYmlsaXR5L2NhbnZhcy1mYWxsYmFjay1jb250ZW50LWV4cGVjdGVk
LnR4dFVUCQADzbIpVM2yKVR1eAsAAQT1AQAABBQAAAC9VstugzAQvPsrVpzbSPWxUg4kolWlVEEJ
lXJdjGksDI78SMjfd4EEqR9gOCCLnZ1Z7zKWd6prADbBe9PB/LAPI4LDUkuWHr5SKMf4tNaUwYqz
cuCl89BiIx24YCX4M3qon5kgtWxl5x2oDgR2V3RQo9YligaE6TzFACkNhZDOKUpZMbbviGv88AJ3
E+CmtAYnCUVvq0jK1JDk6fGYQEso/JWErI3W5iYrKO+QFNmxgO3+O99lRZYQJxtKfmNDElRU3lDV
CoVXV5lNNcJ6/SwXho3ZICc49g/EyhraEsWS9HSg5Tukpx3RJoxNzYnAP02FFLzsfQT+gmg/lNQV
SYizFE1p+ggy24F6Y3pSsVgpE0HiMPDO7XKhbJWPORBh2tLE6VZuLj+XWWh2UwSlT2vChTTQKnyN
/xOPMnGdOLDzyD7nkX3Ol/E5j+9zvozP+QI+54v5nC/ic76Ez+M5MeapuMhIZpER+rjw1EHre47W
0T3mScX+XWYY+wNQSwMEFAACAAgAh2M9RZu963K4BwAAFBoAADYAHABhY2Nlc3NpYmlsaXR5L2Nh
bnZhcy1mYWxsYmFjay1jb250ZW50LXByZXR0eS1kaWZmLmh0bWxVVAkAA82yKVTNsilUdXgLAAEE
9QEAAAQUAAAArVlrb9vIFf3uXzGw0RpYmKRkSaklJSoSP9Bi26JYB92PxZAcihMPOezM0JbT7X/v
nRdFUqSkoskiK4nzOvd1zh3mY64Ktrn4mBOcwkdBFEZJjoUk6tN1rbLg7hoeS/XOyOZixWj5coNW
r1RSRVL07wsEfxTZqSAlCRdYUV6uUMlLsjZDMRcpEUHMleLFCk2rHUrhO0nXF/+5sNu5TRLOuFih
q8lsacbCJ8rIA80yNx7j5GUreF2mgZ+a3en/2gfZEyRnNEVXaZrasYyXKshwQdn7ChW85LLCiQNY
YLGlAHlKCjSxjyoOxhk7BGFg0SsxgPJpD+lsNhvYX+JSBpIImrUGJf1OzBntQwNGMrVCk3Dhn6dU
VgzDJrQEzziEbzRVOSyeTH7n8OE0peW2WWmxudDob93oOLi0zAGUaqbn/JWInkWLxWI95mxCrBtC
HZO/wFnSLc4Yx2CGoNtcdSOnZ92D+Rhs8UdxcD1VYOKkZ7LCMSNBQhjrWBmYfTteesvBusDEUKfa
m8DVHtkzSXTsRpPGLO6mTD9dXM56v0NCTaqdPeFxV0F4YX8wjdygUH/0LRyFJ2lK4nf9f2SgfmE8
efk7FioEU1cZFVIFSU5ZOupYfdwzrL85tpkgBYT25sR57gzvfptwQayndNJu4bMOskXRBLMAM7qF
2lB8wCxBdKb/CZcpI94dbh/tQv07Jzag+3xOaiF1aDTsfgXiGKJT+4jBmU3i2OIx8I6h6OT5YTps
BXlf9xIzXJyKl3UxChU/6eYwE7zoOdvxoz5De/1vdRETAdlE2tlln3rghzTqsna57BCgL5chGvSV
PJ/PB+mmHf2GY/RGC1sCtgwawnd54NJzKEUs3E46zRxhtQw3Jg4SjhWJUbccIalK6OrUMJ0DPZu4
rPGGdGoVFgW2Ws0Q+NP8BDsEwS+BfmAB0QJvSScyK3TbODxmWHtRT0yAGgADQHHfUN/ufVTu5stR
7s1IticAnVawYyOPrWoeWJpmaXcpBFuOT1+S5fqYpjc7OZZp43BVMS7XaXqwAUoJG19BlifRRD+h
57qquFCgtMJlMji1KEipJPopgvNwrXJu/W3VWDczkPUK8jTxkTILzJwR/W/maDAYUsJM9nT2wSe2
phvM2L1HMDj71mpZgXdBT94L6Avco9tJozv9o8HvR89pKrsp6c4xQzhDXhErm8EbiV+oCpTQZWc9
YYGj8FauW2bMndFXUmFVyy91DBre6GGoq2cQjl6iOGcxFt1xf3TGiKnQ/UDBvzdPG3Ka2Tp2fZT+
6rsF/X28JRxjjqOt3D4tMrojdh/Hx5OuSSE2PYgts0MVf6PABaKXas2e3wNapmQHJHXEtL0QtiAM
2eXIqCNvd47FSg3TFeygNMF5Md+dBPphD3Rqk9iLkP1lwLrvjYK5nw3gpjPrHE0zgQuLsFcn3Tai
VSP3I0x76Jt36DX5m9N6wqBxhJ75DGH6sHzap5fT5JFB44juWNNGpoftcbc5dntY9x3m8GhLkHqe
tcd89qTgrzqT9uhXr5G9O8mHP3hCO4R5pEhatx1ZYNvLtzm35AIer0dYxtmvWzA5dLi1w9f1ZGgK
wzFhK5xBhd0cLLfPzSZGkEsw9RL9hi7XF40Qt+S7v5ph6NB5Fqj3igxudTmKyE3sXXFzwgxBNs0o
1s3oiEZdFURK33iM+nkoLK3qeDZEfY4UgsRAQ/RKeS3vmyfQzH4n5X1LLId03rccfYlpi4vmcsha
kwme291vl4mORGZeA89C41IDehyidE105MK1fSNNX1tn4xqqqmzzjtf3lL6uMp44H/Jaab5ol1/M
aqMkbgjyJQMsoGBTb0hbLM0u0MN8zYk9KXJKuwX82gbFkYKx2M52qSbRK8Wak9VfXU4A2FjwNwg4
dAI5hrWuKaIq1E1QY8d84br4phVxvz076EZW/510RdS/0un3+AVN4ZZlDdMBkv7yPaAo0IdxiV/B
9+AB0tOV9k3vQOqCaTizLdP+5YdX/4EYXD08PLRK+uru6eFp8TTIT9BcDmfx4+PjEOoVKSpgqE7w
XZvWmxnCV0DaqfzH5d3kzvFWwggW/zTtgb8K6Cfm2pTrKR8j99bto0wErSCmIvl0mStVyVUU4W94
F24538KiikqduuZZxGgso2//qol4j6bhPLx1P0JoLcNv8nID+5r9Nqi7c8JTEugYkjeY90eItA7m
p/ldawmAci8KY56+wwfUA+DGUn669jcB/b4wn26if0A8gbOiB6xw9Pjrc/QriX+myn18qSlLo19A
d7EkEWQKuDNQBBgWru81UzLCSQLZTWPKQBOiBJevWAK/MaajFbhSCKCJqTEL1U4BtGkXUeuF0PXh
iLmojz3XF3hk7yi9Kfr2grovfvbzgFVKP9Hc/PftxPVmCm6E8U1nFhR4e87vy1hW68GJoNTXG60t
CH2x/NT8cfMhOgD0R8G9/QFwnzRV6jd7fYTmY9zzUOWn3e4mHTXiCEB+RnCO+Bydb1ur1K83bvgw
UuflpMzhlnfaOScdMzvDJ7fjPvn8y58/O5n8n5LvJK75GbhmJ3DpV+E/FtXiDFTzcVRfc6pv6FKB
zL4QCeosiNXpzCcRAia0bRKFxYbskCc7r/sIQo88LTIS/j+J1/swdA4Mav4x6L9QSwMEFAACAAgA
h2M9RWVMwQgzAQAA/gEAADsAHABhY2Nlc3NpYmlsaXR5L2NvbnRhaW5lci1ub2RlLWRlbGV0ZS1j
YXVzZXMtY3Jhc2gtYWN0dWFsLnR4dFVUCQADzbIpVM2yKVR1eAsAAQT1AQAABBQAAABtkEFuwjAQ
Rfc+xSibbgoHYBchFpWoQJALTJwJcTGeyGM3ze07JkUCqZIXlubPm/+/2Q5krwKJ4YZXAsmRAGEg
HFdZaIV9orjqIxHYiDJAxyThLQFbmyNMAwWVWw4JXaAIgTuCyaUBUAcibB0m6gCtJRHXOu/SDNx+
kU3gBDryVOZ95BukgSDpqTU0+nv1AHcPE8py2YXLcrzs1M/ww8K2HCPJyKErUo1XhHZwvgPul0v0
k/78or+qhzyCSwIjRgoKGDQR6PuHvtlIHkeOSerTR71333Sii+MAbU7PjGIXfSTs5kfStTGHoDXf
oe8wc9a6vAeh0rtQdCTFYXWsz+cKbqrCC6myZ+95UpvtDFWzOzewPXwe97tmVynTFPkD22fv5yNG
UbV2nGImY15WTKPhjfkFUEsDBBQAAgAIAIdjPUUTZh07hQEAAN8CAAA5ABwAYWNjZXNzaWJpbGl0
eS9jb250YWluZXItbm9kZS1kZWxldGUtY2F1c2VzLWNyYXNoLWRpZmYudHh0VVQJAAPNsilUzbIp
VHV4CwABBPUBAAAEFAAAAMWSwU7jMBCG73mKUS8cUjdCuydOLdADglVRW8F54kwaU9eOPONt+/ZM
GkAg7X2lSI7kmW+++RNjDFQv0ecDcXWPgtXydVO9Uv3o5OO4zc431Zo8IVPl8RyzGCEWk4izF67Q
WmJ2tfNOzpWNQdAFSibEhkyjjULGYmZiYxNyZ+jUkxVqZnKSoizL/6CAVjL6i8B8DuZ6+gvK6+lv
mM+LsoC7juyeQSIccE/AOREgdIS9UYbBVpTdJiK40KCJxOFKIFqbExw7Clr+ZQGDBRyddIB6wRyt
Q10fflhDrN80FXAMo3ADbYoHkI5AdNQMtvr20wEuDkfkcbILu3H40LP4Dl+NbBuTJtbH0Aylut5Q
aDtNF2I7TqKTfPii36tD7sEJQ4+JggI63Qj0+Qf95oZz38ckvFg/LJ7cX1rTzsUAdZbvjEEXfSJs
zp+bzgooYBU06At2CvqFNTDvgWlInik54sFx8rzYbCag/wrjjrSyjd7Ho4rWZ5hsl5st3K3+PD8t
t8vJrHgHUEsDBBQAAgAIAIdjPUWv7jbPMgEAAP0BAAA9ABwAYWNjZXNzaWJpbGl0eS9jb250YWlu
ZXItbm9kZS1kZWxldGUtY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4dFVUCQADzbIpVM2yKVR1eAsA
AQT1AQAABBQAAABtkEFuwjAQRfc5xSibbgoHYBchFpWoQJALTJwJdjGeyGM3ze07JkUCqZIXlubP
m///1pK5CiSGG14JJEcCBEs4rrLQCodEcTVEIjARxULPJOEtARuTI0yWgsoNh4QuUITAPcHkkgXU
gQgbh4l6QGNIxHXOuzQDd19kEjiBnjyV+RD5BskSJD21hlZ/rx7g7mFCWS67cFmOl53mGX5Y2IZj
JBk59EWq8YrQWOd74GG5RD/pzy/6q3rII7gkMGKkoACriUDfP/TNRvI4ckzSnD6avfumE10cB+hy
emYUu+gjYT8/kq6r6hC05jv0HWbOWpf3IFR6F4qOpDisj835XMNNVXghVQ7sPU9qs5uhbnfnFraH
z+N+1+5qZVZF/sAO2fv5iFFUrR2nmKmqXlaqVsNX1S9QSwMEFAACAAgAh2M9RQbC9OhUCAAA8RkA
AEEAHABhY2Nlc3NpYmlsaXR5L2NvbnRhaW5lci1ub2RlLWRlbGV0ZS1jYXVzZXMtY3Jhc2gtcHJl
dHR5LWRpZmYuaHRtbFVUCQADzbIpVM2yKVR1eAsAAQT1AQAABBQAAAClWW1v2zgS/p5fQSTYDbCI
ZDu2e7HdZpEmDu5w3WvRBLcfF5REWWwoUUtSsd27++83fJMlWUqy6BZb2+LbMzPPPDNU32cqZ9cn
7zOCE/jIicIozrCQRH04r1QaXJ3DY6n2jFyfLBktni7Q8plKqkiC/nOC4D9FdipISMwFVpQXS1Tw
gqzMUMRFQkQQcaV4vkSTcocS+E6S1cn/Tux2bpOYMy6W6Gw8XZix8J4yckfT1I1HOH7aCF4VSeCn
plf6T/Mge4LkjCboLEkSO5byQgUpzinbL1HOCy5LHDuAORYbCpAnJEdj+6jkYJyxQxAGFj0TAyib
dJBOp9Oe/SUuZCCJoGljUNLvxJzRPDRgJFVLNA7n/nlCZckwbEIL8IxDuKWJymDxePyTw4eThBab
eqXF5kKjv7Wj4+DSIgNQqp6e8WciOhbN5/PVkLMJsW4IdUw+wVnSLU4Zx2CGoJtMtSOnZ92C+Rhs
8UdxcD1VYOK4Y7LCESNBTBhrWRmYfVte2mZgXWBiqKm2Fbg8IHsgsY7dIGnM4jZlunRxnPV+B0KN
y509Yb0rIbywP5hGLlCoP7oWDsKTNCHRXv+NDNSPjMdPX7BQIZi6TKmQKogzypJBx+rjHmD9xUub
CZJDaC9eOc+d4d1vCRdEekqLdnPPOmCLojFmAWZ0A7mheI9Zgmim/x0XCSPeHW4f7UL9OyM2oAc+
x5WQOjQadjcDcQTRqXzE4MyaODZ5DLyXULR4fkyHjSD7VYeY4fy1eFkXo1DxV90cpoLnHWc7fdRn
aK//q8ojIoBNpMku+9QDP5ZRx9rFoiWAPl36ZNBn8mw265WbZvRrjdEbzW0K2DSoBd/xwNGzjyIW
botOUydYDcONib2CY4vEoFteEKlS6OzUMJ0DvZo41nhDWrkKiwKbrWYI/Gl+gh2C4KdAP7CAaI43
pBWZJbqsHR4xrL2oJ8YgDYABoLhvqGv3ISpXs8Wg9qYkPQiAphXsWJfHRjb3LE3SpL0Ugi2Hpy/I
YvVSTa93cirTxOGyYrhcJ8nRBighbHgFWbyKZvQLeqjKkgsFlVY4JoNT85wUSqJfRnAerlTGrb9t
NdbNDLBeAU9jHymzwMwZqP/1HA0GAyXMZC9n7zyxtdxgxm49gt7Zl7aW5XgXdMp7Dn2Be3Q5rutO
92jw+4vn1Jldp3TrmD6cIS+JLZvBlkRPVAVK6LSznrDAUXgpVw0zZs7oM6mwquTHKoIaXtfDUGdP
Lxy9RHHOIiza4/7olBGToYeBnH+vn9biNLV57Poo/dV3C/r7cEs4pBwvtnIHWqR0R+w+To/HbZNC
bHoQm2bHVXxLQQtEh2r1nt8DWiRkByL1gmmHQtiA0GeXE6NWebtyKlZomC5he0sTnBfx3atA3x2A
TiyJfRGyvwxY972uYO5nDbjuzFpH01Tg3CLs5Em7jWjkyO2A0h77Zg+9Jt+6Wk8YNI7QM7+hML1b
3B/o5WrywKBxRHusbiOT4/a43Ry7Paz7jjk82BIkXmftMTdeFPxVZ9wcffQ1snMnefc3L2jHMF9I
ksZtR+bY9vJNzS24gMerAZVx9usWTPYdbu3weT3um8JwRNgSp5BhF0fL7XOziSnIBZh6iv6LTlcn
dSFulO/uaoahQ+dpoPYl6d3qdBCRm9i54maEGYGsm1Gsm9GBGnWWEyl94zHo576wNLLjwQj1W0oh
lBhoiJ4pr+Rt/QSa2e+kuG0Uy74671uObolpFhet5cBawwSv7e63Y6ITkamvgW9C46gBPQ5ROida
5cK1fQNNX7PORhVkVdHUHV/fE/q8THnsfMgrpfWimX4Rq0wlcUPAlxSwQAWbeEOaxdLsAj3MY0bs
SSNXaTeAX9ugOFIwFtnZjmoSPVOsNVn95jgBYCPBtxBw6AQyDGtdU0RVqJug2o7Z3HXxdSvifnt1
0I2s/n/cLqL+lU63x89pArcsa5gOkPSX756KAn0Yl/gZfA8eIJ260rzpHZW6YBJObct0ePnhq39P
DM7u7u4aKX12dX93P7/v1SdoLvtZvF6v+1AvSV6CQrWC79q0zswQvgLSVuavF1fjK6dbMSNY/GHa
A38V0E/MtSnTU96P3Fu39zIWtISYivjDaaZUKZejEf6Gd+GG8w0sKqnU1DXPRoxGcvTtz4qI/WgS
zsJL9yOE1jL8Jk+vYV+z3zVq7xzzhAQ6hmQL836FSOtgfphdNZYAKPeiMOLJHj4gHwA3lvLDub8J
6PeF2eR69G+IJ2jW6A4rPFr//jD6nUT/pMp9fKwoS0Zfoe5iSUbAFHBnoAgoLFzfK6bkCMcxsJtG
lEFNGMVeUINC44R7A4EsjnEliQxigWUWQD9TYRaqnQKUkza4xruh8+MRc2cfeq7v8gho1xnXtxjU
fgHkJoG0FH6Wuf4feorz65+LSJYrcChMum5NhVRvTpz0zoFyfX7tRiAYgMd/NLE1uKVnm2E39y9b
LjO4Vrxu/KuGT95g8+WwzbcZiZ+k1sMcPxHQN0GgHwAylgFQIDDlOEgFAZHUZEAJJ7I4V4jHcSVA
8+Fyg1FNIqRJBJqoMgQHwTE8plj3fy3SIR59A84gKpHlW4KMWVqRFRwVGt1uY0AGwxZLe7JWAHO4
XnPT3Pyz3RvutED4khda1rzc29eAPLUn6RbN4sXsCTBUJci6BCkUulbFGVgEFa9v9+XS1QF58/Uf
N5+g2/9KNlqhocA199BwMYNGMdl7S8MuyX4s+pdviP707Yz/MTDTN4CZDYP5XAD9jLMvEMgW0Igx
KNaaj7rjIlJH7uc/K65WX24eHuw35No3WJNyffGAQEZ7N+1x/fCIbj//9uXT+nFtH4U/kuSdD6PV
oInmX3r+D1BLAwQUAAIACACHYz1FewcgftUBAABJBAAANQAcAGFjY2Vzc2liaWxpdHkvY29udGVu
dC1lZGl0YWJsZS1hcy10ZXh0YXJlYS1hY3R1YWwudHh0VVQJAAPNsilUzbIpVHV4CwABBPUBAAAE
FAAAAMVUUWvbMBB+1684/JRAWmwKGXTswcnSvrRriL1SGH1Q7IstqlieJCfNTP57T4rt0UAfNgaz
hS1/33d3OunOLC2FAYvG0rPkFjhkqrJIIxeWryWCxkKoCtZY8h0a4DSg1qpGDfFTiq821sgvGXuo
wDRZhsZM4KAa2AspwSCS3KAWZKo2ECzjJAlgSypeICk3Skq1xxzWBwjSRZLC/OF+ebdIFwH5ZCsl
8Zri9O8+HnvksvFINymR/MBeaZmfOBjt9SmD8TVY3SBLrBZVQeuyJWheFWQ1GLHYErtuKG0wH+ha
ijbj2UuhVVPlcyWVhi8QwA8Yvcxv/XdS8wy/4k5kuLqdjZ9hBGF3j4PPZH9Dm0tGbTe94VshDwSk
grakF3zjW3SePXixUlteDcaJ+OW4aOqAR2EEJfhOD73+eDKh4/uL9UZ+vUe3Nf8p7ZmS+R9k3cn/
QdLx070wpqYjp1qgmOSU3YkKqVQ1iCrH11FIJRWeg58IjNjKFYxHJdFe2YYTmB7PmcgxU8/M3FKN
p7p6a9uL6DL01wSG6XEC7dVv/Gra40eWoMTMFa+lBhm8ONEZ5zuFfa9z7pDdWRf9HHrI9Wnfz5tG
ysOSa0MW7m/hmom961XG3gBQSwMEFAACAAgAh2M9RW3pG+NGAgAAvQcAADMAHABhY2Nlc3NpYmls
aXR5L2NvbnRlbnQtZWRpdGFibGUtYXMtdGV4dGFyZWEtZGlmZi50eHRVVAkAA82yKVTNsilUdXgL
AAEE9QEAAAQUAAAAzVXdT9swEH/3X3HiqSgxaVdREGhSPyg8DLaq6QBp2oObHMXCTbrYoe2i/u+7
OCktLR/TQNvshzj35buff7rjnIN3Gat0jNo7EUZ43Svfu8LhJ2nKTzuVKvT6qFBo9JSYx6nhBrXh
CepUGe2JIECt5VAqaeZeEEcGI8MxlEYMFXKhyXxmRIKC42yCgcFwz8wMcxznr14uApMKZa9uNoHv
u/UP4Oy7tSo0mwzy3Y8VHkHrevkdkGuLXBm/FCq1ovJwi0rFjE/jRIXMeVILhRKsDCrTpEhp9whM
kiLjvklkNIKpNLeQiGhEfqugjLcM6YcpgQX6OcuMcaDVum6L4G6UxGkUdmIVJ/ARduAbVO46Z/bf
n4gAT/BeBtg/a+9+hwpUy727c7wMckrgkWe+ysAr+akYSzUn7UDSax1vqj+LMeaXWi3vx2MR7WwZ
+fJnblRrPNJcSno9hY8iwKMIi7UME/yTMmtFmYsc2f8Us3aswjdBth7g3RArglxIrSfEOKIi5ZID
yZxn2GtJz5zXyQvZW59ghX72NOAvcXML31eYSJC+FU0o6Pdvyi7Y8dtVl+bvUPQWe2DB4FxGCDcU
S0YhzipV6onVLekBSWvUk3POWLEivbXNqi40FraJ1w/dQ3BqDffANvF2nqa21iXXsozX9qp2ufBw
XLiQ1VfyemMpp+R8mjb5jIJ8cDyEya02lbbRM/51EopcdL8xBX6sTYgXbJZzotfyfdCpnWc3qVLz
nkg0uUhdDAyaT4OuP4DOl4veeXfQZb8AUEsDBBQAAgAIAIdjPUWpx88v3wEAALUEAAA3ABwAYWNj
ZXNzaWJpbGl0eS9jb250ZW50LWVkaXRhYmxlLWFzLXRleHRhcmVhLWV4cGVjdGVkLnR4dFVUCQAD
zbIpVM2yKVR1eAsAAQT1AQAABBQAAADNVE1v2zAMvetXED4lQFrYKJABLXZwsrSXdg1irygw7KDY
jC1UsTxJTpoZ+e+llM8a6KXbYbJhy++RFEmTZGkpDFg0lp4lt8AhU5VFunNh+VwiaCyEqmCOJV+h
AU431FrVqCF+TvHVxhr5JWOPFZgmy9CYAWxUA2shJRhEEjeoBamqBQTTOEkCWJIUL5AkF0pKtcYc
5hsI0kmSwvjxYXo/SScB2WQzJfGazjm8D+exJy4bj+w3JZIdtlZa5jsOemu9i6B/DVY3yBKrRVWQ
X7YEzauCtI5KLLbEzhsKG8wHci0DWvHziGcvhVZNlY+VVBq+QgA/ofcyvvPfSc0z/IYrkeHsbtT/
BT0I91c/uNnbuKUkk6JbO7Mn+JYvhdwQmQpK002H/c6X6E705MVMLXkVdGUS8cfJRMNz4kkYQcl4
pw/n+tuTb/TLPxFf5OPbunT+h6kaKZn/RabO1P9RonY2HoQxNZUX1R35Qelj96JCagsNosrxtRdS
+YZd8AuBEZu54vSoJNpLtuEAhtsuEzlm6JmRc9d4al/bbXsRXYZ+DeC43Q6gvTrhV8MDvmUJSsxc
o1hqxqMVJ9ThfFeyH3XOHbLqdOzvY7+6mXCYHYtGys2Ua0MabjK5xmXv5gJjb1BLAwQUAAIACACH
Yz1FWzxqOBQKAACYOQAAOwAcAGFjY2Vzc2liaWxpdHkvY29udGVudC1lZGl0YWJsZS1hcy10ZXh0
YXJlYS1wcmV0dHktZGlmZi5odG1sVVQJAAPNsilUzbIpVHV4CwABBPUBAAAEFAAAAOVba2/bOBb9
nl9BNNhJO4hsy6/40WbRvGaAnc4WdbYzwGKxoCzaZiOZrkjHTrP573v5kiVZctSpHDRogta2xMe5
l/fec0g5r2ciDE4PXs8I9uElJAKj8QxHnIg3R0sxcXpHcJmLu4CcHgwCOr85RoNbyqkgPro/QPAj
yFo4PhmzCAvK5gM0Z3MyVLc8FvkkcjwmBAsHyF2skQ/viT88eDjQw5lBxixg0QAdNlp9da92RQNy
QScTc9/D45tpxJZz37FNJz35m5xIz8BZQH106Pu+vjdhc+FMcEiDuwEK2ZzxBR4bgCGOphQguyRE
DX1pwcA4ZUdEArDolihAMzeDtNVq5YzP8Zw7nER0krjJ6Rei5khO6gRkIgaoUevY6z7liwDDIHQO
njEIV9QXM+jcaPzN4MO+T+fTuKfGZpZGvkuvjoFL5zMAJeLmM3ZLooxFnU5nWORsQrQbanJNfoO5
uOk8CRgGMyI6nYn0yslW52A+BlvsVAxcTwWY2MiYLLAXEGdMgiBlpaPGTXlpNQPrHLWGMtRWEV5s
kI3IWK5dYdCozumQyYaLiVnrdwioxmKtZ7hcL2B5YXwwjRyjmnzJWlgIj1OfeHfyf6SgngVsfPMe
R6IGpg4mNOLCGc9o4Bc6Vk43gv7HuwaLSAhLe/zIfGYO634dcI4nm6TCrmOjDqJF0DEOHBzQKeSG
YDlmRURG+q947gfEusOMI10oP8+IXtBNPI+XEZdLI2FnMxB7sDpLu2IwZxw4OnkUvF0oUnG+HQ7T
iNwNM4FZ6zy2XtrFqCbYo26uTSIWZpxt6qOcQ3r992XokQiiiSSjS1+1wLfLqInafj9VAG265JVB
m8ntdju33CRXP64xcqCOTgGdBnHBN3FgwjMvRDTcVDi1TMFKGK5MzC04miQK3bKjSC0imZ0SpnGg
rSYmaqwhqVyFTo7OVnUL/Kk+gh0RwTeOvKAB0RBPSWplBqgZO9wLsPSibDiG0gAYAIp5h7J2b1al
1+4X1t4JmWwKgAwrGDGmx0Q253T1J366Kyw2L27eJ/3hLk6PRzJVJonDZEUxXfv+1gDIJ0FxD9J/
FE39ZzRaLhYsEsC0kYlkcGoYkrng6Oc6zIeXYsa0vzUbSzEDUS8gTsd2pVQH1aaA/+M2EgyGkFCN
bTnr2sCW5QYHwblFkNu6qbksxGsnQ+8h6AJzqdmIeSc7Nfh95zxxZscpnZomD2eNLYimTWdFvBsq
HBHJtNOe0MBRrcmHCTPaxuhDLrBY8rOlBxwe82FNZk8uHNlFMBZ4OErft1NPAqIydHMjZF/iq3Fx
auk8NjpKvrVqQb4vloRFlWOnlNuExYSuiR7H1ONG2qQaVhpEp9k2i68o1IIoE2rxmF8cOvfJGorU
DtM2RJiAkGeXKUYpeuuZKjaXME3C5lITzOex9aNAuxugrg5iS0L6kwJr3scMZj7GgGNllpqaTiIc
aoSZPEnLiESOnBdU2m3f3IHWZCvD9SQA4QiauQQxdftXm/AynFxwUzkifS+Wkf62PE6LYzOGdt92
DBdKAt/WWT3NW1sU7Fankbx7bTkysyfpntiCtg1zR5Ikdjs8xFrLJ2vunEVweVhQZYz9UoLxvMm1
HTavG3lNAuyRYIAnkGHHW931dTWIIuQ5mPoC/Q+9GB7ERJyg72zvAINCZxNH3C1I7lAvChGZhpkt
7owEqkDGYhRLMVrAUYch4dwKj0I/5y1LIjtGqlCXoUKgGBBEt5Qt+Xl8BcTsFzI/T5BlHs9byZGl
mCS5yFoOUasiwdZ289lEoikiLcuBpdCY0ACNQ4TMiRRdGNlXIPqSPOstIavmybpj+d2nt4MJGxsf
sqWQ9SKZfl6wVExibkG8TAALMJhrDUmSpRoFNMz1jOiZ6oZpp4Bf2iAYEnDP061NqHF0S7GsyeKd
iQkA60VsBQsOSmCGoa8RRVTUpAiK7Wh3jIqPpYj5bKuDFLLyXyNNovZIJ6vxQ+rDLksbJheI2813
DqOADmMc34LvwQMkwyvJnd4W1TluraUl0+bww7J/zhocXlxcJFL6sHd1cdW5yq1PIC7zo/jy8jIP
9YCEC6hQqcU3Mi3TsgZvAWkq8y/7vUbP1K1xQHD0XyUP7FZAXlHbppls8rpuTt1e83FEF7Cm0fjN
i5kQCz6o1/EnvK5NGZtCpwXlMnTVtXpAPV7/9HlJoru6W2vXmuZDDaRl7RN/cQrjqvFOUXrkMfOJ
I9eQrKDd32Gl5WK+afcSXQCUOSj0mH8HL5APgBtz/ubI7gTkeeHMPa1/hPWEmlW/wALXL/8Y1f8g
3j+oMC9nSxr49Q/Au5iTOkQKuNMRBCosbN+XgeB1PB5DdFOPBsAJdRP6DvGpPirC3LGa1wEls8RB
TawF4HPTsBKnQkfbd9Ruvei63MUjPoMp/EwTuYVBqdMfdUoKjGpbqH3/RkwcnXbAiXD/NNUK0vvx
NmDl0am5AwsAML4ZTLcEmO5TgTkpAeakGMwHJins7Z/2VUoaKXqyINVLEmoiA6VJ6va2QeWiRG9n
H42SRLudLumVcMlPc48vhsV++YiBiqRDzJuZ1LtftXJl0fYrQLtiUeA/umRppwMXPO5x02inATvA
sRLrUuxuVM6sKiOxqnrlNkr4o/+IP9DLVaTr9asBEtGSPOekdN0K4nwkIqkKVlTMEGx9phApe8tL
t1lRYu4HXasCdG8F+BPkOmzd+VN6tl0B9vv9QOtUAE3K0bd/nsWy+FwKWPQG/fR5ycQQ/Ru9vDn/
RV0cyX3UBajGMfnwy9mr/6CXcuugfl/p1sP9mNmtzMwrmBtskz97WpKTirBu8F6pfT6gvqagsffk
4l7lsH+Xx3k2jBR05wML8XyvkdKv3IwR7CDBDLe7H8TNRqWIP8KuHBh42/do775vuhVZ8rAnfM0K
q0hE/nKxdPdbLJtVUO2DVAL7KZDN9g/BWc3O8+GsZvdZclbz5Ck464wF/l4DpffsKKv/RJS1b9e3
Gt83Y7XcH4KxWtUR8zvK+QJ2grBFhPjfE9xKCPa7P/4qOBPadbCBvv78oFrI7rccHqD76iTFhrXv
8wmx3B5pq56XVvhQkqrLeqTl4HfhngQnfJ13kh0rdc5W1UEPz/IQuFVGmBccM6oUU3Pqb+b5ZP2y
8WqAGtU+PWqVEdUFZ415EE8AolsxxDJauuBIUT/ikhVJYZQ9lBfvG8eo+01BZV686Pt8Xtoqo4Hd
HQ8pz2Qac+U1U9Hv7x231lA/xyh++3CM7lub662uvf5QcRSUkcjujgedI/slNfUFN2uThFwx0nYZ
Dez2SiJVj8Ke83OfdhWS+18LH0uP3GYeE37e0xOKdvOHeSjr9v+S25/xs9l2me1Gc4dYf/92NEJ8
qb5hM1kGwd17+Rd/PqI89yntN6ItIyKa7lN93aRdRjA0d2ia68vRNTr/57v3v11eX1bAwPZFfaXq
dV3/Qeb/AVBLAwQUAAIACACHYz1Fj2GmTdwAAACFAQAAVwAcAGFjY2Vzc2liaWxpdHkvY29udGVu
dC1lZGl0YWJsZS1zZXQtaW5uZXItdGV4dC1nZW5lcmF0ZXMtYXh2YWx1ZS1ub3RpZmljYXRpb24t
YWN0dWFsLnR4dFVUCQADzbIpVM2yKVR1eAsAAQT1AQAABBQAAAB9kDFrxDAMhXf/ikfmo9D2ptuO
I0tpuUDc0lUXK4nBtYtl98i/r1LI0CUghOA9pO/J2NkLCkvRPlMBYUixsJbzhW6BkXnyKeLuQ4Bw
dKCI8+cHhcqXmeLEiKn40Q9U/nwzR7z0+OIyJycYU8aw+nycdPDBZTVQZlRh92DMNULqMLDIAUuq
2yFWFOHsWZBGNN257xtdKkITq3NMIaQ7O9wWNLbtLS7Xt+61tW2jO837tyONgJ8V87TxnmA16eOu
+rSrPu+razualXXLNNYQlo6yZsX66VzZmH+8xvwCUEsDBBQAAgAIAIdjPUWcgnb7IAEAACYCAABV
ABwAYWNjZXNzaWJpbGl0eS9jb250ZW50LWVkaXRhYmxlLXNldC1pbm5lci10ZXh0LWdlbmVyYXRl
cy1heHZhbHVlLW5vdGlmaWNhdGlvbi1kaWZmLnR4dFVUCQADzbIpVM2yKVR1eAsAAQT1AQAABBQA
AADNkE1uwkAMhfc5hZVtGEaoPUAoZNMfgZoIunUmTjLSMFPFnhJu3wGB1CN0Y3vx/L5nK6VAH4KL
J2K9RUFdHWt9pPbNyr29ROs6/UmOkEk7vIQoSohFTcTRCWs0hphta52VizbBC3lR1FnB1pFiEmW9
pyltzaIGSiMmA4XzD7pIygexvTUoNnhF8zcZoW4ps2RFUfyzeGgkoruFK0tQq8UTFKvFM5RlVmTQ
jJbhCk91RAGEO+5Bg4mGZANn6xww+Q7Qw/rrcAVtRvQDwV8cnEfy8FrDiWQMHUMfJjBXnfVDGtLp
UxLgRBA5/SyDDHYeON5OXkB6xgNFKQzTZIkh9JDv13WdJ1tmHCgp++BcOFMH7QXypqob2Ow+9u9V
U+XL7BdQSwMEFAACAAgAh2M9RWiAY9/bAAAAhAEAAFkAHABhY2Nlc3NpYmlsaXR5L2NvbnRlbnQt
ZWRpdGFibGUtc2V0LWlubmVyLXRleHQtZ2VuZXJhdGVzLWF4dmFsdWUtbm90aWZpY2F0aW9uLWV4
cGVjdGVkLnR4dFVUCQADzbIpVM2yKVR1eAsAAQT1AQAABBQAAAB9kDFrxDAMhXf/ikfmo9D2ptuO
I0tpuUDc0lUXK4nBtYtl98i/r1LI0CUghOA9pO/Jzl5QWIr2mQoIQ4qFtZwvdAuMzJNPEXcfAoSj
A0WcPz8oVL7MFCdGTMWPfqDy55s54qXHF5c5OcGYMobV5+Okgw8uq4Eyowq7B2OuEVKHgUUOWFLd
DrGiCGfPgjSi6c593+hSEZpYnWMKId3Z4bagsW1vcbm+da+tbRvdad6/HWkE/KyYp433BKtJH3fV
p131eV9d29GsrFumsYawdJQ1K9ZP58rG/OM15hdQSwMEFAACAAgAh2M9RblrFkf4BwAAHBkAAF0A
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
/gV1F0syAqSAOwNFgGHh+l4xJUc4jgHdNKIMasLIQT8gCbWfiiA7oAMpdIXUt4MtgUdwuwzw/hlD
EgYFVzQFrGp8BdDrVJiFaq/Agklb8cZ3o8vTGXOfHxrX93wEkOzM6xsOan8cckJAO4WXMp8Gjv3G
5e13RSTLFTgbhG5bokADTcFJrwy44fLWzUCgQB//09StgTstbaad7F+2XGZw5Xjd+FcNn7zB5uth
mx8zqi9AUjnyw54oPVjgJrfVxLSjjAGtFgmCLT7+8ZvGyV2GC2DQJlqgRMBd6B8blBO4OSbSXC1j
LacT2nyjEyAAtqNKkiTs+vzbnHH9BmdM3w6Ab1Nm+gZlZsPK/FpAJTJ5fIUgw30ACIRINydEIp6i
7/6suFp9/rjZ2CfkOh1Yk3Ldo0NfHh2c2ON684jufv3580/rx7UdCr8F850fQ2tAEeYfRf4PUEsD
BBQAAgAIAIdjPUW9tOCTtgAAAP0AAABBABwAYWNjZXNzaWJpbGl0eS9jb250ZW50ZWRpdGFibGUt
dGFibGUtY2hlY2stY2F1c2VzLWNyYXNoLWFjdHVhbC50eHRVVAkAA82yKVTNsilUdXgLAAEE9QEA
AAQUAAAAVY7BigIxDIbvfYqfOYvsYWH1qDK3XRyYeYHaZrTQbaRJkXl7o+JBCDn8fP+XuL5IqyTQ
i1dbSSAlXa+kiGxxYUUmH6EMj1C9XJCKgYTAkV61SEpBBWk2Rv0pE8wTuCjZxPSM1ti3MzY/31/b
tXPHAmkhkMgKCzfcUs4QIhMI1WSXeUY37Maxw79R/kxGzpwz3yjitKCb+nHC4fg3/PZT35nTPfC3
dm45L4OvYrQ9o7WRcx8V5+5QSwMEFAACAAgAh2M9RZG6yXINAQAA7wEAAD8AHABhY2Nlc3NpYmls
aXR5L2NvbnRlbnRlZGl0YWJsZS10YWJsZS1jaGVjay1jYXVzZXMtY3Jhc2gtZGlmZi50eHRVVAkA
A82yKVTNsilUdXgLAAEE9QEAAAQUAAAAxZBBT8MwDIXv/RVPvXZpmJgE3MqgJ0Cb6ATnNPW2iNBM
s6Nt/x6r48QfQIocyXp+/p6NMbAfKeZvYvvsxNn2s7Of1L8E+f2WOcTBvlMkx2Sju6QsRojFHIlz
FLbOe2IOfYhBLtanUUjfEMT1kcy1+j35L+NdZmLjj473hs4H8qqr5SxFVVX/BuK8ZBcnjKaBmc9u
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
c3QtbGV0dGVyLXRleHQtdHJhbnNmb3JtLWNhdXNlcy1jcmFzaC1hY3R1YWwudHh0VVQJAAPNsilU
zbIpVHV4CwABBPUBAAAEFAAAAFXOwQqDMAzG8Xuf4sPz8B3GcKcNBX2BTNNZqHY0Kc63X2TssFsh
v/zTSd01ZFFEVuUM5bdCM63iU14wUhEWkAhnBa0THjRB9xfbSLTGMAex5/qVIIyZZK6da1dIGUcW
OWFPBVuIEcIHsVawaPKounPfV1hM0ZNN+hRj2tjO7KiGph9wae/drRmaypru4L+sLzHuHWUxbX/Q
XNi5vxXnPlBLAwQUAAIACACHYz1FnvuhiPkAAADUAQAAPwAcAGFjY2Vzc2liaWxpdHkvZmlyc3Qt
bGV0dGVyLXRleHQtdHJhbnNmb3JtLWNhdXNlcy1jcmFzaC1kaWZmLnR4dFVUCQADzbIpVM2yKVR1
eAsAAQT1AQAABBQAAADFkMFOwzAMhu99il+9dmmExAMUWLkA2kQrdvZal0XK2il2tPbtSTfEK3CJ
I/nT5982xsB+TT6eWeyWlGx9aOyBj29Of8tzdL63n+yZhK2nZYpqlEVNYIlexVLXsYg7Ou90sYML
qedZlUPi5gQHGmWYwtl0FIXFdIHkZHi+cKfclzprVhTFvwWhTiP5W4yqgnnYPKJYn6rKzDZF6zXD
6yrDXYZVhj8Z7jKQCAcFjT2O1EOXC6eWaIn25CR9xzsJwm1umSHDboTEW+wN0kK4Ou8hvELJ5pJ2
GpDvn5omRzqN0Dcncpi8n66cBi3I27pp8bL72L/XbZ2X2Q9QSwMEFAACAAgAh2M9RVgLV/WgAAAA
3gAAAEMAHABhY2Nlc3NpYmlsaXR5L2ZpcnN0LWxldHRlci10ZXh0LXRyYW5zZm9ybS1jYXVzZXMt
Y3Jhc2gtZXhwZWN0ZWQudHh0VVQJAAPNsilUzbIpVHV4CwABBPUBAAAEFAAAAFXOwQ6CMAzG8fue
4gtnwzsYxZNGEniBCkWWjM2sXZC3t8R48Lakv/67s7qLz6IIrMoZym+FZooypbxgoCIsIBHOCooj
HjRCtxfbSLRGP3uxZ/xKEIZMMtfO3SOkDAOLHLClgtWHAOGdWMtbNE2o2mPXVVhM0ZNNTimEtLKd
2VD1TdfjdL+116ZvKmu6nf+yUwlhaymLafuD5sLO/a049wFQSwMEFAACAAgAh2M9Rfgv38/0BwAA
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
acrBscIPKOqXpikwZhUdOSsHL+LP2fF9QdFWTYvXw75+q9qqyJ5mlT9/TZs3uit/k/sNediQ3YY8
bshT+Z/1R1nfbzAkkaWmoPm66zeGxMb8OLExH1BLAwQUAAIACACHYz1FvedpcfkAAAC1AQAAJAAc
AGFjY2Vzc2liaWxpdHkvaGVhZGluZy1sZXZlbC1kaWZmLnR4dFVUCQADzrIpVM6yKVR1eAsAAQT1
AQAABBQAAAC1UMtuwkAMvOcrRrmGZYXaD0gfObUVqInas0kMsWQIineB/H2XwC/0Ykue8YzHzjn4
n0Hjgc2/UyBf/db+l7cfEh7tNYp2/puVydgrTUMMLrAFN7JFDeapbdlMtqISJt8zdXLcO+Uzq+Pr
idvA3TJcQ1YUxf+6URsi6exVlnCrxROK1eIZZZkVGZpeDDetVHsKeOwaejozCLMGDhTaPo0ThyGH
k0orAR3vKNnjTBoZw4gUbEZ0umFy5A40Ct0PudOWGTKsj7A4n7xACoOLqML45mc8ChuGHfLNS13n
SG8x2nNi7gbV4ZI0txPypqobvK2/Np9VU+XL7A9QSwMEFAACAAgAh2M9RcWAQ5LTAAAAqAIAACgA
HABhY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwtZXhwZWN0ZWQudHh0VVQJAAPOsilUzrIpVHV4
CwABBPUBAAAEFAAAAO2SsU7EQAxE+/2KUWqIBBwUdAil43SRkh8wiXO7kpM9rXdzl79nw0EBaSlp
XDyPZmzZrXWKyBpztRRhmXo3HRWWZgZBeGbBSLGzGWcNw40ncZ2L6HmgJBEzSWL4AL5cO7KsPTdx
DwqObq8mn7LSmMMETV3HqjdYfMLZiUB5TVMOjhV+QFG/NE2BMavoyFk5eBF/zo7vC4q2alq8Hvb1
W9VWRfY0q/z5a9q80V35m9xvyMOG7DbkcUOeyv+sP8r6foMhiSw1Bc3XXb8xJDbmx4mN+QBQSwME
FAACAAgAh2M9RTqldfTOBwAA3BgAACwAHABhY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwtcHJl
dHR5LWRpZmYuaHRtbFVUCQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAAClWW1v2zYQ/p5fQSTYAgyR
bMd2F9tthjVxMGAvLZZg/ThQEmWxoUSNpBy72/77jm+yJEtJhq5YLZFH8l6eu+eovs1Uzq5P3mYE
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
AAgAh2M9RS470fDqAAAASAMAACQAHABhY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1leHBlY3RlZC50
eHRVVAkAA86yKVTOsilUdXgLAAEE9QEAAAQUAAAAnZLBasMwEETv+opF51LotZRCKIYeWmKwf2CV
rBvByjJaKYny9VUSWkjBduqb0LydWaFpSaIAbjYkYo1lGzPsiAeIdIxge0DYY7BUrn0HdEQ3MMmj
UuseJF3GHiD7BAfLDEJUBoTKgJx5Xa+aRoMrFH5RITvP7A+0BZNBt1XTwtv6s/6o2koXT3XGn+H9
N7/zAV7wFayA1pOqwTAHnPQS/93TnQEjqkkx+v5uZDzmljotj4tomK7E5Vj+0TkMeQS3/ZDipOHW
7id1h/Zfr5u1WbjHbFX+GPwUvEvMucYgpbdFjSGRUjflVeobUEsDBBQAAgAIAIdjPUVZQIWw9AgA
AJ0wAAAoABwAYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQtcHJldHR5LWRpZmYuaHRtbFVUCQADzrIp
VM6yKVR1eAsAAQT1AQAABBQAAADdW2tv2zgW/Z5fQTTYBhhE8juN7TSLaR4YYGd2ikkw83FBSZTN
lhI9IpXY2d3/vpcvWZIlx2lj7yANGkt83nNf55JuL+YyYZdHF3OCI/hIiMQonONMEPnxJJexd34C
zUKuGLk8mjCafj1FkwcqqCQR+vcRgj+SLKUXkZBnWFKeTlDKUzLVXQHPIpJ5AZeSJxPUWyxRBM8k
mh7998gsZxcJOePZBB13B2Pd599SRq5pHNv+AIdfZxnP08hzQ+Nz9VPeyOwgOKMROo6iyPTFPJVe
jBPKVhOU8JSLBQ6tgAnOZhRE7pEEdU3TggM4jSMjDBA9EC3QvFeTdDAYNKwvcCo8QTIalzoFfSJ6
j/KmHiOxnKCuP3LtERULhmERmoJmrISPNJJzmNzt/s3Kh6OIprNippHNmkY9Va1jxaXpHISSxfA5
fyBZDdFoNJq2KZsQowZf2eRn2EvYyTHjGGBkdDaXVcupUVcAHwMWtxUH1VMJELs1yBIHjHghYayC
0tPrVrT0OAd0nrahcrXHDC/Wkt2RUNmu1Wn05KrL1N3F+qzTOzhUd7E0O9wsF2BeWB+gkVPkq486
wlbxBI1IsFK/kRb1E+Ph1884kz5AncQ0E9IL55RFrYpV293B/NNti2UkAdOePrOf3cOp3zicF6gh
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
ADUAHABhY2Nlc3NpYmlsaXR5L2h0bWwtaHRtbC1lbGVtZW50LWlzLWlnbm9yZWQtYWN0dWFsLnR4
dFVUCQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAABtkEFOxDAMRfc5hdXVjDTqAdgV1B1oKhqJ2brF
JRGZBMUOVW+P2wICxObbSX5+/GKs8wxCLDA6Gl+1dygqBBToSlFAz2Pat5oLSCaCA71TPp5AS4TZ
qXgBhwwYAbNHQJHshyJUG3OOwGUcifkESyow+xCANQVVsyeGNEHVNX1fwVVd+ELqnFIIaaZnGBao
bNtbuDs/dPetbSvNNFanYcEs32OySyWofc3VlyXF2myOdjfUOQVaYZrLo3Y3Wm8325b1hvl3yIo7
06A4hH+Cdu/n6nD8J/iJhkbvmRXqC34qISwdZlam9ctzIcX4CWbMB1BLAwQUAAIACACHYz1FwHRw
rGcBAAChAgAAMwAcAGFjY2Vzc2liaWxpdHkvaHRtbC1odG1sLWVsZW1lbnQtaXMtaWdub3JlZC1k
aWZmLnR4dFVUCQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAAC9UcFu2zAMvfsrHnJqYStGsa4Ddkq6
+rQNDZpg7ZV2mFqYYhUi1TR/P9pJB2zYeReSkh4f36Occ6h/xJD3LPUdKdXN47p+5Par13O6zT5s
6wcOTMJ1oGPM6pRFXWLJQaWmrmMR3/rg9Vj3ug9uCtay50GdF+efh5h46/jthTvl7VzftCjL8r8O
p04zhWn0YgF3VX1AeVVdY7EoygKb3gtGanQ9dz+t7kktMM5UsPchnq6WT9DEjAt+5XRZwdKAQ2/B
K3oS0ABKnkCqybdZeV6gwP0AyZPgCmYFBx8CxHjIYvIsiDvMVsv1egZbitAzG3IXQ4gH3qI9YrZp
1ht8uf+++tZsmtl8cvKx+oTyproZnWB0whClpL+VSx9zsP5xkInROJicCdKcEPMUA48Gl08PVn22
fDvhCnfie6H0J9G4hQO35pLpb7IT+Hy6uPwHuf3u0hoLjF7fd7LLIRxXlMSsjn+RMhe/AFBLAwQU
AAIACACHYz1FCcTFGe8AAACOAQAANwAcAGFjY2Vzc2liaWxpdHkvaHRtbC1odG1sLWVsZW1lbnQt
aXMtaWdub3JlZC1leHBlY3RlZC50eHRVVAkAA86yKVTOsilUdXgLAAEE9QEAAAQUAAAAbZDBTsMw
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
Qo9xZNU7Ljl+SWUGme7ZQInw3bPvPRajbNfIKKXIacXDBR+aPuDVfrp3Expvnc59AVBLAwQUAAIA
CACHYz1Fete9jPoAAAC/AQAANAAcAGFjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwLXVwZGF0ZS1wYXJl
bnQtY3Jhc2gtZGlmZi50eHRVVAkAA86yKVTOsilUdXgLAAEE9QEAAAQUAAAAvZBLTsNADIb3cwor
GxbJdFTBAQIlK0CtSETXTuI0I007UexRm9tjUrgCG1t+fb9tay24rxjSmdi9oqCrjrU7Uvvm5de9
JB9690mBkMkFXGISK8RiZ+IUhB12HTH71gcvi/NnPJE942TT1KOQnXCmi9huRh4t3SbqhPqN3MTk
ef6/6thJwrBqlyXYbfEI+bZ4grI0uYFm9Aw/bLUjCuAFVhwo7oFhjKGHqDnR4I6Fqw8BWoJO95up
Bz/oKP1VT5EY8IrLxoCB/QU4rcsWoGfcZ5kIUO3stTUOkB2e6zoDfQirsnYOMYR4VXS7QNZUdQO7
/cfhvWqqbGO+AVBLAwQUAAIACACHYz1F3E+NqIsAAACzAAAAOAAcAGFjY2Vzc2liaWxpdHkvaW1h
Z2UtbWFwLXVwZGF0ZS1wYXJlbnQtY3Jhc2gtZXhwZWN0ZWQudHh0VVQJAAPOsilUzrIpVHV4CwAB
BPUBAAAEFAAAADWNwQqDMBBE7/mKIZdeSv+hFG8tCuYHVt2YQHTFjYh/34XSy8DOvpkJKSsqazVN
VEEr8kIzY6HtpkhSJoh51Y6Ndl4rzlwKBsZY2IwJOVqU/99ZWEEnXQ/n2hV6jCOr3nHJ8UsqM8h0
zwZKhO+efe+xGGW7RkYpRU4rHi740PQBr/bTvZvQeOt07gtQSwMEFAACAAgAh2M9RecZ6nfPBwAA
1hgAADwAHABhY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcC11cGRhdGUtcGFyZW50LWNyYXNoLXByZXR0
eS1kaWZmLmh0bWxVVAkAA86yKVTOsilUdXgLAAEE9QEAAAQUAAAApVltb+O4Ef6eX0Ek6AU4RJId
23uxvZviNnFQoPeyaILex4KSKIsbStSRVGxv2//e4ZssyVKSYm9xa4kcks/MPPNC7cdcFez27GNO
cAo/BVEYJTkWkqhPl7XKgptLGJbqwMjt2YrR8vkKrV6opIqk6N9nCP5TZK+ClCRcYEV5uUIlL8na
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
egvrqvVunebKEYuxK2OIX2He3yDSMpjvxtPaKwDKfCgMWbyBH8gHwI04f3duTwLye2Ea3Pr/hniC
Zvn3SCB/8dOj/xMO/0GE+flQEhr7P0LdRRz7wBRwpyswKCwc30squI+iCNhNQkKhJvjq0OVmaBW4
0LeUiHpiLQBN0ARR+wZ0vjuizuZ9z+WZ3eEpNNFxa4o8sDiNbz3qmyjUTztDnfK3rcP57SW4DMZv
G7MgmQ/PgYJ8fmtGwN0A46vBXB0B5qofjKxngVMwWSne//yj+ZVP3xbm9AiY00MwBREa35O+aENU
P3WgtTyUflfDu+Ycxx59qD3Intq8vQ6ZHeGQv+YhX10f8kqMdQIrqX3/8339Vs34okgeiz8YvIEB
BwPYDAHUh8P+N5P2gt+Dix0RpS9x/rcl6VtJXBAc4ZweClTeGX4DXQmGxwANDgH9IylLMHojaRke
ZPfwt5GW8Z9BWnqY+yXe/51qy+QY74z2e2f0LbTlmEavh6w1oH8obbl6I20ZHWT36LfRlumfQlsm
X+3936m2HNNWB3sOZx/fPz46vFTH06SkdPNR/nOZ2CHcEUWJ31Zghsf00MHVtzpKDo9q+vac0p4W
j0/O3b9++Pj94mnxNfxp/ajvETe+/tdM/wdQSwMEFAACAAgAh2M9RQEl29irAAAA7gAAAEgAHABh
Y2Nlc3NpYmlsaXR5L2luc2VydC1zZWxlY3RlZC1vcHRpb24taW50by1zZWxlY3QtY2F1c2VzLWNy
YXNoLWFjdHVhbC50eHRVVAkAA86yKVTOsilUdXgLAAEE9QEAAAQUAAAAVY9BCsIwEEX3OcWnGzfi
HUQKLhQLyQViOrWBmEhmQuntnRZcuBkY/vtvGOPmyBBiAWVulXSZvSBmpioxv+DBlCgIjSgfiSVr
JgU+4+ruN9g9hM43ZcFYiPNBEHxj0m6onueTMY8MbiEQ8xFraVhiSiqmXV+jni0TuuFsbYe3Uv5F
Sk4lpbLo5eeKzvXW4fK4D7fe9Z06zYb/tFNLaR18ZaW3j2ojY/4qBuYLUEsDBBQAAgAIAIdjPUVj
lH/+BQEAAO0BAABGABwAYWNjZXNzaWJpbGl0eS9pbnNlcnQtc2VsZWN0ZWQtb3B0aW9uLWludG8t
c2VsZWN0LWNhdXNlcy1jcmFzaC1kaWZmLnR4dFVUCQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAADF
0E1uwjAQBeB9TvGUTRfBWKg9QPoTqVJBoCYqaxMGYsnYKDMW5PY1hp6hG1uyZ/y9sVIK+ie4eCLW
H0aMbrat3tLuy8pje4vW7fU3OTJM2pkpRFFCLGokjk5Ym74nZruzzsqkrWcaRXFq6IX2KpzFBq+s
l/A4VL2JTKz60fCg6HrOhXO5SlFV1X/nMb1E43KauoZazJ5RLWYvqOuiKtANlnHTQJ5jEiGDEdwR
648w+JNwl3CTYDw+u9USbb5EWk/kBftA7J8EOUHqzRHmBQqsPTjmQWZII+JinUtPUwZGm+BwQLl5
bdsS6bPYHClVHoJz4ZLs3YSya9oO7+vVZtl0TTkvfgFQSwMEFAACAAgAh2M9Rao7bL2qAAAA7QAA
AEoAHABhY2Nlc3NpYmlsaXR5L2luc2VydC1zZWxlY3RlZC1vcHRpb24taW50by1zZWxlY3QtY2F1
c2VzLWNyYXNoLWV4cGVjdGVkLnR4dFVUCQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAABVj0EKwjAQ
Rfc5xacbN+IdRAouFAvJBWI6tYGYSGZC6e2dFly4GRj++28YN0eGEAsoc6uky+wFMTNVifkFD6ZE
QWhE+UgsWTMp8BlXd7/B7iF0vikLxkKcD4LgG5N2Q/U8n4x5ZHALgZiPWEvDElNSMe36GvVsmdAN
Z2s7vJXyL1JyKimVRS8/V3Sutw6Xx3249a7v1Gk2/KedWkrr4CsrvX1UGxnzVzEwX1BLAwQUAAIA
CACHYz1F9dgSMdkHAADyGAAATgAcAGFjY2Vzc2liaWxpdHkvaW5zZXJ0LXNlbGVjdGVkLW9wdGlv
bi1pbnRvLXNlbGVjdC1jYXVzZXMtY3Jhc2gtcHJldHR5LWRpZmYuaHRtbFVUCQADzrIpVM6yKVR1
eAsAAQT1AQAABBQAAAClWW1v2zYQ/p5fQSTYAgyRbMd2F9tthjVxMGDtVszB9nGgJMpiQ4kaSSV2
t/33Hd9kSZaSDF2xWiKP5L08d89RfZupnF2fvM0ITuAnJwqjOMNCEvXuvFJpcHUOw1LtGbk+WTJa
PFyg5SOVVJEE/X2C4D9FdipISMwFVpQXS1TwgqzMVMRFQkQQcaV4vkSTcocSeCbJ6uTfE7ud2yTm
jIslOhtPF2YuvKOM3NI0dfMRjh+2gldFEnjR9Er/aR5kT5Cc0QSdJUli51JeqCDFOWX7Jcp5wWWJ
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
AGFjY2Vzc2liaWxpdHkvbGVnZW5kLWNoaWxkcmVuLWFyZS12aXNpYmxlLWFjdHVhbC50eHRVVAkA
A86yKVTOsilUdXgLAAEE9QEAAAQUAAAAVZBBa8MwDIXv/hWPnDYog+3YW9l669ZAwtjVtZVGVLWH
5bTk389u2FgvQkbve3qW6UdWZNJc6mgz3MjiEwXEARZXFsGBcGHlgxByLCrC5gsjU7LJjTMeNC4o
BzirVDAXQ05RQEJnCmWiZajsaQUuK2yonomsG8k/GrMP0Mk5Ul1hjtOyVak6KSUmrWGadtN1Dc5F
ZY9UlEMUiVfyOMxo+m3X43X/3u62/bZ5MsYMTOKVMjypS/ydOYZ1Sf72//kRM4TDCbtSjNCRgl9O
gOc1NCcOR1ysTFTRz6X5g+6BlzUyZ7kp+6W5udbcv/8bJpG5tUlL7Hr3NJExd9mN+QFQSwMEFAAC
AAgAh2M9RXGWWFcPAQAA4gEAADIAHABhY2Nlc3NpYmlsaXR5L2xlZ2VuZC1jaGlsZHJlbi1hcmUt
dmlzaWJsZS1kaWZmLnR4dFVUCQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAAC9kEFOw0AMRfc5hdUV
KJmOKjhACmQFqBWJKFtn4jYjuRk0dmhzeyZtuQKbmcX3f//bxhiwn4HHI4l9QUVb7Wq7o/bV6+17
Gj139oOYUMgyTmFUoyRqIsnIKhadIxHfevY6WaYDDZ1xfbJFGgxGMj8+yUyGzt/klLqlnjXL8/w/
s9HpiHxJLkswq+IB8lXxCGWZ5Rk0vReYyentUeEPAWEPCCfPDC3BjQUa0hTB+gt6TxGj6ye4k3C1
+gFcqptsLgwaA0Pqf6QhKZJE8R0V4FMEDjMzErqeuvsMMtgMIONlowLSrtdcoZklFD3JXGexXdf1
AtLVBA+UJveBOZyog3aCRVPVDTxv3rdvVVMtltkvUEsDBBQAAgAIAIdjPUWK+nkl/QAAAJIBAAA2
ABwAYWNjZXNzaWJpbGl0eS9sZWdlbmQtY2hpbGRyZW4tYXJlLXZpc2libGUtZXhwZWN0ZWQudHh0
VVQJAAPOsilUzrIpVHV4CwABBPUBAAAEFAAAAFWQQWvDMAyF7/4Vj5w2KIPt2FvZeuvWQMLY1bWV
RlS1h+W05N/PbthYL0JG73t6Vj+yIpPmUkeb4UYWnyggDrC4sggOhAsrH4SQY1ERNl8YmZJNbpzx
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
Mn+9uBpfOd6KGcHiv6Y98FcBPWKuTZkWeTdyX93eyVjQEmIq4venmVKlXI5G+AvehRvON7CopFJD
14yNGI3k6MsfFRH70SSchZfuJYTWMvwiT69hX7PfNWrvHPOEBDqGZAty/4RI62C+n101loBS7kNh
xJM9/EA+gN5Yyvfn/iagvxdmk+vRbxBP4KzRLVZ4tP79fvQ7iX6iyv18rChLRv+GuoslGQFSwJ2B
IsCwcH2vmJIjHMeAbhpRBjVhxMiG6PDoDySCFAH0uoGGm/5qBI1MhVmodgrUm7S1anwUOj+eMZf1
oXF9iUeAt868vr6g9pcfJwScUngpc+8/NBPn198XkSxX4EkQum6JQo43BSe9MlCnz6/dDEQB9PE/
Td0aoNLSZtrJ/t+Wywx8/LLxLxo+eYXNl8M2P2RU326kcszmEYB4Cg3BljKGIoIcFDxffvgPyihU
HxFne/SD5HYpha0BbbBME6ngDAH8DOHDEVAz9Kc1YEwQKvSe0DjFGUl+7Hr929xx+Qp3TF8PgW9T
ZvoKZWbDyvxaQKExaXqBIIFtNCTRHta9B5E6SN//UXG1+vzh/t4+IdfIwJqU6xYc2u5o78Qe1vcP
6ObXT59/Xj+s7VD4Lajv/BjWApIw/+bxN1BLAwQUAAIACACHYz1FIkA3OsUAAAA3AQAAOwAcAGFj
Y2Vzc2liaWxpdHkvbGluay1pbnNpZGUtYnV0dG9uLWFjY2Vzc2libGUtdGV4dC1hY3R1YWwudHh0
VVQJAAPOsilUzrIpVHV4CwABBPUBAAAEFAAAAHWQMcvCQAyG9/sVoYuLCDq6iXT7xEJvcL1qasMX
76DJWfvvzUEHHVxCSJ73fUOcH0hAUdTqEBSmASMEYIr/YBuKQje0QZdVU1wDGfgkoY7RZC8tkCgx
Q3gG4lDmfRrNDBfNxrlzBMnXK4qsYU4ZpsILFl/BkVAg9VA1h7at4GFUuKORfWJOE96gm6Hydevh
eD41f7WvK/N0BV8ithsltWC7ZXW4+NLvTZ62q09q94PaLdRyYp+Z5yaMYsnlN2NG577inXsDUEsD
BBQAAgAIAIdjPUXVzhQN+wAAANEBAAA5ABwAYWNjZXNzaWJpbGl0eS9saW5rLWluc2lkZS1idXR0
b24tYWNjZXNzaWJsZS10ZXh0LWRpZmYudHh0VVQJAAPOsilUz7IpVHV4CwABBPUBAAAEFAAAAMWQ
S27DMAxE9z4F4a2tCEF7APfjVVskqI1mTdtMQ5S1ipDK5/aVkvQM3UjAcOZxJOcc+I8g8ZvUP6Oh
bzed39Dwwna7HiPL5N9JCJW84DlEc0Zqbk8axdTjOJIqDyxsZy88fzmelSdyQzQLs/szCKXgyRyd
fmg0mhZ2sqKqqn+ogKNFlEuBpgG3rO+gWtb30DRFVUC/Y4W8IJ07NDjuaAaEzIU0uaKTcIXXwMl4
4AseMj6b1FgE8IAsmPVt2CcY3TKLAgpYzaDxUqyG9CY45oRSJivtmRTCFsr1Q9eVkH5H8ZOScxtE
wpEmGM5Q9m3Xw9Pqbf3a9m25KH4BUEsDBBQAAgAIAIdjPUXpOI1AxAAAADYBAAA9ABwAYWNjZXNz
aWJpbGl0eS9saW5rLWluc2lkZS1idXR0b24tYWNjZXNzaWJsZS10ZXh0LWV4cGVjdGVkLnR4dFVU
CQADzrIpVM6yKVR1eAsAAQT1AQAABBQAAAB1kDHLwkAMhvf7FaGLiwg6uol0+8RCb3C9amrDF++g
yVn7781BBx1cQkie931D/EACiqJWh6AwDRghAFP8B9tQFLqhDbqsmuIayMAnCXWMJntpgUSJGcIz
EIcy79NoZrhoNs6dI0i+XlFkDXPKMBVesPgKjoQCqYeqObRtBQ+jwh2N7BNzmvAG3QyVr1sPx/Op
+at9XZmnK/gSsd0oqQXbLavDxZd+b/K0XX1Sux/UbqGWE/vMPDdhFEsuvxkzOvcV79wbUEsDBBQA
AgAIAIhjPUXcY2KQ0QcAAOMYAABBABwAYWNjZXNzaWJpbGl0eS9saW5rLWluc2lkZS1idXR0b24t
YWNjZXNzaWJsZS10ZXh0LXByZXR0eS1kaWZmLmh0bWxVVAkAA8+yKVTPsilUdXgLAAEE9QEAAAQU
AAAApVltb+O4Ef6eX0Ek6AU4RJId23uxvZviNnFQoPeyaILex4KSKIsbStSRVGxv2//e4ZssyVKS
Ym9xa4kcks/MPPNC7cdcFez27GNOcAo/BVEYJTkWkqhPl7XKgptLGJbqwMjt2YrR8vkKrV6opIqk
6N9nCP5TZK+ClCRcYEV5uUIlL8naTMVcpEQEMVeKFys0rfYohWeSrs/+e2a3c5sknHGxQheT2dLM
hQ+UkXuaZW4+xsnzVvC6TAMvmt3oP+2D7AmSM5qiizRN7VzGSxVkuKDssEIFL7mscOIAFlhsKUCe
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
AAAAAIZjPUUAAAAAAAAAAAAAAAAUABwAY2FudmFzL3BoaWxpcC90ZXN0cy9VVAkAA8uyKVTUsilU
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIZjPUUmd/LiKAEAANMFAAA7ABwAY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5jb21wb3NpdGUuZ2xvYmFsQ29tcG9zaXRlLWFjdHVhbC50eHRVVAkAA8uyKVTL
silUdXgLAAEE9QEAAAQUAAAAnVS7bsMwDNz1FYTnJv9QBN5aJED8A4pEO0Jp0RClJP77ynkMBTrQ
WQzQuOP5yDNNh5LB2XixAgPxydKOx4klZNxPmGzmZPYRpDiHIh8wc4FrIAJBBFufKaAA99AcPo/H
BsaKsgNWZM9EfEUPpxmarj12sNt/H77arm22ZgGDy7ftv5qBIwSBxhHa1GjBPM1arHBJDjd8QXV7
XwcV4r1exXtKhfiOkJ71clTyW4b0tKdQDcb0jtIa3o3VU6YwnLN+KWOhHCbS58UlRPUulniQVTf3
Nv3omz+cRv1fQZw2nv2A6yinktQiZ5v85v5h+hT1eR3Dh77HhNGpfeDNUZFaqW0UdW+xuTzKVVNV
L7mMIS7vXyF63t++EM0Hm6Se1YrLqaAxf26rMb9QSwMEFAACAAgAhmM9Renod+7rAAAAvQEAADkA
HABjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5nbG9iYWxDb21wb3NpdGUtZGlmZi50
eHRVVAkAA8uyKVTLsilUdXgLAAEE9QEAAAQUAAAAxZDPTsMwDMbveQor1zaNBjxAYesJUCdasXOW
eiOS11S1w7q3J+PPBXHnYsvy588/2xgD9jVSOiHbjRNnm11nd7h/DPKdHlKgwb4goWO05C4xiRFk
MTNyImHr3fju2E5vgcJkry22N0Pl42mKHASrI8W9o/VPbXCZ0AsOlSyiiqL4BwTnJTn6BKhrMKvy
FopVeQd1rQoFfTaAL0/4NdlOODuJs4J2BE7eI3MJmQjOgQgYEVyOc0CGeAC9ve86Dfk2dkfMykMk
imccYH8B3TddD+v2efvU9I2uFFzV4GWp/twa4giBQfv8iFmrD1BLAwQUAAIACACGYz1FwE7bHCcB
AADSBQAAPQAcAGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbENvbXBvc2l0
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
cG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3ItYWN0dWFsLnR4dFVU
CQADy7IpVMuyKVR1eAsAAQT1AQAABBQAAAAKUEsDBBQAAgAIAIZjPUU+CQRDAwEAAHgCAAA4ABwA
Y29tcG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3ItZGlmZi50eHRV
VAkAA8uyKVTLsilUdXgLAAEE9QEAAAQUAAAAvZBPT8MwDMXv/RQ+bipemgsqt4o/4gASEkjsnKYW
jciSkjhi+/Z06QQdaBx3sZP3i/2egoggXr1NG4riVrESd+sXsab2wfChXSdjO/FMllQkYdXOJ0am
yBgoJstRaL8ZfDRs3JvQ1gyo+3EE2x067zCy0u8jQuX0OOUD0nYgzdSteMtFWZbnT6A0J2Wzf9MA
ygt5BaWEpilwcR/U0BsdH9WOQoEAi3Gs9wGqVVXlssxq65PrItRV1i+rH5LNAzmQ++so/FmZ1ZML
MtXeMTmOT4P6SARyRn6tP22RyfQx3kG9t6nnJvMYcoohj2P8HyXTLqjPeDM9OWLfx8Mht7EsCyi+
AFBLAwQUAAIACACGYz1FvZee9Y8AAABUAQAAPAAcAGNvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnkt
bm9uLXN0YWNraW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dFVUCQADy7IpVMuyKVR1eAsAAQT1AQAA
BBQAAAB9jrEOAiEMhneeouOxGFgMu4OLic+AQAKJKQhcjG9/R4nKmZxLaf+v/P2nc9bJB1Mu+uUy
A5g0Gh8ziIMQVHgTb3FGW0AJko/iA4wPd5sdglyndf61I3HvN0ETsTqs5Zr0Y3Ygv2BrvWtPIMUS
aogIqp1Qw4ExgewJ5CbB3xQEbdbPcuobI3p3/W2VM87YAlBLAwQUAAIACACGYz1FNmWhDgcIAAB5
IgAAQAAcAGNvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLXBy
ZXR0eS1kaWZmLmh0bWxVVAkAA8uyKVTLsilUdXgLAAEE9QEAAAQUAAAAvVprb+PGFf3uX0HYSJ0G
JkVakqPHrouuHw3QJC3ioPlYDMmhOOshh5kZWdI2/e+986JIirQNVNosspI4r3PvPfeeO8R+yGVB
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
mvy5WiopUm8T/+OnC3znViy8f26gRBB9DmE8wfQDco5h4W2JLVcDYHniXo5zm1hoFC9hvZFKRLxD
dIDriU8lrcPOY1KBVwbKwRtknCl/kxAYMG+UMq2zH3+vgEKPtzD50YJ9+QqKOA11Nznc7HBg8aBD
kH8iD7d+Cp/UjghOpvIovwa8RbSyaOm2hZOVQQ29YuG8J/F7aUp9Uo3/Jx9pRvrX2F8FWq/D/snS
frHSnu32/S9QSwMEFAACAAgAhmM9RQP1sptWAAAAdwAAADMAHABjb21wb3NpdGluZy9kb2N1bWVu
dC1iYWNrZ3JvdW5kLWNvbG9yLWV4cGVjdGVkLmh0bWxVVAkAA8yyKVTMsilUdXgLAAEE9QEAAAQU
AAAAs1F08XcOiQxwVcgoyc2x47KBUamJKUCquKQyJ9WOSwEsq1ANZCgoJCUmZ6cX5Zfmpegm5+fk
F1kppBelpuZZAyVruWz0oVps9KFGJOWnVIK4MBpsAQBQSwMEFAACAAgAhmM9RYLLadgBAQAADiYA
ADIAHABjb21wb3NpdGluZy9kb2N1bWVudC1iYWNrZ3JvdW5kLWNvbG9yLWV4cGVjdGVkLnBuZ1VU
CQADzLIpVMyyKVR1eAsAAQT1AQAABBQAAADty71Kw3AUxuGTNmqsBtLV6b84dEuUJB2rpNosRUSw
k6T5AEEKgvVjcNAOpd6CqLgrgi7OboKbi4tTNwfxAhxqoIgX4e8s57zvwzlba66apbmSiJhhI1gX
KSqRQsuYzJvzg95uvirdequbbGfJzt5+R6ruYprZtuv5qbPgxFnbjv04SzLPa7up5ySRP/oWmb8O
g6WNI+3z7d4UNas70eiyGA9uLia2Hl7frw5fyqp2IlpBNyxVU1b1qT89vsflsaYNy3/Retb1xkpn
8PuQt9pwCsdxHMdxHMdxHMdxHMdxHMdxHMdxHMdxHMdx/D/66czHpnH79VhRkk9YbwZ3y1HvB1BL
AwQUAAIACACGYz1FnchMuB0BAACUAgAAKAAcAGNvbXBvc2l0aW5nL2dlbmVyYXRlZC1jb250ZW50
LWFjdHVhbC50eHRVVAkAA8yyKVTMsilUdXgLAAEE9QEAAAQUAAAAfc/RSsMwFAbg+z3FYbtRGG22
djUOhjg6cKAoMgYiIl1zbMNqIklGO4vvbqprnWNdbhrS7z/8J4u2qCAycEb65Bw0/0SghBQBIR2A
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
5OpTeZWSV5gjmLGcM2Xwc3JS48bYn9TWuDAO5bUotkabtDUe+iFE0ItPr6ZekFt5IbfujDjA+yRd
Yv9KdWK43ZFXdi/qyiPSYvI4kXnd5tbkcrHK+C+Q62MycoxdIhwJRHGiYf6TWwZRU/0Fm5Y7OaPM
Rk7KNtEt71dmdn6TI7R0/QxBsV3GS0vihHLRCuH5fA4kxusp/6NlTW0Sk3P4n5rP98mAxmtAyyZQ
rs7HU1+NZPCaXEhxvpxq8FFWVGnsunCTmj8VVTwMdzduWKBL772sVFNTFg+KJTswdga811ONxVaY
T65MZQZnrckLDbRS+ou6vmKNV4A8tkuEJtsqskyoSH11P7jCuQWSqlrSfUtq/sYLvqSQnasy0nLd
pXEOx1PzORNdyyI/Gs44+dJ1ve9MVV/MRapq1Y5EppveMyF4yLb8jOwD/Tiql94oOp6uf26gUOw6
fqjB0P4CAcU7/5C5wBP4RyB9SkkzqsXIG+VfuPnjj/8BUEsBAh4DFAACAAgAiGM9Rb9qfKDvBgAA
NmQAAA4AGAAAAAAAAQAAAKSBAAAAAGFjY2Vzc19sb2cudHh0VVQFAAPPsilUdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAiGM9RQAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BNwcAAGFjY2Vzc2li
aWxpdHkvVVQFAAPPsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhWM9RT7FNLjlAAAAkgEA
AD0AGAAAAAAAAQAAAKSBfwcAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9y
eS1tYW5hZ2VtZW50LWFjdHVhbC50eHRVVAUAA8qyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACFYz1FnsnxdAYBAADiAQAAOwAYAAAAAAABAAAApIHbCAAAYWNjZXNzaWJpbGl0eS9hY2Nlc3Np
YmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtZGlmZi50eHRVVAUAA8qyKVR1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACFYz1FTqtOreUAAACRAQAAPwAYAAAAAAABAAAApIFWCgAAYWNjZXNz
aWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtZXhwZWN0ZWQudHh0
VVQFAAPKsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhWM9RQbVgPvgBwAA8hgAAEMAGAAA
AAAAAQAAAKSBtAsAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5h
Z2VtZW50LXByZXR0eS1kaWZmLmh0bWxVVAUAA8qyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACFYz1FNdRmw8QAAAAkAQAANgAYAAAAAAABAAAApIERFAAAYWNjZXNzaWJpbGl0eS9hY2Nlc3Np
YmlsaXR5LW9iamVjdC1kZXRhY2hlZC1hY3R1YWwudHh0VVQFAAPKsilUdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAhWM9RQWQZpLzAAAAyAEAADQAGAAAAAAAAQAAAKSBRRUAAGFjY2Vzc2liaWxp
dHkvYWNjZXNzaWJpbGl0eS1vYmplY3QtZGV0YWNoZWQtZGlmZi50eHRVVAUAA8qyKVR1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACFYz1FtecuL8MAAAAjAQAAOAAYAAAAAAABAAAApIGmFgAAYWNj
ZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW9iamVjdC1kZXRhY2hlZC1leHBlY3RlZC50eHRVVAUA
A8qyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FfT6qdMoHAADfGAAAPAAYAAAAAAAB
AAAApIHbFwAAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW9iamVjdC1kZXRhY2hlZC1wcmV0
dHktZGlmZi5odG1sVVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RWZZ51s2
AQAALQIAADwAGAAAAAAAAQAAAKSBGyAAAGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZmFsc2Ut
d29ya3MtaW4tc3VidHJlZXMtYWN0dWFsLnR4dFVUBQADy7IpVHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIZjPUWtafaFkwEAAJMDAAA6ABgAAAAAAAEAAACkgcchAABhY2Nlc3NpYmlsaXR5L2Fy
aWEtaGlkZGVuLWZhbHNlLXdvcmtzLWluLXN1YnRyZWVzLWRpZmYudHh0VVQFAAPLsilUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RcZ4uqw+AQAAQgIAAD4AGAAAAAAAAQAAAKSBziMAAGFj
Y2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZmFsc2Utd29ya3MtaW4tc3VidHJlZXMtZXhwZWN0ZWQu
dHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9Rdejw/vhCAAAsyUAAEIA
GAAAAAAAAQAAAKSBhCUAAGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZmFsc2Utd29ya3MtaW4t
c3VidHJlZXMtcHJldHR5LWRpZmYuaHRtbFVUBQADy7IpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAIZjPUWndrtFtAAAAP0AAAA3ABgAAAAAAAEAAACkgeEuAABhY2Nlc3NpYmlsaXR5L2FyaWEt
aGlkZGVuLWhpZGVzLWFsbC1lbGVtZW50cy1hY3R1YWwudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAhmM9RQE5WP/1AAAAuwEAADUAGAAAAAAAAQAAAKSBBjAAAGFjY2Vzc2li
aWxpdHkvYXJpYS1oaWRkZW4taGlkZXMtYWxsLWVsZW1lbnRzLWRpZmYudHh0VVQFAAPLsilUdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9ReiitZqzAAAA/AAAADkAGAAAAAAAAQAAAKSBajEA
AGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4taGlkZXMtYWxsLWVsZW1lbnRzLWV4cGVjdGVkLnR4
dFVUBQADy7IpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUV8tKvEzgcAANEYAAA9ABgA
AAAAAAEAAACkgZAyAABhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWhpZGVzLWFsbC1lbGVtZW50
cy1wcmV0dHktZGlmZi5odG1sVVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9
RVgIzTnsAAAA/AEAADUAGAAAAAAAAQAAAKSB1ToAAGFjY2Vzc2liaWxpdHkvYXJpYS1pbmhlcml0
cy1wcmVzZW50YXRpb25hbC1hY3R1YWwudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAhmM9RX3WTjT5AAAAQQMAADMAGAAAAAAAAQAAAKSBMDwAAGFjY2Vzc2liaWxpdHkvYXJp
YS1pbmhlcml0cy1wcmVzZW50YXRpb25hbC1kaWZmLnR4dFVUBQADy7IpVHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIZjPUURQnqV8AAAAA4CAAA3ABgAAAAAAAEAAACkgZY9AABhY2Nlc3NpYmls
aXR5L2FyaWEtaW5oZXJpdHMtcHJlc2VudGF0aW9uYWwtZXhwZWN0ZWQudHh0VVQFAAPLsilUdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RVg/kDJICAAAcCQAADsAGAAAAAAAAQAAAKSB9z4A
AGFjY2Vzc2liaWxpdHkvYXJpYS1pbmhlcml0cy1wcmVzZW50YXRpb25hbC1wcmV0dHktZGlmZi5o
dG1sVVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RUCxaW72AAAAVQMAACUA
GAAAAAAAAQAAAKSBtEcAAGFjY2Vzc2liaWxpdHkvYXJpYS1pbnZhbGlkLWFjdHVhbC50eHRVVAUA
A8uyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FLT1QdgIBAAC/AQAAIwAYAAAAAAAB
AAAApIEJSQAAYWNjZXNzaWJpbGl0eS9hcmlhLWludmFsaWQtZGlmZi50eHRVVAUAA8uyKVR1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACGYz1F01Ig5PUAAABUAwAAJwAYAAAAAAABAAAApIFoSgAA
YWNjZXNzaWJpbGl0eS9hcmlhLWludmFsaWQtZXhwZWN0ZWQudHh0VVQFAAPLsilUdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAhmM9RUbH1DDeBwAA5xgAACsAGAAAAAAAAQAAAKSBvksAAGFjY2Vz
c2liaWxpdHkvYXJpYS1pbnZhbGlkLXByZXR0eS1kaWZmLmh0bWxVVAUAA8uyKVR1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACGYz1Ftxgt760AAAD4AAAAQQAYAAAAAAABAAAApIEBVAAAYWNjZXNz
aWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWxlZGJ5LWFjdHVhbC50
eHRVVAUAA8uyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FidrUfOMAAAC9AQAAPwAY
AAAAAAABAAAApIEpVQAAYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFy
aWEtbGFiZWxlZGJ5LWRpZmYudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
hmM9RY7MKt+sAAAA9wAAAEMAGAAAAAAAAQAAAKSBhVYAAGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJl
bGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsZWRieS1leHBlY3RlZC50eHRVVAUAA8uyKVR1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FbmSqYLoHAADJGAAARwAYAAAAAAABAAAApIGuVwAA
YWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWxlZGJ5LXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA8uyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FUQU6
YkEBAAAKBAAAOQAYAAAAAAABAAAApIHpXwAAYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnkt
d2l0aC1kZXNjZW5kYW50cy1hY3R1YWwudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAhmM9RVR9cEB1AQAADAYAADcAGAAAAAAAAQAAAKSBnWEAAGFjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LXdpdGgtZGVzY2VuZGFudHMtZGlmZi50eHRVVAUAA8uyKVR1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACGYz1FVMitUkABAAALBAAAOwAYAAAAAAABAAAApIGDYwAAYWNjZXNz
aWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktd2l0aC1kZXNjZW5kYW50cy1leHBlY3RlZC50eHRVVAUA
A8uyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1F5AEU9AcJAADAMwAAPwAYAAAAAAAB
AAAApIE4ZQAAYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktd2l0aC1kZXNjZW5kYW50cy1w
cmV0dHktZGlmZi5odG1sVVQFAAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RTyp
MSHdAgAA7QYAACYAGAAAAAAAAQAAAKSBuG4AAGFjY2Vzc2liaWxpdHkvYXJpYS1tYXBwaW5ncy1h
Y3R1YWwudHh0VVQFAAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RTXL2Lj8AAAA
VQIAACQAGAAAAAAAAQAAAKSB9XEAAGFjY2Vzc2liaWxpdHkvYXJpYS1tYXBwaW5ncy1kaWZmLnR4
dFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUXVgu2i3gIAAO4GAAAoABgA
AAAAAAEAAACkgU9zAABhY2Nlc3NpYmlsaXR5L2FyaWEtbWFwcGluZ3MtZXhwZWN0ZWQudHh0VVQF
AAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RUq+GqgDCAAAWxwAACwAGAAAAAAA
AQAAAKSBj3YAAGFjY2Vzc2liaWxpdHkvYXJpYS1tYXBwaW5ncy1wcmV0dHktZGlmZi5odG1sVVQF
AAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RXs4ESgCAQAAqQEAAC0AGAAAAAAA
AQAAAKSB+H4AAGFjY2Vzc2liaWxpdHkvYXJpYS1uYW1lZnJvbS1hdXRob3ItYWN0dWFsLnR4dFVU
BQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUV9Ek17RAEAAEsCAAArABgAAAAA
AAEAAACkgWGAAABhY2Nlc3NpYmlsaXR5L2FyaWEtbmFtZWZyb20tYXV0aG9yLWRpZmYudHh0VVQF
AAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9Re9vmIUCAQAAqAEAAC8AGAAAAAAA
AQAAAKSBCoIAAGFjY2Vzc2liaWxpdHkvYXJpYS1uYW1lZnJvbS1hdXRob3ItZXhwZWN0ZWQudHh0
VVQFAAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RQyCM1cUCAAAaxkAADMAGAAA
AAAAAQAAAKSBdYMAAGFjY2Vzc2liaWxpdHkvYXJpYS1uYW1lZnJvbS1hdXRob3ItcHJldHR5LWRp
ZmYuaHRtbFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUVPr3cKWwEAAF0H
AAAmABgAAAAAAAEAAACkgfaLAABhY2Nlc3NpYmlsaXR5L2FyaWEtcmVxdWlyZWQtYWN0dWFsLnR4
dFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUXqD0l21wAAAHgBAAAkABgA
AAAAAAEAAACkgbGNAABhY2Nlc3NpYmlsaXR5L2FyaWEtcmVxdWlyZWQtZGlmZi50eHRVVAUAA8yy
KVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1Faq0axVsBAABcBwAAKAAYAAAAAAABAAAA
pIHmjgAAYWNjZXNzaWJpbGl0eS9hcmlhLXJlcXVpcmVkLWV4cGVjdGVkLnR4dFVUBQADzLIpVHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUWnRiPQrgcAAJ8YAAAsABgAAAAAAAEAAACkgaOQ
AABhY2Nlc3NpYmlsaXR5L2FyaWEtcmVxdWlyZWQtcHJldHR5LWRpZmYuaHRtbFVUBQADzLIpVHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUUJ3bJ9VQEAAJIDAAAuABgAAAAAAAEAAACkgbeY
AABhY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC1hY3R1YWwudHh0VVQFAAPMsilU
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9Rf16/+XvAAAAswEAACwAGAAAAAAAAQAAAKSB
dJoAAGFjY2Vzc2liaWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0LWRpZmYudHh0VVQFAAPMsilU
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RalXnHtUAQAAkQMAADAAGAAAAAAAAQAAAKSB
yZsAAGFjY2Vzc2liaWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0LWV4cGVjdGVkLnR4dFVUBQAD
zLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUVX5Q7uxQcAANIYAAA0ABgAAAAAAAEA
AACkgYedAABhY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC1wcmV0dHktZGlmZi5o
dG1sVVQFAAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9Rehz41X6AAAArwEAADQA
GAAAAAAAAQAAAKSBuqUAAGFjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xl
LWFjdHVhbC50eHRVVAUAA8yyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FcAlWOAIB
AADNAQAAMgAYAAAAAAABAAAApIEipwAAYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24t
YW5kLXJvbGUtZGlmZi50eHRVVAUAA8yyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1F
5APWGPkAAACuAQAANgAYAAAAAAABAAAApIGQqAAAYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3Jp
cHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0VVQFAAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAhmM9RbkGaT3VBwAA5hgAADoAGAAAAAAAAQAAAKSB+akAAGFjY2Vzc2liaWxpdHkvY2Fu
dmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLXByZXR0eS1kaWZmLmh0bWxVVAUAA8yyKVR1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACHYz1FeDzK73oBAACvCQAAMAAYAAAAAAABAAAApIFCsgAAYWNj
ZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC1hY3R1YWwudHh0VVQFAAPNsilUdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RcydbU7WAAAAtAEAAC4AGAAAAAAAAQAAAKSBJrQA
AGFjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxiYWNrLWNvbnRlbnQtZGlmZi50eHRVVAUAA82yKVR1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHYz1FZ8UyinoBAACvCQAAMgAYAAAAAAABAAAApIFk
tQAAYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC1leHBlY3RlZC50eHRVVAUA
A82yKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHYz1Fm73rcrgHAAAUGgAANgAYAAAAAAAB
AAAApIFKtwAAYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC1wcmV0dHktZGlm
Zi5odG1sVVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RWVMwQgzAQAA/gEA
ADsAGAAAAAAAAQAAAKSBcr8AAGFjY2Vzc2liaWxpdHkvY29udGFpbmVyLW5vZGUtZGVsZXRlLWNh
dXNlcy1jcmFzaC1hY3R1YWwudHh0VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
h2M9RRNmHTuFAQAA3wIAADkAGAAAAAAAAQAAAKSBGsEAAGFjY2Vzc2liaWxpdHkvY29udGFpbmVy
LW5vZGUtZGVsZXRlLWNhdXNlcy1jcmFzaC1kaWZmLnR4dFVUBQADzbIpVHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIdjPUWv7jbPMgEAAP0BAAA9ABgAAAAAAAEAAACkgRLDAABhY2Nlc3NpYmls
aXR5L2NvbnRhaW5lci1ub2RlLWRlbGV0ZS1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQudHh0VVQFAAPN
silUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RQbC9OhUCAAA8RkAAEEAGAAAAAAAAQAA
AKSBu8QAAGFjY2Vzc2liaWxpdHkvY29udGFpbmVyLW5vZGUtZGVsZXRlLWNhdXNlcy1jcmFzaC1w
cmV0dHktZGlmZi5odG1sVVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RXsH
IH7VAQAASQQAADUAGAAAAAAAAQAAAKSBis0AAGFjY2Vzc2liaWxpdHkvY29udGVudC1lZGl0YWJs
ZS1hcy10ZXh0YXJlYS1hY3R1YWwudHh0VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAh2M9RW3pG+NGAgAAvQcAADMAGAAAAAAAAQAAAKSBzs8AAGFjY2Vzc2liaWxpdHkvY29udGVu
dC1lZGl0YWJsZS1hcy10ZXh0YXJlYS1kaWZmLnR4dFVUBQADzbIpVHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIdjPUWpx88v3wEAALUEAAA3ABgAAAAAAAEAAACkgYHSAABhY2Nlc3NpYmlsaXR5
L2NvbnRlbnQtZWRpdGFibGUtYXMtdGV4dGFyZWEtZXhwZWN0ZWQudHh0VVQFAAPNsilUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RVs8ajgUCgAAmDkAADsAGAAAAAAAAQAAAKSB0dQAAGFj
Y2Vzc2liaWxpdHkvY29udGVudC1lZGl0YWJsZS1hcy10ZXh0YXJlYS1wcmV0dHktZGlmZi5odG1s
VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RY9hpk3cAAAAhQEAAFcAGAAA
AAAAAQAAAKSBWt8AAGFjY2Vzc2liaWxpdHkvY29udGVudC1lZGl0YWJsZS1zZXQtaW5uZXItdGV4
dC1nZW5lcmF0ZXMtYXh2YWx1ZS1ub3RpZmljYXRpb24tYWN0dWFsLnR4dFVUBQADzbIpVHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUWcgnb7IAEAACYCAABVABgAAAAAAAEAAACkgcfgAABh
Y2Nlc3NpYmlsaXR5L2NvbnRlbnQtZWRpdGFibGUtc2V0LWlubmVyLXRleHQtZ2VuZXJhdGVzLWF4
dmFsdWUtbm90aWZpY2F0aW9uLWRpZmYudHh0VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAh2M9RWiAY9/bAAAAhAEAAFkAGAAAAAAAAQAAAKSBduIAAGFjY2Vzc2liaWxpdHkvY29u
dGVudC1lZGl0YWJsZS1zZXQtaW5uZXItdGV4dC1nZW5lcmF0ZXMtYXh2YWx1ZS1ub3RpZmljYXRp
b24tZXhwZWN0ZWQudHh0VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9Rblr
Fkf4BwAAHBkAAF0AGAAAAAAAAQAAAKSB5OMAAGFjY2Vzc2liaWxpdHkvY29udGVudC1lZGl0YWJs
ZS1zZXQtaW5uZXItdGV4dC1nZW5lcmF0ZXMtYXh2YWx1ZS1ub3RpZmljYXRpb24tcHJldHR5LWRp
ZmYuaHRtbFVUBQADzbIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUW9tOCTtgAAAP0A
AABBABgAAAAAAAEAAACkgXPsAABhY2Nlc3NpYmlsaXR5L2NvbnRlbnRlZGl0YWJsZS10YWJsZS1j
aGVjay1jYXVzZXMtY3Jhc2gtYWN0dWFsLnR4dFVUBQADzbIpVHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIdjPUWRuslyDQEAAO8BAAA/ABgAAAAAAAEAAACkgaTtAABhY2Nlc3NpYmlsaXR5L2Nv
bnRlbnRlZGl0YWJsZS10YWJsZS1jaGVjay1jYXVzZXMtY3Jhc2gtZGlmZi50eHRVVAUAA82yKVR1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHYz1F8mDuTLYAAAD8AAAAQwAYAAAAAAABAAAApIEq
7wAAYWNjZXNzaWJpbGl0eS9jb250ZW50ZWRpdGFibGUtdGFibGUtY2hlY2stY2F1c2VzLWNyYXNo
LWV4cGVjdGVkLnR4dFVUBQADzbIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUVT3Jf1
5AcAAPsYAABHABgAAAAAAAEAAACkgV3wAABhY2Nlc3NpYmlsaXR5L2NvbnRlbnRlZGl0YWJsZS10
YWJsZS1jaGVjay1jYXVzZXMtY3Jhc2gtcHJldHR5LWRpZmYuaHRtbFVUBQADzbIpVHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAgAAAIdjPUVrE+NbAgAAAAIAAAAuABgAAAAAAAEAAACkgcL4AABhY2Nl
c3NpYmlsaXR5L2R1cGxpY2F0ZS1jaGlsZC1ub2Rlcy1hY3R1YWwudHh0VVQFAAPNsilUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RTV9OTn1AAAAyQEAACwAGAAAAAAAAQAAAKSBLPkAAGFj
Y2Vzc2liaWxpdHkvZHVwbGljYXRlLWNoaWxkLW5vZGVzLWRpZmYudHh0VVQFAAPNsilUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RZs5D1aSAAAAxgAAADAAGAAAAAAAAQAAAKSBh/oAAGFj
Y2Vzc2liaWxpdHkvZHVwbGljYXRlLWNoaWxkLW5vZGVzLWV4cGVjdGVkLnR4dFVUBQADzbIpVHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUURXlIh8AcAAFQcAAA0ABgAAAAAAAEAAACkgYP7
AABhY2Nlc3NpYmlsaXR5L2R1cGxpY2F0ZS1jaGlsZC1ub2Rlcy1wcmV0dHktZGlmZi5odG1sVVQF
AAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RZENCb+fAAAA3gAAAEEAGAAAAAAA
AQAAAKSB4QMBAGFjY2Vzc2liaWxpdHkvZmlyc3QtbGV0dGVyLXRleHQtdHJhbnNmb3JtLWNhdXNl
cy1jcmFzaC1hY3R1YWwudHh0VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9
RZ77oYj5AAAA1AEAAD8AGAAAAAAAAQAAAKSB+wQBAGFjY2Vzc2liaWxpdHkvZmlyc3QtbGV0dGVy
LXRleHQtdHJhbnNmb3JtLWNhdXNlcy1jcmFzaC1kaWZmLnR4dFVUBQADzbIpVHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIdjPUVYC1f1oAAAAN4AAABDABgAAAAAAAEAAACkgW0GAQBhY2Nlc3Np
YmlsaXR5L2ZpcnN0LWxldHRlci10ZXh0LXRyYW5zZm9ybS1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQu
dHh0VVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9Rfgv38/0BwAAthkAAEcA
GAAAAAAAAQAAAKSBigcBAGFjY2Vzc2liaWxpdHkvZmlyc3QtbGV0dGVyLXRleHQtdHJhbnNmb3Jt
LWNhdXNlcy1jcmFzaC1wcmV0dHktZGlmZi5odG1sVVQFAAPNsilUdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAh2M9RUtrT5/GAAAAFAEAADMAGAAAAAAAAQAAAKSB/w8BAGFjY2Vzc2liaWxpdHkv
aGVhZGluZy1jcmFzaC1hZnRlci1oaWRkZW4tYWN0dWFsLnR4dFVUBQADzbIpVHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIdjPUWC0XV9BgEAAM0BAAAxABgAAAAAAAEAAACkgTIRAQBhY2Nlc3Np
YmlsaXR5L2hlYWRpbmctY3Jhc2gtYWZ0ZXItaGlkZGVuLWRpZmYudHh0VVQFAAPNsilUdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RTQl743FAAAAEwEAADUAGAAAAAAAAQAAAKSBoxIBAGFj
Y2Vzc2liaWxpdHkvaGVhZGluZy1jcmFzaC1hZnRlci1oaWRkZW4tZXhwZWN0ZWQudHh0VVQFAAPN
silUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RYEV68/YBwAA5xgAADkAGAAAAAAAAQAA
AKSB1xMBAGFjY2Vzc2liaWxpdHkvaGVhZGluZy1jcmFzaC1hZnRlci1oaWRkZW4tcHJldHR5LWRp
ZmYuaHRtbFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUXmTf3z0wAAAKkC
AAAmABgAAAAAAAEAAACkgSIcAQBhY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwtYWN0dWFsLnR4
dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUW952lx+QAAALUBAAAkABgA
AAAAAAEAAACkgVUdAQBhY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwtZGlmZi50eHRVVAUAA86y
KVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHYz1FxYBDktMAAACoAgAAKAAYAAAAAAABAAAA
pIGsHgEAYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWxldmVsLWV4cGVjdGVkLnR4dFVUBQADzrIpVHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUU6pXX0zgcAANwYAAAsABgAAAAAAAEAAACkgeEf
AQBhY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwtcHJldHR5LWRpZmYuaHRtbFVUBQADzrIpVHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUX+Bquy7AAAAEkDAAAiABgAAAAAAAEAAACkgRUo
AQBhY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1hY3R1YWwudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAh2M9RQ7VvQqCAQAA9QYAACAAGAAAAAAAAQAAAKSBXSkBAGFjY2Vzc2li
aWxpdHkvaGVscC10ZXh0LWRpZmYudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAh2M9RS470fDqAAAASAMAACQAGAAAAAAAAQAAAKSBOSsBAGFjY2Vzc2liaWxpdHkvaGVscC10
ZXh0LWV4cGVjdGVkLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUVZ
QIWw9AgAAJ0wAAAoABgAAAAAAAEAAACkgYEsAQBhY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1wcmV0
dHktZGlmZi5odG1sVVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RZXBhfLv
AAAAjgEAADUAGAAAAAAAAQAAAKSB1zUBAGFjY2Vzc2liaWxpdHkvaHRtbC1odG1sLWVsZW1lbnQt
aXMtaWdub3JlZC1hY3R1YWwudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
h2M9RcB0cKxnAQAAoQIAADMAGAAAAAAAAQAAAKSBNTcBAGFjY2Vzc2liaWxpdHkvaHRtbC1odG1s
LWVsZW1lbnQtaXMtaWdub3JlZC1kaWZmLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIdjPUUJxMUZ7wAAAI4BAAA3ABgAAAAAAAEAAACkgQk5AQBhY2Nlc3NpYmlsaXR5L2h0
bWwtaHRtbC1lbGVtZW50LWlzLWlnbm9yZWQtZXhwZWN0ZWQudHh0VVQFAAPOsilUdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAh2M9RZPl+52HCAAA4R4AADsAGAAAAAAAAQAAAKSBaToBAGFjY2Vz
c2liaWxpdHkvaHRtbC1odG1sLWVsZW1lbnQtaXMtaWdub3JlZC1wcmV0dHktZGlmZi5odG1sVVQF
AAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9Re4dcUuMAAAAtAAAADYAGAAAAAAA
AQAAAKSBZUMBAGFjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwLXVwZGF0ZS1wYXJlbnQtY3Jhc2gtYWN0
dWFsLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUV6172M+gAAAL8B
AAA0ABgAAAAAAAEAAACkgWFEAQBhY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcC11cGRhdGUtcGFyZW50
LWNyYXNoLWRpZmYudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RdxP
jaiLAAAAswAAADgAGAAAAAAAAQAAAKSByUUBAGFjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwLXVwZGF0
ZS1wYXJlbnQtY3Jhc2gtZXhwZWN0ZWQudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAh2M9RecZ6nfPBwAA1hgAADwAGAAAAAAAAQAAAKSBxkYBAGFjY2Vzc2liaWxpdHkvaW1h
Z2UtbWFwLXVwZGF0ZS1wYXJlbnQtY3Jhc2gtcHJldHR5LWRpZmYuaHRtbFVUBQADzrIpVHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUWVz0aV2QAAANYBAAAjABgAAAAAAAEAAACkgQtPAQBh
Y2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDEtYWN0dWFsLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIdjPUUXq6vW+AAAALUCAAAhABgAAAAAAAEAAACkgUFQAQBhY2Nlc3NpYmls
aXR5L2ltYWdlLW1hcDEtZGlmZi50eHRVVAUAA86yKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACHYz1FrCQM9NoAAADWAQAAJQAYAAAAAAABAAAApIGUUQEAYWNjZXNzaWJpbGl0eS9pbWFnZS1t
YXAxLWV4cGVjdGVkLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUXZ
JnJmQggAANUkAAApABgAAAAAAAEAAACkgc1SAQBhY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDEtcHJl
dHR5LWRpZmYuaHRtbFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUUBJdvY
qwAAAO4AAABIABgAAAAAAAEAAACkgXJbAQBhY2Nlc3NpYmlsaXR5L2luc2VydC1zZWxlY3RlZC1v
cHRpb24taW50by1zZWxlY3QtY2F1c2VzLWNyYXNoLWFjdHVhbC50eHRVVAUAA86yKVR1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACHYz1FY5R//gUBAADtAQAARgAYAAAAAAABAAAApIGfXAEAYWNj
ZXNzaWJpbGl0eS9pbnNlcnQtc2VsZWN0ZWQtb3B0aW9uLWludG8tc2VsZWN0LWNhdXNlcy1jcmFz
aC1kaWZmLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUWqO2y9qgAA
AO0AAABKABgAAAAAAAEAAACkgSReAQBhY2Nlc3NpYmlsaXR5L2luc2VydC1zZWxlY3RlZC1vcHRp
b24taW50by1zZWxlY3QtY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4dFVUBQADzrIpVHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIdjPUX12BIx2QcAAPIYAABOABgAAAAAAAEAAACkgVJfAQBhY2Nl
c3NpYmlsaXR5L2luc2VydC1zZWxlY3RlZC1vcHRpb24taW50by1zZWxlY3QtY2F1c2VzLWNyYXNo
LXByZXR0eS1kaWZmLmh0bWxVVAUAA86yKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHYz1F
2PFpdf4AAACTAQAANAAYAAAAAAABAAAApIGzZwEAYWNjZXNzaWJpbGl0eS9sZWdlbmQtY2hpbGRy
ZW4tYXJlLXZpc2libGUtYWN0dWFsLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAIdjPUVxllhXDwEAAOIBAAAyABgAAAAAAAEAAACkgR9pAQBhY2Nlc3NpYmlsaXR5L2xlZ2Vu
ZC1jaGlsZHJlbi1hcmUtdmlzaWJsZS1kaWZmLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIdjPUWK+nkl/QAAAJIBAAA2ABgAAAAAAAEAAACkgZpqAQBhY2Nlc3NpYmlsaXR5
L2xlZ2VuZC1jaGlsZHJlbi1hcmUtdmlzaWJsZS1leHBlY3RlZC50eHRVVAUAA86yKVR1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACHYz1FOZDEsOYHAAD7GAAAOgAYAAAAAAABAAAApIEHbAEAYWNj
ZXNzaWJpbGl0eS9sZWdlbmQtY2hpbGRyZW4tYXJlLXZpc2libGUtcHJldHR5LWRpZmYuaHRtbFVU
BQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUUiQDc6xQAAADcBAAA7ABgAAAAA
AAEAAACkgWF0AQBhY2Nlc3NpYmlsaXR5L2xpbmstaW5zaWRlLWJ1dHRvbi1hY2Nlc3NpYmxlLXRl
eHQtYWN0dWFsLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUXVzhQN
+wAAANEBAAA5ABgAAAAAAAEAAACkgZt1AQBhY2Nlc3NpYmlsaXR5L2xpbmstaW5zaWRlLWJ1dHRv
bi1hY2Nlc3NpYmxlLXRleHQtZGlmZi50eHRVVAUAA86yKVR1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACHYz1F6TiNQMQAAAA2AQAAPQAYAAAAAAABAAAApIEJdwEAYWNjZXNzaWJpbGl0eS9saW5r
LWluc2lkZS1idXR0b24tYWNjZXNzaWJsZS10ZXh0LWV4cGVjdGVkLnR4dFVUBQADzrIpVHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIhjPUXcY2KQ0QcAAOMYAABBABgAAAAAAAEAAACkgUR4AQBh
Y2Nlc3NpYmlsaXR5L2xpbmstaW5zaWRlLWJ1dHRvbi1hY2Nlc3NpYmxlLXRleHQtcHJldHR5LWRp
ZmYuaHRtbFVUBQADz7IpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIhjPUWNu+huuQEAACoG
AAAnABgAAAAAAAEAAACkgZCAAQBhY2Nlc3NpYmlsaXR5L2xpc3QtZGV0ZWN0aW9uLWFjdHVhbC50
eHRVVAUAA8+yKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACIYz1FHVDHLC8CAABjBwAAJQAY
AAAAAAABAAAApIGqggEAYWNjZXNzaWJpbGl0eS9saXN0LWRldGVjdGlvbi1kaWZmLnR4dFVUBQAD
z7IpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIhjPUXpD9TstgEAADcGAAApABgAAAAAAAEA
AACkgTiFAQBhY2Nlc3NpYmlsaXR5L2xpc3QtZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dFVUBQADz7Ip
VHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIZjPUUAAAAAAAAAAAAAAAAHABgAAAAAAAAAEADt
QVGHAQBjYW52YXMvVVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAhmM9RQAAAAAA
AAAAAAAAAA4AGAAAAAAAAAAQAO1BkocBAGNhbnZhcy9waGlsaXAvVVQFAAPLsilUdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAhmM9RQAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B2ocBAGNhbnZh
cy9waGlsaXAvdGVzdHMvVVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RSZ3
8uIoAQAA0wUAADsAGAAAAAAAAQAAAKSBKIgBAGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9z
aXRlLmdsb2JhbENvbXBvc2l0ZS1hY3R1YWwudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAhmM9Renod+7rAAAAvQEAADkAGAAAAAAAAQAAAKSBxYkBAGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbENvbXBvc2l0ZS1kaWZmLnR4dFVUBQADy7IpVHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUXATtscJwEAANIFAAA9ABgAAAAAAAEAAACkgSOLAQBj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5nbG9iYWxDb21wb3NpdGUtZXhwZWN0ZWQu
dHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RRif3nvBBwAA2RgAAEEA
GAAAAAAAAQAAAKSBwYwBAGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLmdsb2JhbENv
bXBvc2l0ZS1wcmV0dHktZGlmZi5odG1sVVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAh2M9RQAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B/ZQBAGNvbXBvc2l0aW5nL1VUBQADzrIp
VHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAIVjPUWTBtcyAQAAAAEAAAA4ABgAAAAAAAEAAACk
gUOVAQBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXctZml4ZWQtYWN0dWFs
LnR4dFVUBQADyrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIVjPUWztCkTCAEAAHgCAAA2
ABgAAAAAAAEAAACkgbaVAQBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXct
Zml4ZWQtZGlmZi50eHRVVAUAA8qyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACFYz1FUFnL
TpMAAABYAQAAOgAYAAAAAAABAAAApIEulwEAY29tcG9zaXRpbmcvYWJzb2x1dGUtaW5zaWRlLW91
dC1vZi12aWV3LWZpeGVkLWV4cGVjdGVkLnR4dFVUBQADyrIpVHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIVjPUXcJ8iZAggAAHsiAAA+ABgAAAAAAAEAAACkgTWYAQBjb21wb3NpdGluZy9hYnNv
bHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXctZml4ZWQtcHJldHR5LWRpZmYuaHRtbFVUBQADyrIpVHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAIZjPUWTBtcyAQAAAAEAAAA6ABgAAAAAAAEAAACkga+g
AQBjb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1zdGFja2luZy1hbmNlc3Rvci1hY3R1YWwu
dHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RT4JBEMDAQAAeAIAADgA
GAAAAAAAAQAAAKSBJKEBAGNvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFu
Y2VzdG9yLWRpZmYudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9Rb2X
nvWPAAAAVAEAADwAGAAAAAAAAQAAAKSBmaIBAGNvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9u
LXN0YWNraW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dFVUBQADy7IpVHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIZjPUU2ZaEOBwgAAHkiAABAABgAAAAAAAEAAACkgZ6jAQBjb21wb3NpdGluZy9j
bGlwLWNoaWxkLWJ5LW5vbi1zdGFja2luZy1hbmNlc3Rvci1wcmV0dHktZGlmZi5odG1sVVQFAAPL
silUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RZU6bGW9AAAA5QEAADUAGAAAAAAAAQAA
AKSBH6wBAGNvbXBvc2l0aW5nL2NvbXBvc2l0aW5nLXZpc2libGUtZGVzY2VuZGFudC1hY3R1YWwu
dHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RevznkdCAQAAdwMAADMA
GAAAAAAAAQAAAKSBS60BAGNvbXBvc2l0aW5nL2NvbXBvc2l0aW5nLXZpc2libGUtZGVzY2VuZGFu
dC1kaWZmLnR4dFVUBQADy7IpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUXfcT7N8wAA
AI0CAAA3ABgAAAAAAAEAAACkgfquAQBjb21wb3NpdGluZy9jb21wb3NpdGluZy12aXNpYmxlLWRl
c2NlbmRhbnQtZXhwZWN0ZWQudHh0VVQFAAPLsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
hmM9RY6tNz1LCAAAZx8AADsAGAAAAAAAAQAAAKSBXrABAGNvbXBvc2l0aW5nL2NvbXBvc2l0aW5n
LXZpc2libGUtZGVzY2VuZGFudC1wcmV0dHktZGlmZi5odG1sVVQFAAPLsilUdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAhmM9RUgun1QeAwAAsAsAAC8AGAAAAAAAAQAAAKSBHrkBAGNvbXBvc2l0
aW5nL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy1hY3R1YWwudHh0VVQFAAPLsilUdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAhmM9RSwn60jdAwAAvBQAAC0AGAAAAAAAAQAAAKSBpbwBAGNvbXBv
c2l0aW5nL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy1kaWZmLnR4dFVUBQADy7IpVHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIZjPUUQSCMwhAMAAFAOAAAxABgAAAAAAAEAAACkgenAAQBjb21w
b3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmctZXhwZWN0ZWQudHh0VVQFAAPLsilUdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RYm+eG94DAAAAmUAADUAGAAAAAAAAQAAAKSB2MQB
AGNvbXBvc2l0aW5nL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy1wcmV0dHktZGlmZi5odG1sVVQF
AAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RVvS3xoAAQAADyYAADAAGAAAAAAA
AAAAAKSBv9EBAGNvbXBvc2l0aW5nL2RvY3VtZW50LWJhY2tncm91bmQtY29sb3ItYWN0dWFsLnBu
Z1VUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUXOv7ZglwAAAKYMAAAuABgA
AAAAAAAAAACkgSnTAQBjb21wb3NpdGluZy9kb2N1bWVudC1iYWNrZ3JvdW5kLWNvbG9yLWRpZmYu
cG5nVVQFAAPMsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhmM9RV8xTaNhAgAABwYAADAA
GAAAAAAAAQAAAKSBKNQBAGNvbXBvc2l0aW5nL2RvY3VtZW50LWJhY2tncm91bmQtY29sb3ItZGlm
ZnMuaHRtbFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUUD9bKbVgAAAHcA
AAAzABgAAAAAAAEAAACkgfPWAQBjb21wb3NpdGluZy9kb2N1bWVudC1iYWNrZ3JvdW5kLWNvbG9y
LWV4cGVjdGVkLmh0bWxVVAUAA8yyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1Fgstp
2AEBAAAOJgAAMgAYAAAAAAAAAAAApIG21wEAY29tcG9zaXRpbmcvZG9jdW1lbnQtYmFja2dyb3Vu
ZC1jb2xvci1leHBlY3RlZC5wbmdVVAUAA8yyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACG
Yz1FnchMuB0BAACUAgAAKAAYAAAAAAABAAAApIEj2QEAY29tcG9zaXRpbmcvZ2VuZXJhdGVkLWNv
bnRlbnQtYWN0dWFsLnR4dFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUV3
H8JByAEAAK4EAAAmABgAAAAAAAEAAACkgaLaAQBjb21wb3NpdGluZy9nZW5lcmF0ZWQtY29udGVu
dC1kaWZmLnR4dFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIZjPUVzC3EWYQEA
AFUDAAAqABgAAAAAAAEAAACkgcrcAQBjb21wb3NpdGluZy9nZW5lcmF0ZWQtY29udGVudC1leHBl
Y3RlZC50eHRVVAUAA8yyKVR1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGYz1FrCI8yA8JAADv
JgAALgAYAAAAAAABAAAApIGP3gEAY29tcG9zaXRpbmcvZ2VuZXJhdGVkLWNvbnRlbnQtcHJldHR5
LWRpZmYuaHRtbFVUBQADzLIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUVKw03g/gAA
AK8CAAA0ABgAAAAAAAEAAACkgQboAQBjb21wb3NpdGluZy9sYXllcnMtaW5zaWRlLW92ZXJmbG93
LXNjcm9sbC1hY3R1YWwudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9
RQ9yBbv1AQAArAUAADIAGAAAAAAAAQAAAKSBcukBAGNvbXBvc2l0aW5nL2xheWVycy1pbnNpZGUt
b3ZlcmZsb3ctc2Nyb2xsLWRpZmYudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAh2M9RSaip1xCAQAAFAMAADYAGAAAAAAAAQAAAKSB0+sBAGNvbXBvc2l0aW5nL2xheWVycy1p
bnNpZGUtb3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVkLnR4dFVUBQADzrIpVHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIdjPUXYUdu88QkAAA0uAAA6ABgAAAAAAAEAAACkgYXtAQBjb21wb3NpdGlu
Zy9sYXllcnMtaW5zaWRlLW92ZXJmbG93LXNjcm9sbC1wcmV0dHktZGlmZi5odG1sVVQFAAPOsilU
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RTuxRILAAAAAYwIAADYAGAAAAAAAAQAAAKSB
6vcBAGNvbXBvc2l0aW5nL292ZXJmbG93LXRydW1wcy10cmFuc2Zvcm0tc3R5bGUtYWN0dWFsLnR4
dFVUBQADzrIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIdjPUWwp6ffJQEAAMQDAAA0ABgA
AAAAAAEAAACkgRr5AQBjb21wb3NpdGluZy9vdmVyZmxvdy10cnVtcHMtdHJhbnNmb3JtLXN0eWxl
LWRpZmYudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh2M9RbPs9c7NAAAA
3gIAADgAGAAAAAAAAQAAAKSBrfoBAGNvbXBvc2l0aW5nL292ZXJmbG93LXRydW1wcy10cmFuc2Zv
cm0tc3R5bGUtZXhwZWN0ZWQudHh0VVQFAAPOsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
h2M9RaIIZ3dsCAAASSYAADwAGAAAAAAAAQAAAKSB7PsBAGNvbXBvc2l0aW5nL292ZXJmbG93LXRy
dW1wcy10cmFuc2Zvcm0tc3R5bGUtcHJldHR5LWRpZmYuaHRtbFVUBQADzrIpVHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIhjPUWreDexLAIAAMERAAANABgAAAAAAAEAAACkgc4EAgBlcnJvcl9s
b2cudHh0VVQFAAPPsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiWM9RXkzSbETAwAAjwwA
ABEAGAAAAAAAAQAAAKSBQQcCAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAPSsilUdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAhGM9ReqKfEJhBQAABQ8AAAoAGAAAAAAAAQAAAKSBnwoCAGh0dHBkLmNv
bmZVVAUAA8eyKVR1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACFYz1FAAAAAAAAAAAAAAAAKwAY
AAAAAAAAAAAApIFEEAIAcHl3ZWJzb2NrZXQud3MubG9nLTI5U2VwMjAxNC0xMjI4MDgtZXJyLnR4
dFVUBQADybIpVHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIRjPUUAAAAAAAAAAAAAAAArABgA
AAAAAAAAAACkgakQAgBweXdlYnNvY2tldC53cy5sb2ctMjlTZXAyMDE0LTEyMjgwOC1vdXQudHh0
VVQFAAPIsilUdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAimM9RYcK0RmGJgAAYaQAAAwAGAAA
AAAAAQAAAKSBDhECAHJlc3VsdHMuaHRtbFVUBQAD07IpVHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAIljPUW1w9rPmREAAAtcAAAKABgAAAAAAAEAAACkgdo3AgBzdGF0cy5qc29uVVQFAAPSsilU
dXgLAAEE9QEAAAQUAAAAUEsFBgAAAACpAKkA3U8AALdJAgAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238872</attachid>
            <date>2014-09-29 13:18:21 -0700</date>
            <delta_ts>2014-09-29 13:25:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137221-20140929131821.patch</filename>
            <type>text/plain</type>
            <size>86084</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUzY2UzMTI0NmQxMjcz
M2Q2YTFiZTMzMjY2MTg2MWZmZDgyMjI1My4uNGQ0NGNhZTc2YTYxMmNkYjcwODI1MDhmYTE4ZDMx
OThkZDE4MDBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NiBAQAorMjAxNC0wOS0yOSAgQ2hy
aXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAv
IGRvd25jYXN0PD4oKSBmb3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50
IGluc3RlYWQgb2YgaXNEb2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpmcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cGFnZSk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpk
b2N1bWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbjo6cGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmRvY3VtZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZUNvbnRleHQ6OmFsbG93RGF0YWJhc2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRz
aGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhh
bmRzaGFrZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpj
bGllbnRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ondy
YXApOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZG9jdW1lbnQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUmVxdWVzdFN0YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUmVxdWVzdFN0YXRlOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRp
b0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNBdWRpb0Nv
bnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZl
bnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVySW5saW5l
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmcmFtZUZyb21FeGVjU3RhdGUp
OgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VidGxlQ3J5cHRvOjpkb2N1bWVudCk6CisgICAgICAgICogZG9tL0NvbW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vQ29udGFpbmVy
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FjY2VwdENoaWxkKToKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1
bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0Rv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFn
ZSk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXaW5kb3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZl
bnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hbWVkRmxvd0NvbGxlY3Rpb246OmRvY3VtZW50KToKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0RlZmF1bHROYW1lc3Bh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bG9va3VwUHJlZml4KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3Bh
dGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydE1hcmt1
cCk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
SFRNTERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE5hbWVDb2xsZWN0aW9uOjpkb2N1bWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVs
ZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjppc0ltYWdlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvTWVkaWFE
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNNZWRpYURvY3VtZW50KToKKyAgICAgICAg
KiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1BsdWdpbkRvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlOjpvd25lckRvY3VtZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNr
L1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmluaXRpYWxpemUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVlRUUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdp
b246Om93bmVyRG9jdW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnRO
b2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dCk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJy
aWRnZTo6bWFpblRocmVhZENyZWF0ZUxvYWRlcik6CisgICAgICAgICogcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjpyZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0bzo6ZG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6Omluc3RhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NVGltZXI6OmZpcmVkKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpnZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZCk6CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkpOgorICAgICAgICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
aXN0b3J5Ojpnbyk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzY3Jv
bGxhYmxlRW5jbG9zaW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5TY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpu
b2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyk6CisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbnRleHREb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5k
UnVuUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09i
amVjdCk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0
KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclByb3h5OjphZGRUb1dvcmtlckRvY3VtZW50
cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6b3Blbik6CisKIDIwMTQtMDktMjkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01hY10gUmVtb3ZlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0IGZy
YW1lIHJhdGUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMwMDA4MGNkYjcyMTQ1YjUxZjNiM2Q3ZDU2MDNi
ZGEyNTIxODE0ZTcuLmU5NGMyNWNiOWZiMDkxODQyNGE3MzYwM2U1OWM3MWFkZGE1ZTI3NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wOS0yOSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBm
b3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50IGluc3RlYWQgb2YgaXNE
b2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tOgorICAgICAgICAo
LVtXS0RPTURvY3VtZW50IGNyZWF0ZUVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dLRE9NRG9jdW1l
bnQgY3JlYXRlVGV4dE5vZGU6XSk6CisgICAgICAgICgtW1dLRE9NRG9jdW1lbnQgYm9keV0pOgor
CiAyMDE0LTA5LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAppbmRleCAzZGE4MmE1NDQxMDQ5M2E5ZTZiMGMzYTY4MjJhYzVhNmZmNmU5
NWJhLi43ZDg0ODExODZjNzY0MDY1NzdlNWEyMDAxZmQ3ZDViM2U3YWQwMWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MjUwLDE3ICsyNTAsMTcgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigpCiAKIERvY3VtZW50
KiBHZW9sb2NhdGlvbjo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3VtZW50
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBGcmFtZSogR2VvbG9jYXRpb246OmZy
YW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPmZyYW1l
KCkgOiAwOworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51
bGxwdHI7CiB9CiAKIFBhZ2UqIEdlb2xvY2F0aW9uOjpwYWdlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPnBhZ2UoKSA6IDA7CisgICAgcmV0dXJuIGRvY3Vt
ZW50KCkgPyBkb2N1bWVudCgpLT5wYWdlKCkgOiBudWxscHRyOwogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNw
cAppbmRleCBlZGFmZDdlMmU2NGZjYTMxYWZkM2E2YTcwMjYyNGE4ODYwMWFkM2E1Li5jZTAxMDA3
YTdkMDAwNzg4ZTFjZjFiYTYxNDg1M2NkNzY2N2ZjMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNjgsMTAgKzY4LDEwIEBAIElE
QkZhY3Rvcnk6On5JREJGYWN0b3J5KCkKIG5hbWVzcGFjZSB7CiBzdGF0aWMgYm9vbCBpc0NvbnRl
eHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVChj
b250ZXh0LT5pc0RvY3VtZW50KCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsK
LSAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkb2N1bWVudC0+ZnJh
bWUoKSAmJiBkb2N1bWVudC0+cGFnZSgpICYmICghZG9jdW1lbnQtPnBhZ2UoKS0+dXNlc0VwaGVt
ZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJblBy
aXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkpOwor
ICAgIEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9i
YWxTY29wZSgpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5mcmFtZSgpICYmIGRvY3VtZW50LnBhZ2UoKSAmJiAoIWRvY3VtZW50
LnBhZ2UoKS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dz
RGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LT5wcm90b2NvbCgpKSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNzksOSArNzks
OSBAQCBzdGF0aWMgYm9vbCBpc0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQogc3RhdGljIFN0cmluZyBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoaXNDb250ZXh0VmFsaWQoY29u
dGV4dCkpOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLmluZGV4ZWREQkRhdGFiYXNlUGF0
aCgpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCkuaW5kZXhlZERCRGF0YWJh
c2VQYXRoKCk7CiAgICAgfQogICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3Mg
PSB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT5ncm91cFNldHRpbmdzKCk7CiAgICAgaWYg
KGdyb3VwU2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggOWYzYzk2YTJjMTJhNmFlMjEwNTRkYTM5MGQyODAx
NTM3ODhjMzE0MS4uY2E1MzRjZTg4Y2Q2N2MwNTAxY2RhM2JjMWExODc5MzQ1OTczNDU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgVmVjdG9yPFN0cmluZz4gU291cmNlQnVmZmVyOjpi
dWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2sKIERvY3Vt
ZW50JiBTb3VyY2VCdWZmZXI6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICByZXR1cm4gKnRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDI5ZGMxOTI2ZGQ2YTc0YWJkNWM0ZTc2OTY2NDU4YTEwNTFkZmRmZWMuLjM1MTlj
M2QyZGQxM2Q2Mzg0OTk2NmE0MzMzZWJlNmE3Yzk2ZWNkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzgsNyArMTc4LDcgQEAgUlRDUGVlckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHIKICAgICAsIG1fY29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogewotICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogCiAgICAgaWYgKCFkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmlu
ZGV4IGU5Y2IwMzUzNmNkOGYyMmU2NjFmMDIxYTM0MjU3MTViOWZhZWRlMjEuLjM2YWU2MWZlNDdk
ZGViYTE0MjY0MjQ1MTNmY2VkM2Q5NWM2NjJlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC04Niw3ICs4Niw3
IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBt
X3Rhc2tUaW1lcihzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPE5vdGlmaWNhdGlvbj4+KHRoaXMsICZO
b3RpZmljYXRpb246OnRhc2tUaW1lckZpcmVkKSkKIHsKLSAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ciA9IERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnModG9Eb2N1bWVu
dChjb250ZXh0KS5kb21XaW5kb3coKSk7CisgICAgbV9ub3RpZmljYXRpb25DZW50ZXIgPSBET01X
aW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KS5kb21XaW5kb3coKSk7CiAgICAgCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5jbGllbnQoKSk7CiAgICAgbV90YXNrVGltZXItPnN0YXJ0T25lU2hvdCgwKTsKQEAg
LTEzNSw5ICsxMzUsOSBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpCiAgICAgLy8gcHJldmVu
dCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlID09IElkbGUgJiYgbV9ub3RpZmljYXRp
b25DZW50ZXItPmNsaWVudCgpKSB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAg
IGlmICghdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkpCisgICAg
ICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLnBh
Z2UoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXI6OmZyb20odG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkp
LT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICBpZiAoTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkucGFnZSgpKS0+Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQpIHsKICAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC0yMTMsOCArMjEzLDggQEAgdm9pZCBOb3RpZmljYXRpb246OnRh
c2tUaW1lckZpcmVkKFRpbWVyPE5vdGlmaWNhdGlvbj4mIHRpbWVyKQogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogY29uc3QgU3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVCh0b0RvY3VtZW50KGNvbnRl
eHQpLT5wYWdlKCkpOwotICAgIHJldHVybiBwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXI6OmZyb20odG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgpKS0+Y2xpZW50KCktPmNo
ZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkucGFnZSgpKTsKKyAgICByZXR1cm4gcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRp
b25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKS0+
Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CiB9CiAKIGNvbnN0IFN0cmluZyBO
b3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIHBlcm1pc3Npb24pCkBAIC0yMzQsOCArMjM0LDggQEAgY29uc3QgU3RyaW5nIE5vdGlmaWNh
dGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVy
bWkKIAogdm9pZCBOb3RpZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrPiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQodG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgp
KTsKLSAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHRvRG9jdW1lbnQoY29udGV4dCkt
PnBhZ2UoKSktPmNsaWVudCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBjYWxsYmFjayk7
CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKTsKKyAgICBO
b3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCku
cGFnZSgpKS0+Y2xpZW50KCktPnJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGNhbGxiYWNrKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKaW5kZXggMzY0YzBjNjhkZWQxOWIzMjc4YjUxYTZhZTEwOTU3MjBhOWY3NWI4
OS4uY2Y5OTU5Zjc5OGJlOWI4YzQ1MWEzYWMxYTNjOGIyNTExYWU3NDVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMzI1LDcg
KzMyNSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdG9wKCkKIERvY3VtZW50KiBBdWRpb0NvbnRl
eHQ6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKLSAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBz
YW1wbGVSYXRlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCmluZGV4IDNiZWNlMzAx
OTU3NGUzYTM5ZjY2MjVjN2MxZTMxZGY4NDlmODMwNGIuLjMwOWIxZGI5MmIxMmQ0M2QxZWYzZGQ1
NTVmMWNkZWVkNDIxNDNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMzcsMTIgKzM3LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29udGV4dD4gT2ZmbGlu
ZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2Ft
cGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0
IGZvciB3b3JrZXJzLgotICAgIGlmICghY29udGV4dC5pc0RvY3VtZW50KCkpIHsKKyAgICBpZiAo
IWlzPERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKIAogICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gMTAg
fHwgIWlzU2FtcGxlUmF0ZVJhbmdlR29vZChzYW1wbGVSYXRlKSkgewogICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAKaW5kZXggMjhmMDc2YTM1OTFlNzQwZTExMmM2NTZkZGFlNDUx
NDNiYTljZTE5YS4uMzhkYTE1YTE2ZTA1ZTNmNzdhNmNkNWJhNDg4NTM5NjNiZTAxNjA0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VD
b250ZXh0LmNwcApAQCAtMjE4LDkgKzIxOCw5IEBAIGJvb2wgRGF0YWJhc2VDb250ZXh0OjpzdG9w
RGF0YWJhc2VzKERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyKQogCiBib29s
IERhdGFiYXNlQ29udGV4dDo6YWxsb3dEYXRhYmFzZUFjY2VzcygpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAg
ICAgICAgaWYgKCFkb2N1bWVudC0+cGFnZSgpIHx8IChkb2N1bWVudC0+cGFnZSgpLT51c2VzRXBo
ZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJ
blByaXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkp
KQorICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKKyAg
ICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSB8fCAoZG9jdW1l
bnQucGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxs
b3dzRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLT5wcm90b2NvbCgpKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTIzMSwxMCArMjMxLDEwIEBAIGJvb2wgRGF0YWJhc2VDb250
ZXh0OjphbGxvd0RhdGFiYXNlQWNjZXNzKCkgY29uc3QKIAogdm9pZCBEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWls
cyBkZXRhaWxzKQogewotICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1l
bnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBh
Z2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YShkb2N1bWVudC0+ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CisgICAgaWYgKGlzPERv
Y3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZXhjZWVkZWREYXRhYmFzZVF1b3RhKGRvY3VtZW50LmZy
YW1lKCksIG5hbWUsIGRldGFpbHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VS
VChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA1NTQxYzNlNDFjNWI1MTgxZGE1MTlkN2Q3
ZDg5Zjc4ZmRmMjRmN2ZmLi4xNjU0ZGQ1NjBlMmM5NTA5OTIzZDY2OWZlZTZmOTg5YjE3MDc1NDQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFz
c1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OmNyZWF0ZShTY3JpcHQKICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0
cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHRv
RG9jdW1lbnQoY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6
OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKaW5kZXggZGIzY2U4ZTg2MWI4ZjBkYmM3MDFjMmEzYmQzOWRjYjBlM2Rl
YzNkOC4uOThiZGNlMmZkM2RkYmU3MjkwYjM3ZGQzOTEzMDVkZmI3ZTBmZjA0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTIzOSw5
ICsyMzksOSBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhjZQogCiAgICAgLy8gRklYTUU6IENvbnZl
cnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgogICAgIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAg
ICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpOworICAgIGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkg
eworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2Uo
bV91cmwpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4
IGNjZTMzMmJiNDU2OWUyNTIwM2EzMDNiZjgwMGM0MTk4ZDc3MGViZTUuLmYzNjZhMmQ1ZmE2ODcy
NGIxOTg2MGMzMDc5ZWM5NjgwMmJlYzM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0xOTYsOSAr
MTk2LDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3Nh
Z2UoKSBjb25zdAogICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVByb3RvY29s
OiAiICsgbV9jbGllbnRQcm90b2NvbCk7CiAKICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhl
bnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlmIChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkg
ewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0g
ICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1
bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG1fY29udGV4dCkpIHsKKyAgICAgICAg
RG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX2NvbnRleHQpOworICAg
ICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoJmRvY3Vt
ZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNvb2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBm
aWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBjb29raWUpOwogICAgICAgICAvLyBTZXQgIkNvb2tp
ZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhpc3RzIGZvciB1cmw/CkBAIC0yNDcsOSArMjQ3
LDkgQEAgUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtl
UmVxdWVzdCgpIGNvbnN0CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAKICAg
ICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlm
IChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0gICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1l
bnQ+KCptX2NvbnRleHQpKSB7CisgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9jb250ZXh0KTsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCZkb2N1bWVudCwgdXJsKTsKICAgICAgICAgaWYgKCFjb29r
aWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvb2tpZSwgY29va2llKTsKICAgICAgICAgLy8gU2V0ICJDb29raWUyOiA8
Y29va2llPiIgaWYgY29va2llcyAyIGV4aXN0cyBmb3IgdXJsPwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzU4MTkzZjM0Mzk4YjNhNWM2YzU0ZTUyYjAx
ZGM0ZGFmMDgxNDVmMi4uODkwY2IxZDZkMTZlNGFmNjU1OGRkYTM4ODc4ZDEyMGQ4Mzc0MGI2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lKCkK
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBjbGllbnRXcmFwcGVyLCBX
b3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBw
ZXIoY2xpZW50V3JhcHBlcikKICAgICAsIG1fbG9hZGVyUHJveHkobG9hZGVyUHJveHkpCi0gICAg
LCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh0b0RvY3Vt
ZW50KGNvbnRleHQpLCB0aGlzKSkKKyAgICAsIG1fbWFpbldlYlNvY2tldENoYW5uZWwoV2ViU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGhpcykpCiAg
ICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcAppbmRleCBhNDY0M2UzOGJhZTcyZGQ2NjZmZGViZDg0NTUzYWNjMTVlNzkzNjM3Li5l
NmM5NTA0YzcyMTNjMzBmYTFlYWU5MTUzMzBlMmY1N2JmODBlY2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKQEAgLTEw
MCw5ICsxMDAsOSBAQCBXZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENv
bW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgotICAgICAgICBpZiAodG9Eb2N1bWVudChub2RlKS0+aXNIVE1MRG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEhUTUxEb2N1bWVudChz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihub2RlKSkpOwotICAgICAgICByZXR1cm4gV0VCS0lU
X0RPTV9OT0RFKHdyYXBEb2N1bWVudCh0b0RvY3VtZW50KG5vZGUpKSk7CisgICAgICAgIGlmIChp
czxIVE1MRG9jdW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9E
RSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0PEhUTUxEb2N1bWVudD4obm9kZSkpKTsKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIHJl
dHVybiBXRUJLSVRfRE9NX05PREUod3JhcERvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVu
dFR5cGUqPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0
aERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Db25zdHJ1Y3Rvcldp
dGhEb2N1bWVudC5oCmluZGV4IDVjOThmNjExNjEwZGU3ZGRlYjNjMGJjNTAzMmE0OWMyMmY3YzAz
NzAuLjNlMjY5ODgyZjEyYWY3ZDI3NzEwOGQ1MjcxMTFjNTI1ZmFhNWFiMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1l
bnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCA6
IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0YXRlLmgKaW5kZXggOTA3MTU2MWQ1ODg4NWFh
YjlkZWMxMWJiNTE1OTc2NGFlMjhmZGViMC4uMmE0NzE0YzkzYjkzMDBlYTk3ZjQ4YTRlMWZiNjcz
NzI3MWUyZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVx
dWVzdFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0
YXRlLmgKQEAgLTQxLDExICs0MSwxMSBAQCBjbGFzcyBET01SZXF1ZXN0U3RhdGUgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICAsIG1fZXhlYygwKQorICAgICAgICAs
IG1fZXhlYyhudWxscHRyKQogICAgIHsKLSAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBtX2V4ZWMg
PSBleGVjU3RhdGVGcm9tUGFnZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZG9jdW1lbnQtPnBh
Z2UoKSk7CisgICAgICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkpIHsKKyAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIG1fZXhlYyA9IGV4ZWNT
dGF0ZUZyb21QYWdlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBkb2N1bWVudC5wYWdlKCkpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckds
b2JhbFNjb3BlID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwogICAgICAgICAgICAgbV9leGVjID0gZXhlY1N0YXRlRnJvbVdvcmtlckds
b2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhcigpCiAgICAgewotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSAwOwotICAgICAgICBtX2V4ZWMgPSAwOworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgPSBudWxscHRyOworICAgICAgICBtX2V4ZWMgPSBudWxscHRyOwogICAgIH0KIAogICAg
IGNsYXNzIFNjb3BlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCAzNGI0NWYzMTFmNTQ1MDE5NTA3NWY0ZjE5MWNmYzhj
N2MwYWU4ZmFlLi41Yzg0MTJhZjAwZDQ3ZGMxNDlmNWQ1ZWU4NGRlZDc0NTcxZDBhNjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20u
Y3BwCkBAIC01MywxMCArNTMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU0F1ZGlvQ29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJl
ZmVyZW5jZUVycm9yKGV4ZWMsICJBdWRpb0NvbnRleHQgY29uc3RydWN0b3Igc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0IGlzIHVuYXZhaWxhYmxlIikpOwogICAgICAgICAKLSAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzPERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIGNh
bGxlZCBpbiBhIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCB3aGljaCBpcyBub3QgYSBkb2N1bWVu
dCIpKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKICAgICBSZWZQdHI8QXVkaW9Db250ZXh0PiBh
dWRpb0NvbnRleHQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYWM5ZGQ3NTgxZjg3YzY2NmE1MTI3OWJhN2U2MGJlZjQx
ODhmZWEwYy4uOTljNDAyYzMyN2U3Zjk3Y2FjZTllYzYzOTVjNWRlZGVkZWQwODVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTA1LDE0ICsxMDUsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIAogSlNET01HbG9iYWxP
YmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlNET01H
bG9iYWxPYmplY3QodG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgZXhlYyk7Cisg
ICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0
dXJuIHRvSlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLCBleGVjKTsKIAogICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dv
cmtlckdsb2JhbFNjb3BlKCkpCiAgICAgICAgIHJldHVybiB0b1dvcmtlckdsb2JhbFNjb3BlKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5zY3JpcHQoKS0+d29ya2VyR2xvYmFsU2NvcGVXcmFwcGVy
KCk7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQpAQCAtMTIyLDE0ICsx
MjIsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmwKIAogSlNET01HbG9iYWxPYmplY3QqIHRv
SlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gdG9KU0RPTUdsb2JhbE9i
amVjdCh0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLCB3b3JsZCk7CisgICAgaWYg
KGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0dXJuIHRv
SlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpLCB3b3JsZCk7CiAKICAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKQogICAgICAgICByZXR1cm4gdG9Xb3JrZXJHbG9iYWxTY29wZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KS0+c2NyaXB0KCktPndvcmtlckdsb2JhbFNjb3BlV3JhcHBlcigpOwog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNmUzNGQyMWUzYzJj
M2M4MTIwYmE4ZDdkNmExNmYyMTdhNjQ5NzgxMC4uYjJjYzI3NmM0MThlNjBjZTE2MDQ5MjYzM2I2
OTM3ZWYxMDQyZTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTczLDMwICs3MywzMCBAQCBKU0xhenlFdmVudExpc3Rl
bmVyOjp+SlNMYXp5RXZlbnRMaXN0ZW5lcigpCiBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZXhlY3V0aW9u
Q29udGV4dCkgY29uc3QKIHsKICAgICBBU1NFUlQoZXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgQVNT
RVJUKGV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGlzPERvY3Vt
ZW50PihleGVjdXRpb25Db250ZXh0KSk7CiAgICAgaWYgKCFleGVjdXRpb25Db250ZXh0KQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQoIW1f
Y29kZS5pc051bGwoKSk7CiAgICAgQVNTRVJUKCFtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051bGwo
KSk7CiAgICAgaWYgKG1fY29kZS5pc051bGwoKSB8fCBtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChleGVjdXRpb25Db250ZXh0KTsKKyAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmV4ZWN1dGlvbkNvbnRleHQp
OwogCi0gICAgaWYgKCFkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
aWYgKCFkb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlm
ICghZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMobV9zb3VyY2VVUkwsIG1fcG9zaXRpb24ubV9saW5lKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKCFkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVF
dmVudEhhbmRsZXJzKG1fc291cmNlVVJMLCBtX3Bvc2l0aW9uLm1fbGluZSkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpOworICAgIFNjcmlwdENvbnRyb2xsZXImIHNjcmlwdCA9IGRvY3Vt
ZW50LmZyYW1lKCktPnNjcmlwdCgpOwogICAgIGlmICghc2NyaXB0LmNhbkV4ZWN1dGVTY3JpcHRz
KEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBzY3JpcHQuaXNQYXVzZWQoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoZXhlY3V0aW9uQ29udGV4dCwgaXNv
bGF0ZWRXb3JsZCgpKTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU09iamVjdCogSlNM
YXp5RXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogZXhlYwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOwogICAgICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigp
OwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgSlNGdW5jdGlvbiogbGlzdGVuZXJBc0Z1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihq
c0Z1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CmluZGV4IDdkMDhhMjBkYjY5Y2FjZTAxNjE1MTZkYmExODcxY2RlYjAxZDIyYTIuLmNmODA2MDlk
YTBiZGY2MmY5ZGY4NmE5MmI0ZWFhZTFiMmIwOGI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBBTFdB
WVNfSU5MSU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgogICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9j
dW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQotICAgICAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB0b0RvY3VtZW50KG5vZGUpKTsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRG9jdW1lbnRU
eXBlLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggMzdjNzcyOGVkOWU2MmQ0YmVhYzZjYWY3
YTMwNWRlZGVmMWQ2YWQyNi4uZDExZTQ1NGRiYTk3YzYyZTIxZTA2ZTQ1ZGFhMTBiOGRmYzNjZjg2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3Bw
CkBAIC03NCw4ICs3NCw4IEBAIFNjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvbiwgRE9NV3JhcHBlcldvCiAKIHZvaWQgU2NoZWR1
bGVkQWN0aW9uOjpleGVjdXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0g
ICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZXhlY3V0ZSh0b0RvY3VtZW50
KGNvbnRleHQpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKQorICAgICAgICBleGVj
dXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CiAgICAgZWxzZQogICAgICAgICBleGVj
dXRlKHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IDcwZGZkMTY1MzI0OTIyMzBjZDY1MGRmZDBi
NWY2Y2U2Y2VmZTA4YzAuLjM3NmNkMjU0Zjg3ZDM0MTZmYTczOWYyYTExN2NjM2ZkNjBkY2U0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKQEAgLTU4LDcg
KzU4LDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dGcm9tRXhlY1N0YXRlKEpTQzo6RXhlY1N0YXRl
KiBzY3JpcHRTdGF0ZSkKIEZyYW1lKiBmcmFtZUZyb21FeGVjU3RhdGUoSlNDOjpFeGVjU3RhdGUq
IHNjcmlwdFN0YXRlKQogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShzY3JpcHRTdGF0ZSk7Ci0gICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gY29udGV4dCAmJiBjb250ZXh0LT5pc0RvY3VtZW50KCkgPyB0b0Rv
Y3VtZW50KGNvbnRleHQpIDogbnVsbHB0cjsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250
ZXh0ICYmIGlzPERvY3VtZW50Pihjb250ZXh0KSA/IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSA6IG51bGxwdHI7CiAgICAgcmV0dXJuIGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBu
dWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IDFi
YzU4YzBjY2I0NzA3OTk3N2FhYjkyMDk0M2NkMzk0ZDVlMGM2YjAuLjY4ZDgyMGMzYWRjNTg2ZWQz
NzVhNTg5MWQ4YzI2ZDhhNDNkOWFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwCkBAIC0zOSw3ICszOSw3IEBAIFN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKERvY3Vt
ZW50JiBkb2N1bWVudCkKIAogRG9jdW1lbnQqIFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQoKSBjb25z
dAogewotICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKaW5kZXggNTEzMDBlOWU4YTllMTc5YTI0ZWRiYzhj
MmM5NTQzZjc2ZGZjMzM4Zi4uOTYxZThmMTIxYTc0MzUzZjg4NjIwZDc4MWYwYWJkYjJkZGMyMDIy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPENv
bW1lbnQ+IENvbW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIAogUGFzc1JlZlB0cjxDb21tZW50PiBDb21tZW50OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ29tbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCB0ZXh0KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb21tZW50KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGV4
dCkpOwogfQogCiBTdHJpbmcgQ29tbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGIxN2IwOWYwODJhNWFmMWE2OTA4NjZhMmRiMzBlZmFm
MTA0NzI2NTUuLjY1M2Y2OTcxYjdhMmU4NjUzYzEwMjk5ODY3YTFlMGU4ODVjZDgzNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTIwMiw4ICsyMDIsOCBAQCBzdGF0aWMg
aW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQ
YXJlbnQsIE5vZGUqIG5ldwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRz
KG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIG5ld1BhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkg
ewotICAgICAgICBpZiAoIXRvRG9jdW1lbnQobmV3UGFyZW50KS0+Y2FuUmVwbGFjZUNoaWxkKG5l
d0NoaWxkLCBvbGRDaGlsZCkpCisgICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PihuZXdQ
YXJlbnQpKSB7CisgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpuZXdQYXJlbnQpLmNh
blJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpKQogICAgICAgICAgICAgcmV0dXJuIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICB9IGVsc2UgaWYgKCFpc0NoaWxkVHlwZUFsbG93ZWQo
bmV3UGFyZW50LCBuZXdDaGlsZCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9F
UlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcApp
bmRleCA4MDRhNTY3NjUzNmY0ZGIzZTBkMjA4YTI0MjQwZmIyNmU3ZjJiODYxLi4xMDQ2ZDYyYWY4
YzY4ODZjOTExOWE4ZGE3YjI1NWQxNzIyNGJhMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKQEAgLTM2LDggKzM2LDggQEAgdm9pZCBDaGls
ZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3Vt
ZW50KENvbnRhaW5lck4KICAgICAgICAgLy8gSWYgd2UgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgZG9jdW1lbnQgZHVyaW5nIHRoaXMgbG9vcCwgdGhlbgogICAgICAgICAvLyB3ZSBkb24ndCB3
YW50IHRvIHRlbGwgdGhlIHJlc3Qgb2Ygb3VyIGNoaWxkcmVuIHRoYXQgdGhleSd2ZSBiZWVuCiAg
ICAgICAgIC8vIGluc2VydGVkIGludG8gdGhlIGRvY3VtZW50IGJlY2F1c2UgdGhleSBoYXZlbid0
LgotICAgICAgICBpZiAobm9kZS5pbkRvY3VtZW50KCkgJiYgY2hpbGQtPnBhcmVudE5vZGUoKSA9
PSAmbm9kZSkKLSAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqY2hp
bGQuZ2V0KCkpOworICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGNoaWxkLT5wYXJl
bnROb2RlKCkgPT0gJm5vZGUpCisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKmNoaWxkKTsKICAgICB9CiAKICAgICBpZiAoIW5vZGUuaXNFbGVtZW50Tm9kZSgpKQpA
QCAtNDUsNyArNDUsNyBAQCB2b2lkIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpub3RpZnlE
ZXNjZW5kYW50SW5zZXJ0ZWRJbnRvRG9jdW1lbnQoQ29udGFpbmVyTgogCiAgICAgaWYgKFJlZlB0
cjxTaGFkb3dSb290PiByb290ID0gdG9FbGVtZW50KG5vZGUpLnNoYWRvd1Jvb3QoKSkgewogICAg
ICAgICBpZiAobm9kZS5pbkRvY3VtZW50KCkgJiYgcm9vdC0+aG9zdEVsZW1lbnQoKSA9PSAmbm9k
ZSkKLSAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqcm9vdC5nZXQo
KSk7CisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKnJvb3QpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5ZjdhMjVkYjkwZmI1MDVjYjJmOWFi
MTJmY2EwNzVjYjIyMjhjZmIyLi5jNDJkNDQyYzYyOGFmMmU3NTNhYmRlNTJjZjdhZWUxYmI3ODRk
MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTc0MCwxMiArMTc0MCwxMCBAQCBpbmxpbmUg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7
CiAKLVNDUklQVF9FWEVDVVRJT05fQ09OVEVYVF9UWVBFX0NBU1RTKERvY3VtZW50KQotCi1pbmxp
bmUgYm9vbCBpc0RvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1
bWVudE5vZGUoKTsgfQotdm9pZCBpc0RvY3VtZW50KGNvbnN0IERvY3VtZW50Jik7IC8vIENhdGNo
IHVubmVjZXNzYXJ5IHJ1bnRpbWUgY2hlY2sgb2YgdHlwZSBrbm93biBhdCBjb21waWxlIHRpbWUu
Ci0KLU5PREVfVFlQRV9DQVNUUyhEb2N1bWVudCkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oRG9jdW1lbnQpCisgICAgc3RhdGljIGJvb2wgaXNEb2N1bWVudChjb25zdCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzRG9jdW1lbnQoKTsgfQor
ICAgIHN0YXRpYyBib29sIGlzRG9jdW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gbm9k
ZS5pc0RvY3VtZW50Tm9kZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwCmluZGV4IDdiMWJhM2EzMDMzM2JkMTc3NjgzYjcyMjgwZjY0ZWZmZWZlN2VhM2IuLjY3ZWNi
MTdlM2FlMzU5NjY3MTNiZTgwN2RiZDU4YmIxZDcyNWI0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRG9jdW1lbnRGcmFnbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCBOb2RlOjpDcmVhdGVEb2N1
bWVudEZyYWdtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudEZyYWdtZW50
KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgTm9kZTo6Q3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCkpOwogfQogCiBTdHJpbmcgRG9jdW1lbnRGcmFnbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDJkYThlNzNlZTkwNDc4NTlhNTYyMTI4MDkwOTQ3NDI4YzIz
MTg5MjQuLjIxYWQ1NjZhYTE5NDFkM2M3OWE2ZTAzMThhODI4YjRiNTJkZmFjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKQEAgLTIyMDAsOSArMjIwMCw5IEBAIEF0b21pY1N0cmluZyBFbGVtZW50
Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAogICAgICAgICAgICAgICAgIGlmIChj
b25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGVsZW1lbnREYXRhLT5maW5kTGFuZ3VhZ2VBdHRy
aWJ1dGUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+dmFsdWUoKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50Tm9kZS0+aXNEb2N1bWVu
dE5vZGUoKSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50PihjdXJyZW50Tm9kZSkp
IHsKICAgICAgICAgICAgIC8vIGNoZWNraW5nIHRoZSBNSU1FIGNvbnRlbnQtbGFuZ3VhZ2UKLSAg
ICAgICAgICAgIHJldHVybiB0b0RvY3VtZW50KGN1cnJlbnROb2RlKS0+Y29udGVudExhbmd1YWdl
KCk7CisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjdXJyZW50Tm9kZSku
Y29udGVudExhbmd1YWdlKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNWEwZGI0ZWY5NmUzNDdjZDNjMTFjNzhmM2FhOTVkYjgw
Y2FhYWMyNS4uYzZlMjVlZDlkOWM4NmM5OTAyNTBlZTZlMmM2YzZjNzkxM2VjNjc1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTYwLDEwICs2MCwxMCBAQCBwcml2
YXRlOgogV2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBjb25zdCBFdmVudENvbnRleHQqIHRvcEV2ZW50Q29udGV4dCkKIHsKICAgICBO
b2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4
dC0+bm9kZSgpIDogbm9kZS5nZXQoKTsKLSAgICBpZiAoIXRvcExldmVsQ29udGFpbmVyLT5pc0Rv
Y3VtZW50Tm9kZSgpKQorICAgIGlmICghaXM8RG9jdW1lbnQ+KHRvcExldmVsQ29udGFpbmVyKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV93aW5kb3cgPSB0b0RvY3VtZW50KHRvcExldmVsQ29u
dGFpbmVyKS0+ZG9tV2luZG93KCk7CisgICAgbV93aW5kb3cgPSBkb3duY2FzdDxEb2N1bWVudD4o
KnRvcExldmVsQ29udGFpbmVyKS5kb21XaW5kb3coKTsKICAgICBtX3RhcmdldCA9IHRvcEV2ZW50
Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+dGFyZ2V0KCkgOiBub2RlLmdldCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCAyNjUxNzhjZjZlM2UzZjEwOTcxYTA0Zjll
OGY2NTQxMDU2MzFkN2JkLi40ODM3ZDg2MWRmY2ZhNmExOTQ2YjU3N2JmZDY0MzVlMDE3NzRkZTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTIyMyw4ICsyMjMsOCBAQCB2b2lk
IEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50LCBFdmVudFRhcmdl
dERhdGEqIGQsIEV2ZW50TGlzdAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQg
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVs
bHB0cjsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZl
bnRDb29raWU7Ci0gICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0g
ICAgICAgIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKKyAgICBpZiAoY29udGV4dCAm
JiBpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIHdpbGxEaXNwYXRjaEV2ZW50Q29va2llID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudChkb2N1bWVudCwgKmV2ZW50
LCBzaXplID4gMCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFt
ZWRGbG93Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVj
dGlvbi5jcHAKaW5kZXggZWU5MmYwNDdmNjgyMjYwZTNkZTc4ODJjOTNhZTQxYTU4NTk0ZTcyMC4u
Njg2Nzg0MDhhMTFkYTVhZDI0MzkxMzRhYmJhMWZiZGE3ODM5ODFlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQg
TmFtZWRGbG93Q29sbGVjdGlvbjo6ZGlzY2FyZE5hbWVkRmxvdyhXZWJLaXROYW1lZEZsb3cqIG5h
bWVkRmxvdykKIERvY3VtZW50KiBOYW1lZEZsb3dDb2xsZWN0aW9uOjpkb2N1bWVudCgpIGNvbnN0
CiB7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgcmV0dXJuIHRvRG9j
dW1lbnQoY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxET01OYW1lZEZsb3dDb2xsZWN0aW9uPiBOYW1lZEZsb3dDb2xsZWN0
aW9uOjpjcmVhdGVDU1NPTVNuYXBzaG90KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkYjk3ZGUyMzE3
NjA4OTcwMDUwYzkwYWRkZjE2NjFhZWIyNjZmYzFmLi5lYTkyZGE4MGEyMDhjMGJjYTMwMTRiMjM1
YzMwYTA4NzViNzhiYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMTYyLDggKzExNjIsOCBAQCBi
b29sIE5vZGU6OmlzRGVmYXVsdE5hbWVzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFj
ZVVSSU1heWJlRW1wdHkpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgaWYgKEVsZW1lbnQq
IGRlID0gdG9Eb2N1bWVudCh0aGlzKS0+ZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGRlLT5pc0RlZmF1bHROYW1lc3BhY2UobmFtZXNwYWNlVVJJKTsKKyAgICAgICAg
ICAgIGlmIChFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnRo
aXMpLmRvY3VtZW50RWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVs
ZW1lbnQtPmlzRGVmYXVsdE5hbWVzcGFjZShuYW1lc3BhY2VVUkkpOwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBjYXNlIEVOVElUWV9OT0RFOgogICAgICAgICBjYXNlIE5PVEFU
SU9OX05PREU6CkBAIC0xMTk1LDggKzExOTUsOCBAQCBTdHJpbmcgTm9kZTo6bG9va3VwUHJlZml4
KGNvbnN0IEF0b21pY1N0cmluZyAmbmFtZXNwYWNlVVJJKSBjb25zdAogICAgICAgICBjYXNlIEVM
RU1FTlRfTk9ERToKICAgICAgICAgICAgIHJldHVybiBsb29rdXBOYW1lc3BhY2VQcmVmaXgobmFt
ZXNwYWNlVVJJLCBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50ICo+KHRoaXMpKTsKICAgICAgICAg
Y2FzZSBET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgaWYgKEVsZW1lbnQqIGRlID0gdG9Eb2N1
bWVudCh0aGlzKS0+ZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRl
LT5sb29rdXBQcmVmaXgobmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIGlmIChFbGVtZW50KiBk
b2N1bWVudEVsZW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnRoaXMpLmRvY3VtZW50RWxlbWVu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnQtPmxvb2t1cFByZWZp
eChuYW1lc3BhY2VVUkkpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICBj
YXNlIEVOVElUWV9OT0RFOgogICAgICAgICBjYXNlIE5PVEFUSU9OX05PREU6CkBAIC0xMjUzLDgg
KzEyNTMsOCBAQCBTdHJpbmcgTm9kZTo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyAm
cHJlZml4KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICAgICAgICAgIGlmIChFbGVtZW50KiBkZSA9
IHRvRG9jdW1lbnQodGhpcyktPmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBkZS0+bG9va3VwTmFtZXNwYWNlVVJJKHByZWZpeCk7CisgICAgICAgICAgICBpZiAoRWxl
bWVudCogZG9jdW1lbnRFbGVtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5kb2N1bWVu
dEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRFbGVtZW50LT5sb29r
dXBOYW1lc3BhY2VVUkkocHJlZml4KTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICAgICAgY2FzZSBFTlRJVFlfTk9ERToKICAgICAgICAgY2FzZSBOT1RBVElPTl9OT0RFOgpAQCAt
MjE5OCw4ICsyMTk4LDggQEAgdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJlZigpCiAgICAgLy8gQW4g
ZXhwbGljaXQgY2hlY2sgZm9yIERvY3VtZW50IGhlcmUgaXMgYmV0dGVyIHRoYW4gYSB2aXJ0dWFs
IGZ1bmN0aW9uIHNpbmNlIGl0IGlzCiAgICAgLy8gZmFzdGVyIGZvciBub24tRG9jdW1lbnQgbm9k
ZXMsIGFuZCBiZWNhdXNlIHRoZSBjYWxsIHRvIHJlbW92ZWRMYXN0UmVmIHRoYXQgaXMgaW5saW5l
ZAogICAgIC8vIGF0IGFsbCBkZXJlZiBjYWxsIHNpdGVzIGlzIHNtYWxsZXIgaWYgaXQncyBhIG5v
bi12aXJ0dWFsIGZ1bmN0aW9uLgotICAgIGlmIChpc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAg
IHRvRG9jdW1lbnQoKnRoaXMpLnJlbW92ZWRMYXN0UmVmKCk7CisgICAgaWYgKGlzPERvY3VtZW50
PigqdGhpcykpIHsKKyAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5yZW1vdmVkTGFz
dFJlZigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCAy
OTJmYTVhYmEyYzYwYTk5ZmQxMWM3MDBjYTkzODA2MzUwMDY1N2Y0Li44OGI5YjYxMDg4MjgwYzc5
MzEwZjE4MGI0OTViZWRmYzFhZDlmOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRlKERvY3VtZW50JiBvd25lckRv
Y3VtZW50LCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsCiAKIFBhc3NSZWZQdHI8UmFuZ2U+IFJhbmdl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJhbmdlKHRvRG9jdW1lbnQoY29udGV4dCkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJhbmdlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSkpOwogfQogCiBQYXNz
UmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRlKERvY3VtZW50JiBvd25lckRvY3VtZW50LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVTdGFydCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2
aXNpYmxlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCmluZGV4IDVmNDA1YWY0NmRkNGM5Y2I0Zjk1ODIwZWZhMjVlMjJmMWM2ZWE3YTYuLjUwYTg0
Yzc3OTQ4MWI5OGU3YjdmYTEzYzZhYWJlZWFjYjlkYmYwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTM3OCw4ICszNzgsOCBAQCBib29s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JN
KElPUykKLSAgICBpZiAodGFyZ2V0ID09IHRhcmdldC0+dG9ET01XaW5kb3coKSAmJiBpc0RvY3Vt
ZW50KCkpIHsKLSAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gdG9Eb2N1bWVudCh0aGlzKS0+
c2V0dGluZ3MoKTsKKyAgICBpZiAodGFyZ2V0ID09IHRhcmdldC0+dG9ET01XaW5kb3coKSAmJiBp
czxEb2N1bWVudD4oKnRoaXMpKSB7CisgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvd25j
YXN0PERvY3VtZW50PigqdGhpcykuc2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNldHRpbmdzICYm
ICFzZXR0aW5ncy0+c2hvdWxkRGlzcGF0Y2hKYXZhU2NyaXB0V2luZG93T25FcnJvckV2ZW50cygp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA3
OWE0NWRmY2QxNDE0M2VhZTEzYzAwYjYyNzIxNDI0ZWM0YzE5ZWZkLi43ZDI4OWIwYTA5OTBiNzM3
ODBjZDIxODZjZDYzNzkzYjE4Y2E1OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIFBhc3NSZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBkYXRhKQogCiBQYXNzUmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXh0KHRvRG9jdW1lbnQoY29udGV4dCksIGRhdGEsIENyZWF0ZVRl
eHQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLCBkYXRhLCBDcmVhdGVUZXh0KSk7CiB9CiAKIFBhc3NSZWZQdHI8VGV4dD4gVGV4dDo6
Y3JlYXRlRWRpdGluZ1RleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGRi
ZTk2ODg5ODI5OWJmMjI3YjRkMDgwM2E2ZDI0MDBkMTBhOTA4ZDkuLjczZTE5YmFmZDdkNTI3MmE2
YjAzN2ZiMGZhOGY2NWQ2N2ZjYWFlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NTksNyArNTU5LDcgQEAgdm9pZCBNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2Rl
JiBub2QKICAgICAgICAgYXBwZW5kQ29tbWVudChyZXN1bHQsIGRvd25jYXN0PENvbW1lbnQ+KG5v
ZGUpLmRhdGEoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9E
RToKLSAgICAgICAgYXBwZW5kWE1MRGVjbGFyYXRpb24ocmVzdWx0LCB0b0RvY3VtZW50KG5vZGUp
KTsKKyAgICAgICAgYXBwZW5kWE1MRGVjbGFyYXRpb24ocmVzdWx0LCBkb3duY2FzdDxEb2N1bWVu
dD4obm9kZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdN
RU5UX05PREU6CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5k
ZXggZTVhMDllOTM0ZGNjMjRiNTY3MjI2NDE4MzAyNzQyYzQ2ZjE1YTRhOS4uMGE5YjVhMmJmMGQ1
YjFjNTgwYTRlMzlkYjNhYTdlMGJmODBmYmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oSFRNTERvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQoKTsg
fQotICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0
dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc0hUTUxEb2N1bWVudCh0b0RvY3VtZW50KG5v
ZGUpKTsgfQorICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUp
IHsgcmV0dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBpc0hUTUxEb2N1bWVudChkb3duY2FzdDxE
b2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE5h
bWVDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5o
CmluZGV4IDgwMTAwZjYxYWM5MzhiMDY0OWIwODNkNzQxZDQ5ZjQ3NzA5ZDQzZWYuLjA5MTRjNTQz
Y2IyOGZhYjRlNmRiNTU1YzQ0NDU3ODlmZDA5ODkwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTmFtZUNvbGxlY3Rpb24uaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBIVE1MTmFtZUNvbGxl
Y3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGljOgogICAgIH5IVE1MTmFtZUNv
bGxlY3Rpb24oKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCgpIHsgcmV0dXJuIHRvRG9jdW1l
bnQob3duZXJOb2RlKCkpOyB9CisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KG93bmVyTm9kZSgpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE5h
bWVDb2xsZWN0aW9uKERvY3VtZW50JiwgQ29sbGVjdGlvblR5cGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA2
ODA2NDk0OTI4ZGM4MzFjODdkODlkMThlOTdmZjg1OTJhMDYxYjlkLi4yZjRmNmNkZDMxNzRkYzdj
OTcxMWEwMWIwM2FkZTgwYWNmMGNiOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxl
RWxlbWVudC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpmaW5p
c2hQYXJzaW5nQ2hpbGRyZW4oKQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBI
VE1MU3R5bGVFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9p
bnQpCiB7CiAgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7Ci0g
ICAgaWYgKGluc2VydGlvblBvaW50LmluRG9jdW1lbnQoKSkKKyAgICBpZiAoaXM8RG9jdW1lbnQ+
KGluc2VydGlvblBvaW50KSkKICAgICAgICAgbV9zdHlsZVNoZWV0T3duZXIuaW5zZXJ0ZWRJbnRv
RG9jdW1lbnQoZG9jdW1lbnQoKSwgKnRoaXMpOwogCiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCmluZGV4IGM5YTI5NzYyMmIwZTM4MWI0MDNm
ODUwYzBlMzkyNjRjYjI1MTNhZTEuLjc4MWQwMmNhMzYzZDhmZmE0NWRkZjI3ODdmN2E1ODUxYTIz
Yzk5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCkBAIC04NCw3ICs4NCw3IEBA
IHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oSW1hZ2VEb2N1bWVudCkK
ICAgICBzdGF0aWMgYm9vbCBpc0ltYWdlRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KSB7IHJldHVybiBkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKTsgfQotICAgIHN0YXRpYyBib29s
IGlzSW1hZ2VEb2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1l
bnROb2RlKCkgJiYgaXNJbWFnZURvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3Rh
dGljIGJvb2wgaXNJbWFnZURvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIGlzPERv
Y3VtZW50Pihub2RlKSAmJiBpc0ltYWdlRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUp
KTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5oCmluZGV4IDdiZTllNjE5YjM5OTRkNTUwZTMxNTgzOWM4N2Y2YmYwMTc5N2Fh
NzIuLmFiNWVkMDgxYTZhNDMxODRkODc5ZGUwN2RiYTYwMjAwZGNjYzRlMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAKIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oTWVkaWFEb2N1bWVudCkKICAgICBzdGF0aWMgYm9vbCBp
c01lZGlhRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVu
dC5pc01lZGlhRG9jdW1lbnQoKTsgfQotICAgIHN0YXRpYyBib29sIGlzTWVkaWFEb2N1bWVudChj
b25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCkgJiYgaXNNZWRp
YURvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNNZWRpYURv
Y3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBp
c01lZGlhRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKTsgfQogU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19FTkQoKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKaW5k
ZXggMDEyZmI5NzBkNTY5MjJkMDk2OWFkNWNiNjg2ODU2MjIxZTZmMTkyZS4uMTg4MzRkNjhlMGEz
NWE1ZTNmMTY2MDA4YWJmYmZjMWFhMmNhN2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogCiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFBsdWdpbkRvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzUGx1Z2luRG9jdW1l
bnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVudC5pc1BsdWdpbkRv
Y3VtZW50KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1BsdWdpbkRvY3VtZW50KGNvbnN0IE5vZGUm
IG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc1BsdWdpbkRvY3VtZW50
KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNQbHVnaW5Eb2N1bWVudChj
b25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBpczxEb2N1bWVudD4obm9kZSkgJiYgaXNQbHVnaW5E
b2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0VORCgpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmlu
ZGV4IGYwZWU2NmI4NmUzZGQ3YzExNjViMDlhZWE5YzA2OTBhZDQ4MTZhYjQuLjk1MWZlOGM3YjUx
YzM0YmZhZDViNmQ2ODY0Y2ViZTQzNDRhNWEwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kKTsKIAotICAgIERvY3VtZW50JiBvd25lckRv
Y3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOyB9
CisgICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQoKSB7IHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsgfQogCiBwcml2YXRlOgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggYWIxOTg4ZjE4ODI4NWMwM2I1ZjcyMGEwZjE5MjM4
NzZlOGVjOGI4Yi4uNTljZjZlOTUzNWU0MTgzYWUzZGE0MDY3YzM3N2M5ODY5MTZjNjNiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtMjg4LDggKzI4OCw4IEBAIHZvaWQg
VlRUQ3VlOjppbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAg
bV93cml0aW5nRGlyZWN0aW9uID0gSG9yaXpvbnRhbDsKICAgICBtX2N1ZUFsaWdubWVudCA9IE1p
ZGRsZTsKICAgICBtX3dlYlZUVE5vZGVUcmVlID0gbnVsbHB0cjsKLSAgICBtX2N1ZUJhY2tkcm9w
Qm94ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSh0b0RvY3VtZW50KGNvbnRleHQpKTsKLSAgICBt
X2N1ZUhpZ2hsaWdodEJveCA9IEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRlKHNwYW5UYWcsIHRvRG9j
dW1lbnQoY29udGV4dCkpOworICAgIG1fY3VlQmFja2Ryb3BCb3ggPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CisgICAgbV9jdWVIaWdobGlnaHRC
b3ggPSBIVE1MU3BhbkVsZW1lbnQ6OmNyZWF0ZShzcGFuVGFnLCBkb3duY2FzdDxEb2N1bWVudD4o
Y29udGV4dCkpOwogICAgIG1fZGlzcGxheURpcmVjdGlvbiA9IENTU1ZhbHVlTHRyOwogICAgIG1f
ZGlzcGxheVNpemUgPSAwOwogICAgIG1fc25hcFRvTGluZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUUmVnaW9uLmgKaW5kZXggNDAyODFhNTRiN2Y0YjExZDcyNWE1YjA1ZTk3ZjBh
YTM1NWJkYzJjNy4uZGI5NjVhYmY5NTEzNGZiOGQyN2ZkYmEzMzZiMTJmZWE5YWMxMzdkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCkBAIC05OCw3ICs5OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgVlRUUmVnaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAot
ICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVudChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOyB9CisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQoKSB7IHJl
dHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsgfQogCiAg
ICAgdm9pZCBwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYmMzNzQ0ZDVlODBlMmM0N2Vl
YTgyN2M5ZWE5ZjgxZjYzODIzYzA0Ni4uY2YyZjc0NTM5NmMyYThmYWRjZjljNzQ0ZjNkYjlhMzU1
MWNmYzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0zNzksMTEgKzM3OSwxMSBAQCBEb2N1bWVudCogSW5zcGVjdG9yRE9NQWdlbnQ6
OmFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZAogICAg
IE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVycm9yU3RyaW5nLCBub2RlSWQpOwogICAgIGlmICgh
bm9kZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKCFub2RlLT5pc0RvY3VtZW50
Tm9kZSgpKSB7CisgICAgaWYgKCFpczxEb2N1bWVudD4obm9kZSkpIHsKICAgICAgICAgKmVycm9y
U3RyaW5nID0gIkRvY3VtZW50IGlzIG5vdCBhdmFpbGFibGUiOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQobm9kZSk7CisgICAgcmV0dXJuIGRv
d25jYXN0PERvY3VtZW50Pihub2RlKTsKIH0KIAogRWxlbWVudCogSW5zcGVjdG9yRE9NQWdlbnQ6
OmFzc2VydEVsZW1lbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkKQpAQCAt
MTMwMSwxMSArMTMwMSwxMSBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6
Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZQogICAgICAgICAgICAg
dmFsdWUtPnNldFRlbXBsYXRlQ29udGVudChidWlsZE9iamVjdEZvck5vZGUoZG93bmNhc3Q8SFRN
TFRlbXBsYXRlRWxlbWVudD4oKmVsZW1lbnQpLmNvbnRlbnQoKSwgMCwgbm9kZXNNYXApKTsKICNl
bmRpZgogCi0gICAgfSBlbHNlIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobm9kZSk7Ci0gICAgICAgIHZhbHVlLT5z
ZXREb2N1bWVudFVSTChkb2N1bWVudFVSTFN0cmluZyhkb2N1bWVudCkpOwotICAgICAgICB2YWx1
ZS0+c2V0QmFzZVVSTChkb2N1bWVudEJhc2VVUkxTdHJpbmcoZG9jdW1lbnQpKTsKLSAgICAgICAg
dmFsdWUtPnNldFhtbFZlcnNpb24oZG9jdW1lbnQtPnhtbFZlcnNpb24oKSk7CisgICAgfSBlbHNl
IGlmIChpczxEb2N1bWVudD4obm9kZSkpIHsKKyAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKTsKKyAgICAgICAgdmFsdWUtPnNldERvY3VtZW50VVJM
KGRvY3VtZW50VVJMU3RyaW5nKCZkb2N1bWVudCkpOworICAgICAgICB2YWx1ZS0+c2V0QmFzZVVS
TChkb2N1bWVudEJhc2VVUkxTdHJpbmcoJmRvY3VtZW50KSk7CisgICAgICAgIHZhbHVlLT5zZXRY
bWxWZXJzaW9uKGRvY3VtZW50LnhtbFZlcnNpb24oKSk7CiAgICAgfSBlbHNlIGlmIChpczxEb2N1
bWVudFR5cGU+KG5vZGUpKSB7CiAgICAgICAgIERvY3VtZW50VHlwZSYgZG9jVHlwZSA9IGRvd25j
YXN0PERvY3VtZW50VHlwZT4oKm5vZGUpOwogICAgICAgICB2YWx1ZS0+c2V0UHVibGljSWQoZG9j
VHlwZS5wdWJsaWNJZCgpKTsKQEAgLTE3MjgsMTAgKzE3MjgsOCBAQCB1bnNpZ25lZCBJbnNwZWN0
b3JET01BZ2VudDo6aW5uZXJDaGlsZE5vZGVDb3VudChOb2RlKiBub2RlKQogCiBOb2RlKiBJbnNw
ZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnROb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKG5v
ZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9E
b2N1bWVudChub2RlKTsKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5vd25lckVsZW1lbnQoKTsK
LSAgICB9CisgICAgaWYgKGlzPERvY3VtZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50Pigqbm9kZSkub3duZXJFbGVtZW50KCk7CiAgICAgcmV0dXJuIG5vZGUtPnBh
cmVudE5vZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA3YjY1YjBiZThkYjcwNzFhMzgwOTc0YjA0
YjgwNGNmNjM2YjhjZjI0Li5lZjAwOGQzYTI2ZmVkNzY5MjVjMzg1NDFkZDMyYzYzNjY1ZjM1Yzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtMTAwLDggKzEwMCw4IEBAIGludCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnNfZnJvbnRlbmRDb3VudGVyID0gMDsKIHN0YXRpYyBGcmFtZSogZnJhbWVGb3JTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAg
ICAgRnJhbWUqIGZyYW1lID0gbnVsbHB0cjsKLSAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgp
KQotICAgICAgICBmcmFtZSA9IHRvRG9jdW1lbnQoY29udGV4dCktPmZyYW1lKCk7CisgICAgaWYg
KGlzPERvY3VtZW50Pihjb250ZXh0KSkKKyAgICAgICAgZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCktPmZyYW1lKCk7CiAgICAgcmV0dXJuIGZyYW1lOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
ZDBhNWJiYjY4ZjFlYmNhYTcwNGRlMGM5ODk4Yjg3MzQwODg4ZThlZi4uYjllMGNlNWYwODE5ODNl
NTY3ZWUxYjg2YmYxMGJjZDgxM2MxMGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjA2Miw4ICsyMDYyLDggQEAg
aW5saW5lIEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5z
dHJ1bWVudGluZ0FnZW50c0ZvckNvbnQKIHsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpCi0gICAgICAgIHJl
dHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZSh0b0RvY3VtZW50KGNvbnRleHQpLT5wYWdl
KCkpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpCisgICAgICAgIHJldHVybiBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yUGFnZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCktPnBhZ2Uo
KSk7CiAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHNGb3JOb25Eb2N1bWVudENvbnRleHQo
Y29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAK
aW5kZXggNGIwZjY1MWYyZDcwMWQwZTUxYjZiN2Q3ZWVhZWI5YmQ0ZDNlYTQwYy4uMzUzY2VmMjcz
NDJjZWQ4ZmUxZDdiMmU1ODYzYjVmNDVjOTJkYTU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFRleHRUcmFja0xv
YWRlcjo6ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSog
cmVzb3VyYwogdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKCkK
IHsKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVz
c2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHRleHQgdHJhY2sgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7Ci0gICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwogICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgIG1f
c3RhdGUgPSBGYWlsZWQ7CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBUZXh0VHJhY2tMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NF
UlQobV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CiAKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAg
aWYgKCFtX2Nyb3NzT3JpZ2luTW9kZS5pc051bGwoKQogICAgICAgICAmJiAhZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVzb3VyY2UtPnJlc3BvbnNlKCkudXJsKCkpCiAg
ICAgICAgICYmICFyZXNvdXJjZS0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKGRvY3VtZW50LT5z
ZWN1cml0eU9yaWdpbigpKSkgewpAQCAtMTU1LDggKzE1NSw4IEBAIGJvb2wgVGV4dFRyYWNrTG9h
ZGVyOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSkK
IHsKICAgICBjYW5jZWxMb2FkKCk7CiAKLSAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5pc0RvY3VtZW50KCkpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBBU1NFUlQoaXM8RG9jdW1lbnQ+KG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCBjdWVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwo
dXJsKSkpOwogCiAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA0MWE3YzFhNTg5ODYyMTY1
YmVkNDMwMDAxZGE4M2RmNTVmOWM5YzhlLi4yZThjMmJmZjdhYzBjMDNmY2E1MGU3NjQ4MTMwY2Ey
NGYwYjhjZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJs
ZUxvYWRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAgaWYgKGNvbnRl
eHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSkKICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFi
bGVMb2FkZXI6OmNyZWF0ZSh0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLCBjbGllbnQsIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIHJlcXVlc3QsIG9wdGlvbnMpOwogCi0gICAgcmV0
dXJuIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHRvRG9jdW1lbnQoKmNvbnRleHQp
LCAqY2xpZW50LCByZXF1ZXN0LCBvcHRpb25zKTsKKyAgICByZXR1cm4gRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KSwgKmNsaWVudCwg
cmVxdWVzdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNsaWVudCwg
Y29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCkBAIC03MSw3ICs3MSw3IEBA
IHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoKnRvRG9j
dW1lbnQoY29udGV4dCksIHJlcXVlc3QsIGNsaWVudCwgb3B0aW9ucyk7CisgICAgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KCpkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCksIHJlcXVlc3QsIGNsaWVudCwgb3B0aW9ucyk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCA2MTEwZWMzODdjMDAxYzYwNWZhOTQ0ZmIxNzQ2MDJmNWZiMmFm
ZGIyLi44NTc5NWE4ZGEzM2QxY2Q4YjI1YmEzYzMxZGZiY2ZmODQyM2UzYmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xMDEs
MTQgKzEwMSwxNCBAQCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjp+
TWFpblRocmVhZEJyaWRnZSgpCiB2b2lkIFdvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJl
YWRCcmlkZ2U6Om1haW5UaHJlYWRDcmVhdGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgTWFpblRocmVhZEJyaWRnZSogdGhpc1B0ciwgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhLCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyBvcHRpb25zLCBjb25zdCBTdHJpbmcmIG91dGdvaW5nUmVmZXJyZXIpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KCZj
b250ZXh0KTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dCk7CiAKICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdDo6YWRvcHQocmVxdWVzdERhdGEpKTsKICAgICByZXF1ZXN0LT5zZXRIVFRQUmVmZXJyZXIo
b3V0Z29pbmdSZWZlcnJlcik7CiAgICAgLy8gRklYTUU6IElmIHRoZSBhIHNpdGUgcmVxdWVzdHMg
YSBsb2NhbCByZXNvdXJjZSwgdGhlbiB0aGlzIHdpbGwgcmV0dXJuIGEgbm9uLXplcm8gdmFsdWUg
YnV0IHRoZSBzeW5jIHBhdGgKICAgICAvLyB3aWxsIHJldHVybiBhIDAgdmFsdWUuICBFaXRoZXIg
dGhpcyBzaG91bGQgcmV0dXJuIDAgb3IgdGhlIG90aGVyIGNvZGUgcGF0aCBzaG91bGQgZG8gYSBj
YWxsYmFjayB3aXRoCiAgICAgLy8gYSBmYWlsdXJlLgotICAgIHRoaXNQdHItPm1fbWFpblRocmVh
ZExvYWRlciA9IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCpkb2N1bWVudCwgKnRo
aXNQdHIsICpyZXF1ZXN0LCBvcHRpb25zKTsKKyAgICB0aGlzUHRyLT5tX21haW5UaHJlYWRMb2Fk
ZXIgPSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShkb2N1bWVudCwgKnRoaXNQdHIs
ICpyZXF1ZXN0LCBvcHRpb25zKTsKICAgICBBU1NFUlQodGhpc1B0ci0+bV9tYWluVGhyZWFkTG9h
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwCmluZGV4IGY5YzVjOTgwMTE5NDZjODY5NDVjM2I1OTQxYTY5NzE2Nzk2ZTg5OTQuLjQ0YWZm
MTZlZjkzNzE3OTQwMzUyNjc3M2U5MDYwNmU2OTFiMDk3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTE1NzcsMjAgKzE1NzcsMjAgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVuZm9yY2VTYW5kYm94RmxhZ3MoU2FuZGJveEZs
YWdzIG1hc2spIGNvbnN0CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5lbmZvcmNlU2Fu
ZGJveEZsYWdzKG1hc2spOwogfQogCi1zdGF0aWMgU3RyaW5nIHN0cmlwVVJMRm9yVXNlSW5SZXBv
cnQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkKK3N0YXRpYyBTdHJpbmcgc3Ry
aXBVUkxGb3JVc2VJblJlcG9ydChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQog
ewogICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAg
IGlmICghdXJsLmlzSGllcmFyY2hpY2FsKCkgfHwgdXJsLnByb3RvY29sSXMoImZpbGUiKSkKICAg
ICAgICAgcmV0dXJuIHVybC5wcm90b2NvbCgpOwotICAgIHJldHVybiBkb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpID8gdXJsLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJl
cigpIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpLT50b1N0cmluZygpOworICAgIHJldHVy
biBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHVybCkgPyB1cmwuc3RyaXBw
ZWRGb3JVc2VBc1JlZmVycmVyKCkgOiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCktPnRvU3Ry
aW5nKCk7CiB9CiAKICNpZiBFTkFCTEUoQ1NQX05FWFQpCi1zdGF0aWMgdm9pZCBnYXRoZXJTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGF0YShTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
SW5pdCYgaW5pdCwgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRl
eHQsIGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlRGlyZWN0aXZlLCBjb25zdCBVUkwmIGJsb2NrZWRV
UkwsIGNvbnN0IFN0cmluZyYgaGVhZGVyKQorc3RhdGljIHZvaWQgZ2F0aGVyU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudERhdGEoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmIGlu
aXQsIERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25z
dCBTdHJpbmcmIGVmZmVjdGl2ZURpcmVjdGl2ZSwgY29uc3QgVVJMJiBibG9ja2VkVVJMLCBjb25z
dCBTdHJpbmcmIGhlYWRlcikKIHsKLSAgICBpbml0LmRvY3VtZW50VVJJID0gZG9jdW1lbnQtPnVy
bCgpLnN0cmluZygpOwotICAgIGluaXQucmVmZXJyZXIgPSBkb2N1bWVudC0+cmVmZXJyZXIoKTsK
KyAgICBpbml0LmRvY3VtZW50VVJJID0gZG9jdW1lbnQudXJsKCkuc3RyaW5nKCk7CisgICAgaW5p
dC5yZWZlcnJlciA9IGRvY3VtZW50LnJlZmVycmVyKCk7CiAgICAgaW5pdC5ibG9ja2VkVVJJID0g
c3RyaXBVUkxGb3JVc2VJblJlcG9ydChkb2N1bWVudCwgYmxvY2tlZFVSTCk7CiAgICAgaW5pdC52
aW9sYXRlZERpcmVjdGl2ZSA9IGRpcmVjdGl2ZVRleHQ7CiAgICAgaW5pdC5lZmZlY3RpdmVEaXJl
Y3RpdmUgPSBlZmZlY3RpdmVEaXJlY3RpdmU7CkBAIC0xNjEzLDExICsxNjEzLDExIEBAIHZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJl
Y3RpdmVUZXh0LCBjb25zdCBTCiAgICAgbG9nVG9Db25zb2xlKGNvbnNvbGVNZXNzYWdlLCBjb250
ZXh0VVJMLCBjb250ZXh0TGluZSwgc3RhdGUpOwogCiAgICAgLy8gRklYTUU6IFN1cHBvcnQgc2Vu
ZGluZyByZXBvcnRzIGZyb20gd29ya2VyLgotICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgaWYgKCFpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBGcmFtZSogZnJhbWUg
PSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKQEAg
LTE2MjYsNyArMTYyNiw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9s
YXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGNvZGUgbWVhbnMgdGhhdCB3ZSdyZSBnYXRoZXJpbmcgaW5mb3JtYXRpb24gbGlr
ZSBsaW5lIG51bWJlcnMgdHdpY2UuIE9uY2Ugd2UgY2FuIGJyaW5nIHRoaXMgb3V0IGZyb20gYmVo
aW5kIHRoZSBmbGFnLCB3ZSBzaG91bGQgcmV1c2UgdGhlIGRhdGEgZ2F0aGVyZWQgaGVyZSB3aGVu
IGdlbmVyYXRpbmcgdGhlIEpTT04gcmVwb3J0IGJlbG93LgogICAgICAgICBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50SW5pdCBpbml0OwogICAgICAgICBnYXRoZXJTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50RGF0YShpbml0LCBkb2N1bWVudCwgZGlyZWN0aXZlVGV4dCwgZWZmZWN0aXZl
RGlyZWN0aXZlLCBibG9ja2VkVVJMLCBoZWFkZXIpOwotICAgICAgICBkb2N1bWVudC0+ZW5xdWV1
ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBpbml0KSk7CisgICAgICAgIGRv
Y3VtZW50LmVucXVldWVEb2N1bWVudEV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25FdmVudCwgaW5pdCkp
OwogICAgIH0KICNlbmRpZgogCkBAIC0xNjQ0LDggKzE2NDQsOCBAQCB2b2lkIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwg
Y29uc3QgUwogICAgIC8vIGhhcm1sZXNzIGluZm9ybWF0aW9uLgogCiAgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gY3NwUmVwb3J0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICBj
c3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImRvY3VtZW50LXVyaSIpLCBkb2N1bWVu
dC0+dXJsKCkuc3RyaXBwZWRGb3JVc2VBc1JlZmVycmVyKCkpOwotICAgIGNzcFJlcG9ydC0+c2V0
U3RyaW5nKEFTQ0lJTGl0ZXJhbCgicmVmZXJyZXIiKSwgZG9jdW1lbnQtPnJlZmVycmVyKCkpOwor
ICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZG9jdW1lbnQtdXJpIiksIGRv
Y3VtZW50LnVybCgpLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJlcigpKTsKKyAgICBjc3BSZXBvcnQt
PnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInJlZmVycmVyIiksIGRvY3VtZW50LnJlZmVycmVyKCkp
OwogICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidmlvbGF0ZWQtZGlyZWN0
aXZlIiksIGRpcmVjdGl2ZVRleHQpOwogI2lmIEVOQUJMRShDU1BfTkVYVCkKICAgICBpZiAoZXhw
ZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKaW5kZXggMzM1
ODczMDUxYWI4NTEyZmUxYmUzZTYyZTA5MTMwZGM3YzNiMWVhNy4uOGNjMGFmNzZiMDk2NzM3OTA5
MTJkMjZhMzY5NTY0M2E2OWYyOGMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
cnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcApAQCAtNTksNyAr
NTksNyBAQCBDcnlwdG86On5DcnlwdG8oKQogCiBEb2N1bWVudCogQ3J5cHRvOjpkb2N1bWVudCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7CiB9CiAKIHZvaWQgQ3J5cHRvOjpnZXRSYW5kb21WYWx1ZXMoQXJyYXlCdWZmZXJWaWV3KiBh
cnJheSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IGI3
ZTE4YTBjNTJkNzgxMzc5NzhkYzhlYTM4Y2M2MjY3YjBiNDJhMmQuLmFlYzkwMTg1NmM5YWRhNjZh
NThiMGQ0ZGYyOWNjMDg3MTk1NGEzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0x
MjAsOCArMTIwLDggQEAgaW50IERPTVRpbWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWQKICAgICAvLyBpcyBkZXN0cm95
ZWQsIG9yIGlmIGV4cGxpY2l0bHkgY2FuY2VsbGVkIGJ5IHJlbW92ZUJ5SWQuIAogICAgIERPTVRp
bWVyKiB0aW1lciA9IG5ldyBET01UaW1lcihjb250ZXh0LCBXVEY6Om1vdmUoYWN0aW9uKSwgdGlt
ZW91dCwgc2luZ2xlU2hvdCk7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChjb250ZXh0LT5p
c0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gdG9Eb2N1bWVudCgq
Y29udGV4dCk7CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkgeworICAgICAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpOwogICAgICAgICBi
b29sIGRpZERlZmVyVGltZW91dCA9IGRvY3VtZW50LmZyYW1lKCkgJiYgZG9jdW1lbnQuZnJhbWUo
KS0+dGltZXJzUGF1c2VkKCk7CiAgICAgICAgIGlmICghZGlkRGVmZXJUaW1lb3V0ICYmIHRpbWVv
dXQgPD0gMTAwICYmIHNpbmdsZVNob3QpIHsKICAgICAgICAgICAgIFdLU2V0T2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UpOwpAQCAtMTczLDggKzE3Myw4
IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkp
IHsKLSAgICAgICAgZG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIGlmIChpczxE
b2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCk7CiAgICAgICAgIEFTU0VSVCghZG9jdW1lbnQtPmZyYW1lKCktPnRpbWVyc1Bh
dXNlZCgpKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAy
YjJmMjA0MjRjYWI4NGM5MTExNjAyMTgwOTZkZTZjYzM2ODQ4NzliLi40MTk2M2YxZTdjODVlNmVh
Y2NiZWUwNGNmODY3OWQ4YTM2M2U4MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC05NzMsOCArOTczLDggQEAgdm9pZCBET01XaW5kb3c6OmZvY3VzKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCiAgICAgYm9vbCBhbGxvd0ZvY3VzID0gV2luZG93Rm9jdXNBbGxvd2Vk
SW5kaWNhdG9yOjp3aW5kb3dGb2N1c0FsbG93ZWQoKSB8fCAhbV9mcmFtZS0+c2V0dGluZ3MoKS53
aW5kb3dGb2N1c1Jlc3RyaWN0ZWQoKTsKICAgICBpZiAoY29udGV4dCkgewogICAgICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBEb2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSB0
b0RvY3VtZW50KGNvbnRleHQpOwotICAgICAgICBpZiAob3BlbmVyKCkgJiYgb3BlbmVyKCkgIT0g
dGhpcyAmJiBhY3RpdmVEb2N1bWVudC0+ZG9tV2luZG93KCkgPT0gb3BlbmVyKCkpCisgICAgICAg
IERvY3VtZW50JiBhY3RpdmVEb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7
CisgICAgICAgIGlmIChvcGVuZXIoKSAmJiBvcGVuZXIoKSAhPSB0aGlzICYmIGFjdGl2ZURvY3Vt
ZW50LmRvbVdpbmRvdygpID09IG9wZW5lcigpKQogICAgICAgICAgICAgYWxsb3dGb2N1cyA9IHRy
dWU7CiAgICAgfQogCkBAIC0xMDI1LDExICsxMDI1LDcgQEAgdm9pZCBET01XaW5kb3c6OmNsb3Nl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAKICAgICBpZiAoY29udGV4dCkgewog
ICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBEb2N1bWVudCogYWN0aXZl
RG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOwotICAgICAgICBpZiAoIWFjdGl2ZURvY3Vt
ZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICghYWN0aXZlRG9jdW1lbnQt
PmNhbk5hdmlnYXRlKG1fZnJhbWUpKQorICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkuY2FuTmF2aWdhdGUobV9mcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xNDEzLDI0ICsxNDA5LDI0IEBAIERPTVdpbmRvdyogRE9NV2luZG93Ojp0b3AoKSBj
b25zdAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIHJldHVybiB0b0RvY3VtZW50KGNvbnRleHQp
OworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiB9CiAKIFBhc3NSZWZQ
dHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1lZGlhKCkgY29uc3QKIHsKICAgICBpZiAo
IWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX21lZGlhKQogICAgICAgICBtX21lZGlhID0g
U3R5bGVNZWRpYTo6Y3JlYXRlKG1fZnJhbWUpOwogICAgIHJldHVybiBtX21lZGlhLmdldCgpOwog
fQogCi1QYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+IERPTVdpbmRvdzo6Z2V0Q29tcHV0
ZWRTdHlsZShFbGVtZW50KiBlbHQsIGNvbnN0IFN0cmluZyYgcHNldWRvRWx0KSBjb25zdAorUGFz
c1JlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBET01XaW5kb3c6OmdldENvbXB1dGVkU3R5bGUo
RWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbHQpIGNvbnN0CiB7Ci0gICAg
aWYgKCFlbHQpCi0gICAgICAgIHJldHVybiAwOworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
OjpjcmVhdGUoZWx0LCBmYWxzZSwgcHNldWRvRWx0KTsKKyAgICByZXR1cm4gQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoZWxlbWVudCwgZmFsc2UsIHBzZXVkb0VsdCk7CiB9CiAK
IFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IERPTVdpbmRvdzo6Z2V0TWF0Y2hlZENTU1J1bGVzKEVs
ZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgYm9vbCBhdXRob3JP
bmx5KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBkZDNm
NjVhZGM3MGNkZjgxZjc1ZTliYWM0YzM1NThiODI2ZTRkNWZiLi42MTZkMTMxMzVlYjNkZmJjZWRi
ZTc4YTM5YzNiZjQ1ZTNiYzE3NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcApAQCAtMTkyLDEwICsxOTIsMTAgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRl
ZChEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhh
bmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0
YVRyYW5zZmVyLmdldCgpKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3ko
RGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJhbnNm
ZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgfQotICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQo
MCk7CisgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChudWxscHRyKTsKICAgICBpZiAobV9maWxl
SW5wdXRFbGVtZW50VW5kZXJNb3VzZSkKICAgICAgICAgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJN
b3VzZS0+c2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhmYWxzZSk7Ci0gICAgbV9maWxlSW5wdXRF
bGVtZW50VW5kZXJNb3VzZSA9IDA7CisgICAgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSA9
IG51bGxwdHI7CiB9CiAKIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVk
KERyYWdEYXRhJiBkcmFnRGF0YSkKQEAgLTI1NSw3ICsyNTUsNyBAQCBEcmFnT3BlcmF0aW9uIERy
YWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSYgZHJhZ0RhdGEpCiAK
ICAgICBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9IG1fY2xpZW50LmFjdGlvbk1hc2tGb3JEcmFn
KGRyYWdEYXRhKTsKICAgICBpZiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gPT0gRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uTm9uZSkgewotICAgICAgICBjYW5jZWxEcmFnKCk7IC8vIEZJWE1FOiBXaHkg
bm90IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKT8KKyAgICAgICAgY2FuY2VsRHJhZygp
OyAvLyBGSVhNRTogV2h5IG5vdCBjYWxsIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQobnVsbHB0cik/
CiAgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9uZTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudFNvdXJjZS5jcHAKaW5kZXggMDcyZGZhYWZlYmY0Njg3ZTcxZmE2NDJhMzE1YjE5YmFm
ZGQwYWI0My4uMzM2ZTE1MWI2NDhjMTU2NTRkYWRhMDkyZmQ1NWYwMTljYTRhNTkzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKQEAgLTc3LDI1ICs3NywyNSBAQCBQYXNzUmVmUHRy
PEV2ZW50U291cmNlPiBFdmVudFNvdXJjZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbgogewogICAgIGlmICh1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIGVjID0g
U1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAogICAgIFVSTCBmdWxsVVJMID0gY29udGV4dC5jb21wbGV0ZVVSTCh1cmwpOwogICAg
IGlmICghZnVsbFVSTC5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8g
RklYTUU6IENvbnZlcnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50
IFNlY3VyaXR5IFBvbGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgogICAg
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZmFsc2U7
Ci0gICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50JiBkb2N1
bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0
KSkgeworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dCk7CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhY29udGV4dC5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+YWxsb3dDb25uZWN0VG9Tb3VyY2UoZnVsbFVSTCkpIHsKICAgICAgICAgLy8gRklYTUU6IFNo
b3VsZCB0aGlzIGJlIHRocm93aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgZWMgPSBTRUNVUklU
WV9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKICAgICBSZWZQdHI8RXZlbnRTb3VyY2U+IHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBFdmVudFNv
dXJjZShjb250ZXh0LCBmdWxsVVJMLCBldmVudFNvdXJjZUluaXQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiMTc2MzE2NzEwYWU4MWIwMDc0NWQxMDVjZjc0
ZmVkNmZiOWRmMGZhLi5jMTRkMDk3ZGU1ODY1MWMzNGQ0MTM0OTk2MjBiMGIxYzIzODRiNTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC04NzYsOCArODc2LDgg
QEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2EKICAgICBFbGVtZW50KiBmb2N1c2VkRWxlbWVudCA9
IGZvY3VzZWREb2N1bWVudC0+Zm9jdXNlZEVsZW1lbnQoKTsKICAgICBOb2RlKiBjb250YWluZXIg
PSBmb2N1c2VkRG9jdW1lbnQ7CiAKLSAgICBpZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgp
KQotICAgICAgICB0b0RvY3VtZW50KGNvbnRhaW5lciktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGFpbmVyKSkKKyAgICAg
ICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250YWluZXIpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOwogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgc3RhcnRpbmcgcmVjdC4K
ICAgICBMYXlvdXRSZWN0IHN0YXJ0aW5nUmVjdDsKQEAgLTkwMCw4ICs5MDAsOCBAQCBib29sIEZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIEtleWJvYQogICAgICAgICBjb25zdW1lZCA9IGFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHlJbkNvbnRhaW5lcihjb250YWluZXIsIHN0YXJ0aW5nUmVjdCwgZGlyZWN0aW9uLCBldmVu
dCk7CiAgICAgICAgIHN0YXJ0aW5nUmVjdCA9IG5vZGVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVz
KGNvbnRhaW5lciwgdHJ1ZSAvKiBpZ25vcmUgYm9yZGVyICovKTsKICAgICAgICAgY29udGFpbmVy
ID0gc2Nyb2xsYWJsZUVuY2xvc2luZ0JveE9yUGFyZW50RnJhbWVGb3JOb2RlSW5EaXJlY3Rpb24o
ZGlyZWN0aW9uLCBjb250YWluZXIpOwotICAgICAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5l
ci0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgICAgIHRvRG9jdW1lbnQoY29udGFpbmVyKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGlmIChjb250
YWluZXIgJiYgaXM8RG9jdW1lbnQ+KGNvbnRhaW5lcikpCisgICAgICAgICAgICBkb3duY2FzdDxE
b2N1bWVudD4oKmNvbnRhaW5lcikudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAgICAgfSB3aGlsZSAoIWNvbnN1bWVkICYmIGNvbnRhaW5lcik7CiAKICAgICByZXR1cm4g
Y29uc3VtZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcAppbmRleCA3NGNlZjRkZDMyMTM4MWMyZjkz
OWI4NmNlYzNhNDQ2MTZmN2QzMjNiLi5mMjg5ZWE1YWZlNTA3N2RlZjZiZTY5ZGYxMDgyNjgxZjdm
OTY5NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lk
IEhpc3Rvcnk6OmdvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGludCBkaXN0YW5j
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBE
b2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIERvY3Vt
ZW50KiBhY3RpdmVEb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAgICBp
ZiAoIWFjdGl2ZURvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXggZTVmYjA1ZTMyYzkxYTdkOGIxOWRjYzg3NjU4
YzkzMjUzZjA5NTljYS4uMjhkOWQzZDUwMjdiYzk2ZGI3YTkzYjVkODFjOWEzYmM5ZjJkMWM0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTM2Niw4ICsz
NjYsOCBAQCBib29sIHNjcm9sbEluRGlyZWN0aW9uKEZyYW1lKiBmcmFtZSwgRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uKQogYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihOb2RlKiBjb250YWluZXIsIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQoY29udGFpbmVyKTsKLSAgICBp
ZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gc2Nyb2xsSW5E
aXJlY3Rpb24odG9Eb2N1bWVudChjb250YWluZXIpLT5mcmFtZSgpLCBkaXJlY3Rpb24pOworICAg
IGlmIChpczxEb2N1bWVudD4oY29udGFpbmVyKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbEluRGly
ZWN0aW9uKGRvd25jYXN0PERvY3VtZW50PigqY29udGFpbmVyKS5mcmFtZSgpLCBkaXJlY3Rpb24p
OwogCiAgICAgaWYgKCFjb250YWluZXItPnJlbmRlckJveCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC00MzUsMTEgKzQzNSwxMSBAQCBOb2RlKiBzY3JvbGxhYmxlRW5jbG9zaW5nQm94T3JQ
YXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiBkaXJlYwogICAgIEFT
U0VSVChub2RlKTsKICAgICBOb2RlKiBwYXJlbnQgPSBub2RlOwogICAgIGRvIHsKLSAgICAgICAg
aWYgKHBhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgICAgIHBhcmVudCA9IHRvRG9j
dW1lbnQocGFyZW50KS0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5vd25lckVsZW1lbnQoKTsKKyAgICAg
ICAgaWYgKGlzPERvY3VtZW50PihwYXJlbnQpKQorICAgICAgICAgICAgcGFyZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCpwYXJlbnQpLmRvY3VtZW50KCkuZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC0+cGFyZW50Tm9kZSgp
OwotICAgIH0gd2hpbGUgKHBhcmVudCAmJiAhY2FuU2Nyb2xsSW5EaXJlY3Rpb24ocGFyZW50LCBk
aXJlY3Rpb24pICYmICFwYXJlbnQtPmlzRG9jdW1lbnROb2RlKCkpOworICAgIH0gd2hpbGUgKHBh
cmVudCAmJiAhY2FuU2Nyb2xsSW5EaXJlY3Rpb24ocGFyZW50LCBkaXJlY3Rpb24pICYmICFpczxE
b2N1bWVudD4ocGFyZW50KSk7CiAKICAgICByZXR1cm4gcGFyZW50OwogfQpAQCAtNDUxLDggKzQ1
MSw4IEBAIGJvb2wgY2FuU2Nyb2xsSW5EaXJlY3Rpb24oY29uc3QgTm9kZSogY29udGFpbmVyLCBG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgaWYgKGlzPEhUTUxTZWxlY3RFbGVtZW50Pihj
b250YWluZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoY29udGFpbmVyLT5p
c0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gY2FuU2Nyb2xsSW5EaXJlY3Rpb24odG9E
b2N1bWVudChjb250YWluZXIpLT5mcmFtZSgpLCBkaXJlY3Rpb24pOworICAgIGlmIChpczxEb2N1
bWVudD4oY29udGFpbmVyKSkKKyAgICAgICAgcmV0dXJuIGNhblNjcm9sbEluRGlyZWN0aW9uKGRv
d25jYXN0PERvY3VtZW50PigqY29udGFpbmVyKS5mcmFtZSgpLCBkaXJlY3Rpb24pOwogCiAgICAg
aWYgKCFpc1Njcm9sbGFibGVOb2RlKGNvbnRhaW5lcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTUyMCw4ICs1MjAsOCBAQCBMYXlvdXRSZWN0IG5vZGVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5h
dGVzKE5vZGUqIG5vZGUsIGJvb2wgaWdub3JlQm9yZGVyKQogewogICAgIEFTU0VSVChub2RlICYm
IG5vZGUtPnJlbmRlcmVyKCkgJiYgIW5vZGUtPmRvY3VtZW50KCkudmlldygpLT5uZWVkc0xheW91
dCgpKTsKIAotICAgIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4g
ZnJhbWVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVzKHRvRG9jdW1lbnQobm9kZSktPmZyYW1lKCkp
OworICAgIGlmIChpczxEb2N1bWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBmcmFtZVJlY3RJ
bkFic29sdXRlQ29vcmRpbmF0ZXMoZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKS5mcmFtZSgpKTsK
ICAgICBMYXlvdXRSZWN0IHJlY3QgPSByZWN0VG9BYnNvbHV0ZUNvb3JkaW5hdGVzKG5vZGUtPmRv
Y3VtZW50KCkuZnJhbWUoKSwgbm9kZS0+Ym91bmRpbmdCb3goKSk7CiAKICAgICAvLyBGb3IgYXV0
aG9ycyB0aGF0IHVzZSBib3JkZXIgaW5zdGVhZCBvZiBvdXRsaW5lIGluIHRoZWlyIENTUywgd2Ug
Y29tcGVuc2F0ZSBieSBpZ25vcmluZyB0aGUgYm9yZGVyIHdoZW4gY2FsY3VsYXRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RvY3VtZW50LmgKaW5kZXggOTk2MDE1ZWVkMTlhMzg5M2ZkMWEwMGJjZDczYjA5OGM0
ZjVkNGNmOC4uNmNhY2YwM2E4MWU4Y2JjNzNiOTRmYmU2MmYzYTM0NWJmOGViZjc5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAogU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihTVkdEb2N1bWVudCkKICAgICBzdGF0aWMgYm9vbCBpc1NW
R0RvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gZG9jdW1lbnQuaXNT
VkdEb2N1bWVudCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNTVkdEb2N1bWVudChjb25zdCBOb2Rl
JiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCkgJiYgaXNTVkdEb2N1bWVudCh0
b0RvY3VtZW50KG5vZGUpKTsgfQorICAgIHN0YXRpYyBib29sIGlzU1ZHRG9jdW1lbnQoY29uc3Qg
Tm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGlzU1ZHRG9jdW1lbnQo
ZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggODhhY2QxZjExZjY0ZTI5ZDc2MmNiMzQyYTE1NzA1MzgwZGEyMjZlYy4uNDQxNTc1
MDI2ZDQwZTE3NmEzNmQ1NzczNmQ2N2U4NzE1MmRlY2VhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtMzE5LDEzICszMTksMTMgQEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMo
RG9jdW1lbnQqIGRvY3VtZW50KQogCiBEb2N1bWVudCogSW50ZXJuYWxzOjpjb250ZXh0RG9jdW1l
bnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogfQogCiBGcmFtZSogSW50ZXJuYWxzOjpmcmFtZSgpIGNvbnN0CiB7CiAgICAgaWYg
KCFjb250ZXh0RG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIHJldHVybiBjb250ZXh0RG9jdW1lbnQoKS0+ZnJhbWUoKTsKIH0KIApAQCAt
MTkxNiw4ICsxOTE2LDggQEAgdm9pZCBJbnRlcm5hbHM6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RMYXlvdXRUYXNrcyhOb2RlKgogICAgIERvY3VtZW50KiBk
b2N1bWVudDsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIGRvY3VtZW50ID0gY29udGV4dERvY3Vt
ZW50KCk7Ci0gICAgZWxzZSBpZiAobm9kZS0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgZG9j
dW1lbnQgPSB0b0RvY3VtZW50KG5vZGUpOworICAgIGVsc2UgaWYgKGlzPERvY3VtZW50Pihub2Rl
KSkKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4obm9kZSk7CiAgICAgZWxz
ZSBpZiAoaXM8SFRNTElGcmFtZUVsZW1lbnQ+KG5vZGUpKQogICAgICAgICBkb2N1bWVudCA9IGRv
d25jYXN0PEhUTUxJRnJhbWVFbGVtZW50Pigqbm9kZSkuY29udGVudERvY3VtZW50KCk7CiAgICAg
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0
U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dC5jcHAKaW5kZXggM2IxYjkxY2VlMzEyOTNhOTJjMzYzOWY1MGNjMjAwOWZlZTk0MjExOC4uYWVh
OGU0YTkwZDQxMWVlYzg3N2IwZDQ5ZTM5Zjk3MGYzMjQyMjJmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtNDYsOCArNDYsOCBA
QCB2b2lkIGluamVjdEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICBK
U0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2xvYmFs
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKHNjcmlwdENvbnRleHQt
PmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0o
KSwgSWRlbnRpZmllcihleGVjLCBJbnRlcm5hbHM6OmludGVybmFsc0lkKSwgdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIEludGVybmFsczo6Y3JlYXRlKHRvRG9jdW1lbnQoc2NyaXB0Q29udGV4dCkp
KSk7CisgICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRDb250ZXh0KSkKKyAgICAgICAgZ2xvYmFs
T2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCBJbnRlcm5hbHM6
OmludGVybmFsc0lkKSwgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIEludGVybmFsczo6Y3JlYXRl
KGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRDb250ZXh0KSkpKTsKIH0KIAogdm9pZCByZXNldElu
dGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKQEAgLTU2LDcgKzU2LDcgQEAgdm9p
ZCByZXNldEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICBKU0xvY2tI
b2xkZXIgbG9jayhleGVjKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2xvYmFsT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgUGFnZSogcGFnZSA9IHRvRG9jdW1lbnQo
c2NyaXB0Q29udGV4dCktPmZyYW1lKCktPnBhZ2UoKTsKKyAgICBQYWdlKiBwYWdlID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KHNjcmlwdENvbnRleHQpLT5mcmFtZSgpLT5wYWdlKCk7CiAgICAgSW50ZXJu
YWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKHBhZ2UpOwogICAgIEludGVybmFsU2V0dGluZ3M6
OmZyb20ocGFnZSktPnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAK
aW5kZXggOTMwYzYxNGE0MmQwMjc2NTM1OTdlMjhjNjliNTgwZjRkMjk3NjNkOS4uZjlkMGUzYWI4
ODVhODA0NDU3OTJjNmIyNzQ3NDJlNjkzYzZhMGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAgLTIy
OCw3ICsyMjgsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclByb3h5OjphZGRUb1dvcmtlckRvY3VtZW50
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0KTsK
ICAgICBBU1NFUlQoIWlzQ2xvc2luZygpKTsKICAgICBNdXRleExvY2tlciBsb2NrKG1fd29ya2Vy
RG9jdW1lbnRzTG9jayk7Ci0gICAgbV93b3JrZXJEb2N1bWVudHMuYWRkKHRvRG9jdW1lbnQoY29u
dGV4dCkpOworICAgIG1fd29ya2VyRG9jdW1lbnRzLmFkZChkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dCkpOwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpkb2N1bWVudERldGFjaGVkKERv
Y3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKaW5kZXggYzNjMThjMDc0ZWUzYWZlYjE3NzMyYmU0M2Y5N2IxZjc4ZTk4
NGRlNy4uMmJjYWE0YmQ5YzgxYzgzMDJkMWZlMmE2ZTI4Mjg2ZDg4ZWU4ZjcwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTgzLDEx
ICs4MywxMSBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogewogICAgIC8vIEZJWE1FOiBUaGlz
IG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBk
YXkKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgR3Jv
dXBTZXR0aW5ncyogc2V0dGluZ3MgPSAwOwotICAgIGlmIChkb2N1bWVudC0+cGFnZSgpKQotICAg
ICAgICBzZXR0aW5ncyA9ICZkb2N1bWVudC0+cGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0dGluZ3Mo
KTsKLSAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJj
ZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5
UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIoKSwgZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgpLCBkb2N1bWVudC0+dG9wT3JpZ2luKCkpOwor
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKKyAgICBHcm91cFNldHRpbmdzKiBzZXR0aW5ncyA9IG51bGxwdHI7Cisg
ICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkKKyAgICAgICAgc2V0dGluZ3MgPSAmZG9jdW1lbnQucGFn
ZSgpLT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKTsKKyAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2Vy
VGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkws
IHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2Rl
LCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlcigpLCBk
b2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlclR5cGUoKSwg
ZG9jdW1lbnQudG9wT3JpZ2luKCkpOwogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsK
ICAgICB0aHJlYWQtPnN0YXJ0KCk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRT
dGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhp
cywgc2NyaXB0VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGMy
Mzc1YzQ4YjUzYzc4ZDNmYzk3MTU1YjkzZmE4ZjJjNTE5YzFmYzAuLjRkNTM0ZWU5YThmNWZjMzI1
OThiNDhkYWU1OWI1ZjAwYWM2MjI1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIFhNTEh0dHBSZXF1ZXN0Ojp+WE1MSHR0cFJlcXVlc3Qo
KQogRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIFNlY3VyaXR5T3JpZ2luKiBYTUxIdHRwUmVx
dWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApAQCAtNDg3LDEwICs0ODcsMTAgQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmws
IGJvb2wgYXN5bmMsIEV4Y2UKIAogICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sg
dGhlIGlzb2xhdGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb25jZSB3ZWJraXQu
b3JnL2IvMTA0NTIwIGlzIHNvbHZlZC4KICAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSA9IGZhbHNlOwotICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0Rv
Y3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGlmIChkb2N1bWVudC0+
ZnJhbWUoKSkKLSAgICAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSA9IGRvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS5zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkpIHsKKyAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICBpZiAoZG9j
dW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2UodXJs
KSkgewogICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgdGhyb3dpbmcgYW4gZXhjZXB0
aW9uPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQppbmRleCA1Mzk4Yjk5M2VhNTRi
ZjRjOGYzMDMyYzEzOWJlYWMxNzM1NGEyNThiLi5kZGQ3YmQ2ZDkwNDU2YzUyNGI5NDNiY2M0ZDNj
ZWQ5MGRkNWVlMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAtMzks
MTcgKzM5LDE3IEBAIC0gKFdLRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1lbnQ6KE5TU3RyaW5nICop
dGFnTmFtZQogewogICAgIC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgYWJvdXQgdGhlIGV4Y2VwdGlv
bi4KICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICByZXR1cm4gV2ViS2l0
Ojp0b1dLRE9NRWxlbWVudCh0b0RvY3VtZW50KF9pbXBsLmdldCgpKS0+Y3JlYXRlRWxlbWVudCh0
YWdOYW1lLCBlYykuZ2V0KCkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01FbGVtZW50KFdl
YkNvcmU6OmRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50PigqX2ltcGwpLmNyZWF0ZUVsZW1lbnQo
dGFnTmFtZSwgZWMpLmdldCgpKTsKIH0KIAogLSAoV0tET01UZXh0ICopY3JlYXRlVGV4dE5vZGU6
KE5TU3RyaW5nICopZGF0YQogewotICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01UZXh0KHRvRG9j
dW1lbnQoX2ltcGwuZ2V0KCkpLT5jcmVhdGVUZXh0Tm9kZShkYXRhKS5nZXQoKSk7CisgICAgcmV0
dXJuIFdlYktpdDo6dG9XS0RPTVRleHQoV2ViQ29yZTo6ZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1l
bnQ+KCpfaW1wbCkuY3JlYXRlVGV4dE5vZGUoZGF0YSkuZ2V0KCkpOwogfQogCiAtIChXS0RPTUVs
ZW1lbnQgKilib2R5CiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTUVsZW1lbnQodG9Eb2N1
bWVudChfaW1wbC5nZXQoKSktPmJvZHkoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTUVs
ZW1lbnQoV2ViQ29yZTo6ZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KCpfaW1wbCkuYm9keSgp
KTsKIH0KIAogQGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238873</attachid>
            <date>2014-09-29 13:25:24 -0700</date>
            <delta_ts>2014-09-29 13:30:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137221-20140929132524.patch</filename>
            <type>text/plain</type>
            <size>85409</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUzY2UzMTI0NmQxMjcz
M2Q2YTFiZTMzMjY2MTg2MWZmZDgyMjI1My4uNGQ0NGNhZTc2YTYxMmNkYjcwODI1MDhmYTE4ZDMx
OThkZDE4MDBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NiBAQAorMjAxNC0wOS0yOSAgQ2hy
aXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAv
IGRvd25jYXN0PD4oKSBmb3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50
IGluc3RlYWQgb2YgaXNEb2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpmcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cGFnZSk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpk
b2N1bWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbjo6cGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmRvY3VtZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZUNvbnRleHQ6OmFsbG93RGF0YWJhc2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRz
aGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhh
bmRzaGFrZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpj
bGllbnRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ondy
YXApOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZG9jdW1lbnQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUmVxdWVzdFN0YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUmVxdWVzdFN0YXRlOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRp
b0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNBdWRpb0Nv
bnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZl
bnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVySW5saW5l
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmcmFtZUZyb21FeGVjU3RhdGUp
OgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VidGxlQ3J5cHRvOjpkb2N1bWVudCk6CisgICAgICAgICogZG9tL0NvbW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vQ29udGFpbmVy
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FjY2VwdENoaWxkKToKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1
bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0Rv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFn
ZSk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXaW5kb3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZl
bnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hbWVkRmxvd0NvbGxlY3Rpb246OmRvY3VtZW50KToKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0RlZmF1bHROYW1lc3Bh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bG9va3VwUHJlZml4KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3Bh
dGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydE1hcmt1
cCk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
SFRNTERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE5hbWVDb2xsZWN0aW9uOjpkb2N1bWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVs
ZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjppc0ltYWdlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvTWVkaWFE
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNNZWRpYURvY3VtZW50KToKKyAgICAgICAg
KiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1BsdWdpbkRvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlOjpvd25lckRvY3VtZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNr
L1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmluaXRpYWxpemUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVlRUUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdp
b246Om93bmVyRG9jdW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnRO
b2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dCk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJy
aWRnZTo6bWFpblRocmVhZENyZWF0ZUxvYWRlcik6CisgICAgICAgICogcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjpyZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0bzo6ZG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6Omluc3RhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NVGltZXI6OmZpcmVkKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpnZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZCk6CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkpOgorICAgICAgICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
aXN0b3J5Ojpnbyk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzY3Jv
bGxhYmxlRW5jbG9zaW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5TY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpu
b2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyk6CisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbnRleHREb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5k
UnVuUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09i
amVjdCk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0
KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclByb3h5OjphZGRUb1dvcmtlckRvY3VtZW50
cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6b3Blbik6CisKIDIwMTQtMDktMjkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01hY10gUmVtb3ZlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0IGZy
YW1lIHJhdGUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMwMDA4MGNkYjcyMTQ1YjUxZjNiM2Q3ZDU2MDNi
ZGEyNTIxODE0ZTcuLmU5NGMyNWNiOWZiMDkxODQyNGE3MzYwM2U1OWM3MWFkZGE1ZTI3NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wOS0yOSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBm
b3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50IGluc3RlYWQgb2YgaXNE
b2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tOgorICAgICAgICAo
LVtXS0RPTURvY3VtZW50IGNyZWF0ZUVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dLRE9NRG9jdW1l
bnQgY3JlYXRlVGV4dE5vZGU6XSk6CisgICAgICAgICgtW1dLRE9NRG9jdW1lbnQgYm9keV0pOgor
CiAyMDE0LTA5LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAppbmRleCAzZGE4MmE1NDQxMDQ5M2E5ZTZiMGMzYTY4MjJhYzVhNmZmNmU5
NWJhLi43ZDg0ODExODZjNzY0MDY1NzdlNWEyMDAxZmQ3ZDViM2U3YWQwMWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MjUwLDE3ICsyNTAsMTcgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigpCiAKIERvY3VtZW50
KiBHZW9sb2NhdGlvbjo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3VtZW50
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBGcmFtZSogR2VvbG9jYXRpb246OmZy
YW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPmZyYW1l
KCkgOiAwOworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51
bGxwdHI7CiB9CiAKIFBhZ2UqIEdlb2xvY2F0aW9uOjpwYWdlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPnBhZ2UoKSA6IDA7CisgICAgcmV0dXJuIGRvY3Vt
ZW50KCkgPyBkb2N1bWVudCgpLT5wYWdlKCkgOiBudWxscHRyOwogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNw
cAppbmRleCBlZGFmZDdlMmU2NGZjYTMxYWZkM2E2YTcwMjYyNGE4ODYwMWFkM2E1Li5jZTAxMDA3
YTdkMDAwNzg4ZTFjZjFiYTYxNDg1M2NkNzY2N2ZjMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNjgsMTAgKzY4LDEwIEBAIElE
QkZhY3Rvcnk6On5JREJGYWN0b3J5KCkKIG5hbWVzcGFjZSB7CiBzdGF0aWMgYm9vbCBpc0NvbnRl
eHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVChj
b250ZXh0LT5pc0RvY3VtZW50KCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsK
LSAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkb2N1bWVudC0+ZnJh
bWUoKSAmJiBkb2N1bWVudC0+cGFnZSgpICYmICghZG9jdW1lbnQtPnBhZ2UoKS0+dXNlc0VwaGVt
ZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJblBy
aXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkpOwor
ICAgIEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9i
YWxTY29wZSgpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5mcmFtZSgpICYmIGRvY3VtZW50LnBhZ2UoKSAmJiAoIWRvY3VtZW50
LnBhZ2UoKS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dz
RGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LT5wcm90b2NvbCgpKSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNzksOSArNzks
OSBAQCBzdGF0aWMgYm9vbCBpc0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQogc3RhdGljIFN0cmluZyBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoaXNDb250ZXh0VmFsaWQoY29u
dGV4dCkpOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLmluZGV4ZWREQkRhdGFiYXNlUGF0
aCgpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCkuaW5kZXhlZERCRGF0YWJh
c2VQYXRoKCk7CiAgICAgfQogICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3Mg
PSB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT5ncm91cFNldHRpbmdzKCk7CiAgICAgaWYg
KGdyb3VwU2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggOWYzYzk2YTJjMTJhNmFlMjEwNTRkYTM5MGQyODAx
NTM3ODhjMzE0MS4uY2E1MzRjZTg4Y2Q2N2MwNTAxY2RhM2JjMWExODc5MzQ1OTczNDU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgVmVjdG9yPFN0cmluZz4gU291cmNlQnVmZmVyOjpi
dWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2sKIERvY3Vt
ZW50JiBTb3VyY2VCdWZmZXI6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICByZXR1cm4gKnRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDI5ZGMxOTI2ZGQ2YTc0YWJkNWM0ZTc2OTY2NDU4YTEwNTFkZmRmZWMuLjM1MTlj
M2QyZGQxM2Q2Mzg0OTk2NmE0MzMzZWJlNmE3Yzk2ZWNkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzgsNyArMTc4LDcgQEAgUlRDUGVlckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHIKICAgICAsIG1fY29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogewotICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogCiAgICAgaWYgKCFkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmlu
ZGV4IGU5Y2IwMzUzNmNkOGYyMmU2NjFmMDIxYTM0MjU3MTViOWZhZWRlMjEuLjM2YWU2MWZlNDdk
ZGViYTE0MjY0MjQ1MTNmY2VkM2Q5NWM2NjJlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC04Niw3ICs4Niw3
IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBt
X3Rhc2tUaW1lcihzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPE5vdGlmaWNhdGlvbj4+KHRoaXMsICZO
b3RpZmljYXRpb246OnRhc2tUaW1lckZpcmVkKSkKIHsKLSAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ciA9IERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnModG9Eb2N1bWVu
dChjb250ZXh0KS5kb21XaW5kb3coKSk7CisgICAgbV9ub3RpZmljYXRpb25DZW50ZXIgPSBET01X
aW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KS5kb21XaW5kb3coKSk7CiAgICAgCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5jbGllbnQoKSk7CiAgICAgbV90YXNrVGltZXItPnN0YXJ0T25lU2hvdCgwKTsKQEAg
LTEzNSw5ICsxMzUsOSBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpCiAgICAgLy8gcHJldmVu
dCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlID09IElkbGUgJiYgbV9ub3RpZmljYXRp
b25DZW50ZXItPmNsaWVudCgpKSB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAg
IGlmICghdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkpCisgICAg
ICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLnBh
Z2UoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXI6OmZyb20odG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkp
LT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICBpZiAoTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkucGFnZSgpKS0+Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQpIHsKICAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC0yMTMsOCArMjEzLDggQEAgdm9pZCBOb3RpZmljYXRpb246OnRh
c2tUaW1lckZpcmVkKFRpbWVyPE5vdGlmaWNhdGlvbj4mIHRpbWVyKQogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogY29uc3QgU3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVCh0b0RvY3VtZW50KGNvbnRl
eHQpLT5wYWdlKCkpOwotICAgIHJldHVybiBwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXI6OmZyb20odG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgpKS0+Y2xpZW50KCktPmNo
ZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkucGFnZSgpKTsKKyAgICByZXR1cm4gcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRp
b25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKS0+
Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CiB9CiAKIGNvbnN0IFN0cmluZyBO
b3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIHBlcm1pc3Npb24pCkBAIC0yMzQsOCArMjM0LDggQEAgY29uc3QgU3RyaW5nIE5vdGlmaWNh
dGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVy
bWkKIAogdm9pZCBOb3RpZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrPiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQodG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgp
KTsKLSAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHRvRG9jdW1lbnQoY29udGV4dCkt
PnBhZ2UoKSktPmNsaWVudCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBjYWxsYmFjayk7
CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKTsKKyAgICBO
b3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCku
cGFnZSgpKS0+Y2xpZW50KCktPnJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGNhbGxiYWNrKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKaW5kZXggMzY0YzBjNjhkZWQxOWIzMjc4YjUxYTZhZTEwOTU3MjBhOWY3NWI4
OS4uY2Y5OTU5Zjc5OGJlOWI4YzQ1MWEzYWMxYTNjOGIyNTExYWU3NDVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMzI1LDcg
KzMyNSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdG9wKCkKIERvY3VtZW50KiBBdWRpb0NvbnRl
eHQ6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKLSAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBz
YW1wbGVSYXRlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCmluZGV4IDNiZWNlMzAx
OTU3NGUzYTM5ZjY2MjVjN2MxZTMxZGY4NDlmODMwNGIuLjMwOWIxZGI5MmIxMmQ0M2QxZWYzZGQ1
NTVmMWNkZWVkNDIxNDNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMzcsMTIgKzM3LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29udGV4dD4gT2ZmbGlu
ZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2Ft
cGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0
IGZvciB3b3JrZXJzLgotICAgIGlmICghY29udGV4dC5pc0RvY3VtZW50KCkpIHsKKyAgICBpZiAo
IWlzPERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKIAogICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gMTAg
fHwgIWlzU2FtcGxlUmF0ZVJhbmdlR29vZChzYW1wbGVSYXRlKSkgewogICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAKaW5kZXggMjhmMDc2YTM1OTFlNzQwZTExMmM2NTZkZGFlNDUx
NDNiYTljZTE5YS4uMzhkYTE1YTE2ZTA1ZTNmNzdhNmNkNWJhNDg4NTM5NjNiZTAxNjA0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VD
b250ZXh0LmNwcApAQCAtMjE4LDkgKzIxOCw5IEBAIGJvb2wgRGF0YWJhc2VDb250ZXh0OjpzdG9w
RGF0YWJhc2VzKERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyKQogCiBib29s
IERhdGFiYXNlQ29udGV4dDo6YWxsb3dEYXRhYmFzZUFjY2VzcygpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAg
ICAgICAgaWYgKCFkb2N1bWVudC0+cGFnZSgpIHx8IChkb2N1bWVudC0+cGFnZSgpLT51c2VzRXBo
ZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJ
blByaXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkp
KQorICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKKyAg
ICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSB8fCAoZG9jdW1l
bnQucGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxs
b3dzRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLT5wcm90b2NvbCgpKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTIzMSwxMCArMjMxLDEwIEBAIGJvb2wgRGF0YWJhc2VDb250
ZXh0OjphbGxvd0RhdGFiYXNlQWNjZXNzKCkgY29uc3QKIAogdm9pZCBEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWls
cyBkZXRhaWxzKQogewotICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1l
bnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBh
Z2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YShkb2N1bWVudC0+ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CisgICAgaWYgKGlzPERv
Y3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZXhjZWVkZWREYXRhYmFzZVF1b3RhKGRvY3VtZW50LmZy
YW1lKCksIG5hbWUsIGRldGFpbHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VS
VChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA1NTQxYzNlNDFjNWI1MTgxZGE1MTlkN2Q3
ZDg5Zjc4ZmRmMjRmN2ZmLi4xNjU0ZGQ1NjBlMmM5NTA5OTIzZDY2OWZlZTZmOTg5YjE3MDc1NDQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFz
c1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OmNyZWF0ZShTY3JpcHQKICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0
cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHRv
RG9jdW1lbnQoY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6
OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKaW5kZXggZGIzY2U4ZTg2MWI4ZjBkYmM3MDFjMmEzYmQzOWRjYjBlM2Rl
YzNkOC4uOThiZGNlMmZkM2RkYmU3MjkwYjM3ZGQzOTEzMDVkZmI3ZTBmZjA0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTIzOSw5
ICsyMzksOSBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhjZQogCiAgICAgLy8gRklYTUU6IENvbnZl
cnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgogICAgIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAg
ICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpOworICAgIGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkg
eworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2Uo
bV91cmwpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4
IGNjZTMzMmJiNDU2OWUyNTIwM2EzMDNiZjgwMGM0MTk4ZDc3MGViZTUuLmYzNjZhMmQ1ZmE2ODcy
NGIxOTg2MGMzMDc5ZWM5NjgwMmJlYzM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0xOTYsOSAr
MTk2LDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3Nh
Z2UoKSBjb25zdAogICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVByb3RvY29s
OiAiICsgbV9jbGllbnRQcm90b2NvbCk7CiAKICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhl
bnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlmIChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkg
ewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0g
ICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1
bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG1fY29udGV4dCkpIHsKKyAgICAgICAg
RG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX2NvbnRleHQpOworICAg
ICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoJmRvY3Vt
ZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNvb2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBm
aWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBjb29raWUpOwogICAgICAgICAvLyBTZXQgIkNvb2tp
ZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhpc3RzIGZvciB1cmw/CkBAIC0yNDcsOSArMjQ3
LDkgQEAgUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtl
UmVxdWVzdCgpIGNvbnN0CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAKICAg
ICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlm
IChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0gICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1l
bnQ+KCptX2NvbnRleHQpKSB7CisgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9jb250ZXh0KTsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCZkb2N1bWVudCwgdXJsKTsKICAgICAgICAgaWYgKCFjb29r
aWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvb2tpZSwgY29va2llKTsKICAgICAgICAgLy8gU2V0ICJDb29raWUyOiA8
Y29va2llPiIgaWYgY29va2llcyAyIGV4aXN0cyBmb3IgdXJsPwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzU4MTkzZjM0Mzk4YjNhNWM2YzU0ZTUyYjAx
ZGM0ZGFmMDgxNDVmMi4uODkwY2IxZDZkMTZlNGFmNjU1OGRkYTM4ODc4ZDEyMGQ4Mzc0MGI2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lKCkK
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBjbGllbnRXcmFwcGVyLCBX
b3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBw
ZXIoY2xpZW50V3JhcHBlcikKICAgICAsIG1fbG9hZGVyUHJveHkobG9hZGVyUHJveHkpCi0gICAg
LCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh0b0RvY3Vt
ZW50KGNvbnRleHQpLCB0aGlzKSkKKyAgICAsIG1fbWFpbldlYlNvY2tldENoYW5uZWwoV2ViU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGhpcykpCiAg
ICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcAppbmRleCBhNDY0M2UzOGJhZTcyZGQ2NjZmZGViZDg0NTUzYWNjMTVlNzkzNjM3Li5l
NmM5NTA0YzcyMTNjMzBmYTFlYWU5MTUzMzBlMmY1N2JmODBlY2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKQEAgLTEw
MCw5ICsxMDAsOSBAQCBXZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENv
bW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgotICAgICAgICBpZiAodG9Eb2N1bWVudChub2RlKS0+aXNIVE1MRG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEhUTUxEb2N1bWVudChz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihub2RlKSkpOwotICAgICAgICByZXR1cm4gV0VCS0lU
X0RPTV9OT0RFKHdyYXBEb2N1bWVudCh0b0RvY3VtZW50KG5vZGUpKSk7CisgICAgICAgIGlmIChp
czxIVE1MRG9jdW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9E
RSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0PEhUTUxEb2N1bWVudD4obm9kZSkpKTsKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIHJl
dHVybiBXRUJLSVRfRE9NX05PREUod3JhcERvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVu
dFR5cGUqPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0
aERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Db25zdHJ1Y3Rvcldp
dGhEb2N1bWVudC5oCmluZGV4IDVjOThmNjExNjEwZGU3ZGRlYjNjMGJjNTAzMmE0OWMyMmY3YzAz
NzAuLjNlMjY5ODgyZjEyYWY3ZDI3NzEwOGQ1MjcxMTFjNTI1ZmFhNWFiMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1l
bnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCA6
IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0YXRlLmgKaW5kZXggOTA3MTU2MWQ1ODg4NWFh
YjlkZWMxMWJiNTE1OTc2NGFlMjhmZGViMC4uMmE0NzE0YzkzYjkzMDBlYTk3ZjQ4YTRlMWZiNjcz
NzI3MWUyZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVx
dWVzdFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0
YXRlLmgKQEAgLTQxLDExICs0MSwxMSBAQCBjbGFzcyBET01SZXF1ZXN0U3RhdGUgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICAsIG1fZXhlYygwKQorICAgICAgICAs
IG1fZXhlYyhudWxscHRyKQogICAgIHsKLSAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBtX2V4ZWMg
PSBleGVjU3RhdGVGcm9tUGFnZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZG9jdW1lbnQtPnBh
Z2UoKSk7CisgICAgICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkpIHsKKyAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIG1fZXhlYyA9IGV4ZWNT
dGF0ZUZyb21QYWdlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBkb2N1bWVudC5wYWdlKCkpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckds
b2JhbFNjb3BlID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwogICAgICAgICAgICAgbV9leGVjID0gZXhlY1N0YXRlRnJvbVdvcmtlckds
b2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhcigpCiAgICAgewotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSAwOwotICAgICAgICBtX2V4ZWMgPSAwOworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgPSBudWxscHRyOworICAgICAgICBtX2V4ZWMgPSBudWxscHRyOwogICAgIH0KIAogICAg
IGNsYXNzIFNjb3BlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCAzNGI0NWYzMTFmNTQ1MDE5NTA3NWY0ZjE5MWNmYzhj
N2MwYWU4ZmFlLi41Yzg0MTJhZjAwZDQ3ZGMxNDlmNWQ1ZWU4NGRlZDc0NTcxZDBhNjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20u
Y3BwCkBAIC01MywxMCArNTMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU0F1ZGlvQ29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJl
ZmVyZW5jZUVycm9yKGV4ZWMsICJBdWRpb0NvbnRleHQgY29uc3RydWN0b3Igc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0IGlzIHVuYXZhaWxhYmxlIikpOwogICAgICAgICAKLSAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzPERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIGNh
bGxlZCBpbiBhIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCB3aGljaCBpcyBub3QgYSBkb2N1bWVu
dCIpKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKICAgICBSZWZQdHI8QXVkaW9Db250ZXh0PiBh
dWRpb0NvbnRleHQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYWM5ZGQ3NTgxZjg3YzY2NmE1MTI3OWJhN2U2MGJlZjQx
ODhmZWEwYy4uOTljNDAyYzMyN2U3Zjk3Y2FjZTllYzYzOTVjNWRlZGVkZWQwODVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTA1LDE0ICsxMDUsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIAogSlNET01HbG9iYWxP
YmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlNET01H
bG9iYWxPYmplY3QodG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgZXhlYyk7Cisg
ICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0
dXJuIHRvSlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLCBleGVjKTsKIAogICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dv
cmtlckdsb2JhbFNjb3BlKCkpCiAgICAgICAgIHJldHVybiB0b1dvcmtlckdsb2JhbFNjb3BlKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5zY3JpcHQoKS0+d29ya2VyR2xvYmFsU2NvcGVXcmFwcGVy
KCk7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQpAQCAtMTIyLDE0ICsx
MjIsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmwKIAogSlNET01HbG9iYWxPYmplY3QqIHRv
SlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gdG9KU0RPTUdsb2JhbE9i
amVjdCh0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLCB3b3JsZCk7CisgICAgaWYg
KGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0dXJuIHRv
SlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpLCB3b3JsZCk7CiAKICAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKQogICAgICAgICByZXR1cm4gdG9Xb3JrZXJHbG9iYWxTY29wZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KS0+c2NyaXB0KCktPndvcmtlckdsb2JhbFNjb3BlV3JhcHBlcigpOwog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNmUzNGQyMWUzYzJj
M2M4MTIwYmE4ZDdkNmExNmYyMTdhNjQ5NzgxMC4uYjJjYzI3NmM0MThlNjBjZTE2MDQ5MjYzM2I2
OTM3ZWYxMDQyZTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTczLDMwICs3MywzMCBAQCBKU0xhenlFdmVudExpc3Rl
bmVyOjp+SlNMYXp5RXZlbnRMaXN0ZW5lcigpCiBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZXhlY3V0aW9u
Q29udGV4dCkgY29uc3QKIHsKICAgICBBU1NFUlQoZXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgQVNT
RVJUKGV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGlzPERvY3Vt
ZW50PihleGVjdXRpb25Db250ZXh0KSk7CiAgICAgaWYgKCFleGVjdXRpb25Db250ZXh0KQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQoIW1f
Y29kZS5pc051bGwoKSk7CiAgICAgQVNTRVJUKCFtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051bGwo
KSk7CiAgICAgaWYgKG1fY29kZS5pc051bGwoKSB8fCBtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChleGVjdXRpb25Db250ZXh0KTsKKyAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmV4ZWN1dGlvbkNvbnRleHQp
OwogCi0gICAgaWYgKCFkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
aWYgKCFkb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlm
ICghZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMobV9zb3VyY2VVUkwsIG1fcG9zaXRpb24ubV9saW5lKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKCFkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVF
dmVudEhhbmRsZXJzKG1fc291cmNlVVJMLCBtX3Bvc2l0aW9uLm1fbGluZSkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpOworICAgIFNjcmlwdENvbnRyb2xsZXImIHNjcmlwdCA9IGRvY3Vt
ZW50LmZyYW1lKCktPnNjcmlwdCgpOwogICAgIGlmICghc2NyaXB0LmNhbkV4ZWN1dGVTY3JpcHRz
KEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBzY3JpcHQuaXNQYXVzZWQoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoZXhlY3V0aW9uQ29udGV4dCwgaXNv
bGF0ZWRXb3JsZCgpKTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU09iamVjdCogSlNM
YXp5RXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogZXhlYwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOwogICAgICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigp
OwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgSlNGdW5jdGlvbiogbGlzdGVuZXJBc0Z1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihq
c0Z1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CmluZGV4IDdkMDhhMjBkYjY5Y2FjZTAxNjE1MTZkYmExODcxY2RlYjAxZDIyYTIuLmNmODA2MDlk
YTBiZGY2MmY5ZGY4NmE5MmI0ZWFhZTFiMmIwOGI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBBTFdB
WVNfSU5MSU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgogICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9j
dW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQotICAgICAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB0b0RvY3VtZW50KG5vZGUpKTsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRG9jdW1lbnRU
eXBlLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggMzdjNzcyOGVkOWU2MmQ0YmVhYzZjYWY3
YTMwNWRlZGVmMWQ2YWQyNi4uZDExZTQ1NGRiYTk3YzYyZTIxZTA2ZTQ1ZGFhMTBiOGRmYzNjZjg2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3Bw
CkBAIC03NCw4ICs3NCw4IEBAIFNjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvbiwgRE9NV3JhcHBlcldvCiAKIHZvaWQgU2NoZWR1
bGVkQWN0aW9uOjpleGVjdXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0g
ICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZXhlY3V0ZSh0b0RvY3VtZW50
KGNvbnRleHQpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKQorICAgICAgICBleGVj
dXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CiAgICAgZWxzZQogICAgICAgICBleGVj
dXRlKHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IDcwZGZkMTY1MzI0OTIyMzBjZDY1MGRmZDBi
NWY2Y2U2Y2VmZTA4YzAuLjM3NmNkMjU0Zjg3ZDM0MTZmYTczOWYyYTExN2NjM2ZkNjBkY2U0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKQEAgLTU4LDcg
KzU4LDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dGcm9tRXhlY1N0YXRlKEpTQzo6RXhlY1N0YXRl
KiBzY3JpcHRTdGF0ZSkKIEZyYW1lKiBmcmFtZUZyb21FeGVjU3RhdGUoSlNDOjpFeGVjU3RhdGUq
IHNjcmlwdFN0YXRlKQogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShzY3JpcHRTdGF0ZSk7Ci0gICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gY29udGV4dCAmJiBjb250ZXh0LT5pc0RvY3VtZW50KCkgPyB0b0Rv
Y3VtZW50KGNvbnRleHQpIDogbnVsbHB0cjsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250
ZXh0ICYmIGlzPERvY3VtZW50Pihjb250ZXh0KSA/IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSA6IG51bGxwdHI7CiAgICAgcmV0dXJuIGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBu
dWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IDFi
YzU4YzBjY2I0NzA3OTk3N2FhYjkyMDk0M2NkMzk0ZDVlMGM2YjAuLjY4ZDgyMGMzYWRjNTg2ZWQz
NzVhNTg5MWQ4YzI2ZDhhNDNkOWFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwCkBAIC0zOSw3ICszOSw3IEBAIFN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKERvY3Vt
ZW50JiBkb2N1bWVudCkKIAogRG9jdW1lbnQqIFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQoKSBjb25z
dAogewotICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKaW5kZXggNTEzMDBlOWU4YTllMTc5YTI0ZWRiYzhj
MmM5NTQzZjc2ZGZjMzM4Zi4uOTYxZThmMTIxYTc0MzUzZjg4NjIwZDc4MWYwYWJkYjJkZGMyMDIy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPENv
bW1lbnQ+IENvbW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIAogUGFzc1JlZlB0cjxDb21tZW50PiBDb21tZW50OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ29tbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCB0ZXh0KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb21tZW50KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGV4
dCkpOwogfQogCiBTdHJpbmcgQ29tbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGIxN2IwOWYwODJhNWFmMWE2OTA4NjZhMmRiMzBlZmFm
MTA0NzI2NTUuLjY1M2Y2OTcxYjdhMmU4NjUzYzEwMjk5ODY3YTFlMGU4ODVjZDgzNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTIwMiw4ICsyMDIsOCBAQCBzdGF0aWMg
aW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQ
YXJlbnQsIE5vZGUqIG5ldwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRz
KG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIG5ld1BhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkg
ewotICAgICAgICBpZiAoIXRvRG9jdW1lbnQobmV3UGFyZW50KS0+Y2FuUmVwbGFjZUNoaWxkKG5l
d0NoaWxkLCBvbGRDaGlsZCkpCisgICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PihuZXdQ
YXJlbnQpKSB7CisgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpuZXdQYXJlbnQpLmNh
blJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpKQogICAgICAgICAgICAgcmV0dXJuIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICB9IGVsc2UgaWYgKCFpc0NoaWxkVHlwZUFsbG93ZWQo
bmV3UGFyZW50LCBuZXdDaGlsZCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9F
UlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcApp
bmRleCA4MDRhNTY3NjUzNmY0ZGIzZTBkMjA4YTI0MjQwZmIyNmU3ZjJiODYxLi4xMDQ2ZDYyYWY4
YzY4ODZjOTExOWE4ZGE3YjI1NWQxNzIyNGJhMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKQEAgLTM2LDggKzM2LDggQEAgdm9pZCBDaGls
ZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3Vt
ZW50KENvbnRhaW5lck4KICAgICAgICAgLy8gSWYgd2UgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgZG9jdW1lbnQgZHVyaW5nIHRoaXMgbG9vcCwgdGhlbgogICAgICAgICAvLyB3ZSBkb24ndCB3
YW50IHRvIHRlbGwgdGhlIHJlc3Qgb2Ygb3VyIGNoaWxkcmVuIHRoYXQgdGhleSd2ZSBiZWVuCiAg
ICAgICAgIC8vIGluc2VydGVkIGludG8gdGhlIGRvY3VtZW50IGJlY2F1c2UgdGhleSBoYXZlbid0
LgotICAgICAgICBpZiAobm9kZS5pbkRvY3VtZW50KCkgJiYgY2hpbGQtPnBhcmVudE5vZGUoKSA9
PSAmbm9kZSkKLSAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqY2hp
bGQuZ2V0KCkpOworICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGNoaWxkLT5wYXJl
bnROb2RlKCkgPT0gJm5vZGUpCisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKmNoaWxkKTsKICAgICB9CiAKICAgICBpZiAoIW5vZGUuaXNFbGVtZW50Tm9kZSgpKQpA
QCAtNDUsNyArNDUsNyBAQCB2b2lkIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpub3RpZnlE
ZXNjZW5kYW50SW5zZXJ0ZWRJbnRvRG9jdW1lbnQoQ29udGFpbmVyTgogCiAgICAgaWYgKFJlZlB0
cjxTaGFkb3dSb290PiByb290ID0gdG9FbGVtZW50KG5vZGUpLnNoYWRvd1Jvb3QoKSkgewogICAg
ICAgICBpZiAobm9kZS5pbkRvY3VtZW50KCkgJiYgcm9vdC0+aG9zdEVsZW1lbnQoKSA9PSAmbm9k
ZSkKLSAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqcm9vdC5nZXQo
KSk7CisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKnJvb3QpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5ZjdhMjVkYjkwZmI1MDVjYjJmOWFi
MTJmY2EwNzVjYjIyMjhjZmIyLi5jNDJkNDQyYzYyOGFmMmU3NTNhYmRlNTJjZjdhZWUxYmI3ODRk
MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTc0MCwxMiArMTc0MCwxMCBAQCBpbmxpbmUg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7
CiAKLVNDUklQVF9FWEVDVVRJT05fQ09OVEVYVF9UWVBFX0NBU1RTKERvY3VtZW50KQotCi1pbmxp
bmUgYm9vbCBpc0RvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1
bWVudE5vZGUoKTsgfQotdm9pZCBpc0RvY3VtZW50KGNvbnN0IERvY3VtZW50Jik7IC8vIENhdGNo
IHVubmVjZXNzYXJ5IHJ1bnRpbWUgY2hlY2sgb2YgdHlwZSBrbm93biBhdCBjb21waWxlIHRpbWUu
Ci0KLU5PREVfVFlQRV9DQVNUUyhEb2N1bWVudCkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oRG9jdW1lbnQpCisgICAgc3RhdGljIGJvb2wgaXNEb2N1bWVudChjb25zdCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzRG9jdW1lbnQoKTsgfQor
ICAgIHN0YXRpYyBib29sIGlzRG9jdW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gbm9k
ZS5pc0RvY3VtZW50Tm9kZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwCmluZGV4IDdiMWJhM2EzMDMzM2JkMTc3NjgzYjcyMjgwZjY0ZWZmZWZlN2VhM2IuLjY3ZWNi
MTdlM2FlMzU5NjY3MTNiZTgwN2RiZDU4YmIxZDcyNWI0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRG9jdW1lbnRGcmFnbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCBOb2RlOjpDcmVhdGVEb2N1
bWVudEZyYWdtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudEZyYWdtZW50
KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgTm9kZTo6Q3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCkpOwogfQogCiBTdHJpbmcgRG9jdW1lbnRGcmFnbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDJkYThlNzNlZTkwNDc4NTlhNTYyMTI4MDkwOTQ3NDI4YzIz
MTg5MjQuLjIxYWQ1NjZhYTE5NDFkM2M3OWE2ZTAzMThhODI4YjRiNTJkZmFjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKQEAgLTIyMDAsOSArMjIwMCw5IEBAIEF0b21pY1N0cmluZyBFbGVtZW50
Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAogICAgICAgICAgICAgICAgIGlmIChj
b25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGVsZW1lbnREYXRhLT5maW5kTGFuZ3VhZ2VBdHRy
aWJ1dGUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+dmFsdWUoKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50Tm9kZS0+aXNEb2N1bWVu
dE5vZGUoKSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50PihjdXJyZW50Tm9kZSkp
IHsKICAgICAgICAgICAgIC8vIGNoZWNraW5nIHRoZSBNSU1FIGNvbnRlbnQtbGFuZ3VhZ2UKLSAg
ICAgICAgICAgIHJldHVybiB0b0RvY3VtZW50KGN1cnJlbnROb2RlKS0+Y29udGVudExhbmd1YWdl
KCk7CisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjdXJyZW50Tm9kZSku
Y29udGVudExhbmd1YWdlKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNWEwZGI0ZWY5NmUzNDdjZDNjMTFjNzhmM2FhOTVkYjgw
Y2FhYWMyNS4uYzZlMjVlZDlkOWM4NmM5OTAyNTBlZTZlMmM2YzZjNzkxM2VjNjc1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTYwLDEwICs2MCwxMCBAQCBwcml2
YXRlOgogV2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBjb25zdCBFdmVudENvbnRleHQqIHRvcEV2ZW50Q29udGV4dCkKIHsKICAgICBO
b2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4
dC0+bm9kZSgpIDogbm9kZS5nZXQoKTsKLSAgICBpZiAoIXRvcExldmVsQ29udGFpbmVyLT5pc0Rv
Y3VtZW50Tm9kZSgpKQorICAgIGlmICghaXM8RG9jdW1lbnQ+KHRvcExldmVsQ29udGFpbmVyKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV93aW5kb3cgPSB0b0RvY3VtZW50KHRvcExldmVsQ29u
dGFpbmVyKS0+ZG9tV2luZG93KCk7CisgICAgbV93aW5kb3cgPSBkb3duY2FzdDxEb2N1bWVudD4o
KnRvcExldmVsQ29udGFpbmVyKS5kb21XaW5kb3coKTsKICAgICBtX3RhcmdldCA9IHRvcEV2ZW50
Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+dGFyZ2V0KCkgOiBub2RlLmdldCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCAyNjUxNzhjZjZlM2UzZjEwOTcxYTA0Zjll
OGY2NTQxMDU2MzFkN2JkLi40ODM3ZDg2MWRmY2ZhNmExOTQ2YjU3N2JmZDY0MzVlMDE3NzRkZTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTIyMyw4ICsyMjMsOCBAQCB2b2lk
IEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50LCBFdmVudFRhcmdl
dERhdGEqIGQsIEV2ZW50TGlzdAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQg
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVs
bHB0cjsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZl
bnRDb29raWU7Ci0gICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0g
ICAgICAgIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKKyAgICBpZiAoY29udGV4dCAm
JiBpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIHdpbGxEaXNwYXRjaEV2ZW50Q29va2llID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudChkb2N1bWVudCwgKmV2ZW50
LCBzaXplID4gMCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFt
ZWRGbG93Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVj
dGlvbi5jcHAKaW5kZXggZWU5MmYwNDdmNjgyMjYwZTNkZTc4ODJjOTNhZTQxYTU4NTk0ZTcyMC4u
Njg2Nzg0MDhhMTFkYTVhZDI0MzkxMzRhYmJhMWZiZGE3ODM5ODFlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQg
TmFtZWRGbG93Q29sbGVjdGlvbjo6ZGlzY2FyZE5hbWVkRmxvdyhXZWJLaXROYW1lZEZsb3cqIG5h
bWVkRmxvdykKIERvY3VtZW50KiBOYW1lZEZsb3dDb2xsZWN0aW9uOjpkb2N1bWVudCgpIGNvbnN0
CiB7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgcmV0dXJuIHRvRG9j
dW1lbnQoY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxET01OYW1lZEZsb3dDb2xsZWN0aW9uPiBOYW1lZEZsb3dDb2xsZWN0
aW9uOjpjcmVhdGVDU1NPTVNuYXBzaG90KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkYjk3ZGUyMzE3
NjA4OTcwMDUwYzkwYWRkZjE2NjFhZWIyNjZmYzFmLi5lYTkyZGE4MGEyMDhjMGJjYTMwMTRiMjM1
YzMwYTA4NzViNzhiYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMTYyLDggKzExNjIsOCBAQCBi
b29sIE5vZGU6OmlzRGVmYXVsdE5hbWVzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFj
ZVVSSU1heWJlRW1wdHkpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgaWYgKEVsZW1lbnQq
IGRlID0gdG9Eb2N1bWVudCh0aGlzKS0+ZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGRlLT5pc0RlZmF1bHROYW1lc3BhY2UobmFtZXNwYWNlVVJJKTsKKyAgICAgICAg
ICAgIGlmIChFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnRo
aXMpLmRvY3VtZW50RWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVs
ZW1lbnQtPmlzRGVmYXVsdE5hbWVzcGFjZShuYW1lc3BhY2VVUkkpOwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBjYXNlIEVOVElUWV9OT0RFOgogICAgICAgICBjYXNlIE5PVEFU
SU9OX05PREU6CkBAIC0xMTk1LDggKzExOTUsOCBAQCBTdHJpbmcgTm9kZTo6bG9va3VwUHJlZml4
KGNvbnN0IEF0b21pY1N0cmluZyAmbmFtZXNwYWNlVVJJKSBjb25zdAogICAgICAgICBjYXNlIEVM
RU1FTlRfTk9ERToKICAgICAgICAgICAgIHJldHVybiBsb29rdXBOYW1lc3BhY2VQcmVmaXgobmFt
ZXNwYWNlVVJJLCBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50ICo+KHRoaXMpKTsKICAgICAgICAg
Y2FzZSBET0NVTUVOVF9OT0RFOgotICAgICAgICAgICAgaWYgKEVsZW1lbnQqIGRlID0gdG9Eb2N1
bWVudCh0aGlzKS0+ZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRl
LT5sb29rdXBQcmVmaXgobmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIGlmIChFbGVtZW50KiBk
b2N1bWVudEVsZW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnRoaXMpLmRvY3VtZW50RWxlbWVu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnQtPmxvb2t1cFByZWZp
eChuYW1lc3BhY2VVUkkpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICBj
YXNlIEVOVElUWV9OT0RFOgogICAgICAgICBjYXNlIE5PVEFUSU9OX05PREU6CkBAIC0xMjUzLDgg
KzEyNTMsOCBAQCBTdHJpbmcgTm9kZTo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyAm
cHJlZml4KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICAgICAgICAgIGlmIChFbGVtZW50KiBkZSA9
IHRvRG9jdW1lbnQodGhpcyktPmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBkZS0+bG9va3VwTmFtZXNwYWNlVVJJKHByZWZpeCk7CisgICAgICAgICAgICBpZiAoRWxl
bWVudCogZG9jdW1lbnRFbGVtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5kb2N1bWVu
dEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRFbGVtZW50LT5sb29r
dXBOYW1lc3BhY2VVUkkocHJlZml4KTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICAgICAgY2FzZSBFTlRJVFlfTk9ERToKICAgICAgICAgY2FzZSBOT1RBVElPTl9OT0RFOgpAQCAt
MjE5OCw4ICsyMTk4LDggQEAgdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJlZigpCiAgICAgLy8gQW4g
ZXhwbGljaXQgY2hlY2sgZm9yIERvY3VtZW50IGhlcmUgaXMgYmV0dGVyIHRoYW4gYSB2aXJ0dWFs
IGZ1bmN0aW9uIHNpbmNlIGl0IGlzCiAgICAgLy8gZmFzdGVyIGZvciBub24tRG9jdW1lbnQgbm9k
ZXMsIGFuZCBiZWNhdXNlIHRoZSBjYWxsIHRvIHJlbW92ZWRMYXN0UmVmIHRoYXQgaXMgaW5saW5l
ZAogICAgIC8vIGF0IGFsbCBkZXJlZiBjYWxsIHNpdGVzIGlzIHNtYWxsZXIgaWYgaXQncyBhIG5v
bi12aXJ0dWFsIGZ1bmN0aW9uLgotICAgIGlmIChpc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAg
IHRvRG9jdW1lbnQoKnRoaXMpLnJlbW92ZWRMYXN0UmVmKCk7CisgICAgaWYgKGlzPERvY3VtZW50
PigqdGhpcykpIHsKKyAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5yZW1vdmVkTGFz
dFJlZigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCAy
OTJmYTVhYmEyYzYwYTk5ZmQxMWM3MDBjYTkzODA2MzUwMDY1N2Y0Li44OGI5YjYxMDg4MjgwYzc5
MzEwZjE4MGI0OTViZWRmYzFhZDlmOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRlKERvY3VtZW50JiBvd25lckRv
Y3VtZW50LCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsCiAKIFBhc3NSZWZQdHI8UmFuZ2U+IFJhbmdl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJhbmdlKHRvRG9jdW1lbnQoY29udGV4dCkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJhbmdlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSkpOwogfQogCiBQYXNz
UmVmUHRyPFJhbmdlPiBSYW5nZTo6Y3JlYXRlKERvY3VtZW50JiBvd25lckRvY3VtZW50LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVTdGFydCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2
aXNpYmxlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCmluZGV4IDVmNDA1YWY0NmRkNGM5Y2I0Zjk1ODIwZWZhMjVlMjJmMWM2ZWE3YTYuLjUwYTg0
Yzc3OTQ4MWI5OGU3YjdmYTEzYzZhYWJlZWFjYjlkYmYwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTM3OCw4ICszNzgsOCBAQCBib29s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JN
KElPUykKLSAgICBpZiAodGFyZ2V0ID09IHRhcmdldC0+dG9ET01XaW5kb3coKSAmJiBpc0RvY3Vt
ZW50KCkpIHsKLSAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gdG9Eb2N1bWVudCh0aGlzKS0+
c2V0dGluZ3MoKTsKKyAgICBpZiAodGFyZ2V0ID09IHRhcmdldC0+dG9ET01XaW5kb3coKSAmJiBp
czxEb2N1bWVudD4oKnRoaXMpKSB7CisgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvd25j
YXN0PERvY3VtZW50PigqdGhpcykuc2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNldHRpbmdzICYm
ICFzZXR0aW5ncy0+c2hvdWxkRGlzcGF0Y2hKYXZhU2NyaXB0V2luZG93T25FcnJvckV2ZW50cygp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA3
OWE0NWRmY2QxNDE0M2VhZTEzYzAwYjYyNzIxNDI0ZWM0YzE5ZWZkLi43ZDI4OWIwYTA5OTBiNzM3
ODBjZDIxODZjZDYzNzkzYjE4Y2E1OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC00NSw3ICs0NSw3
IEBAIFBhc3NSZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBkYXRhKQogCiBQYXNzUmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXh0KHRvRG9jdW1lbnQoY29udGV4dCksIGRhdGEsIENyZWF0ZVRl
eHQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLCBkYXRhLCBDcmVhdGVUZXh0KSk7CiB9CiAKIFBhc3NSZWZQdHI8VGV4dD4gVGV4dDo6
Y3JlYXRlRWRpdGluZ1RleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGRi
ZTk2ODg5ODI5OWJmMjI3YjRkMDgwM2E2ZDI0MDBkMTBhOTA4ZDkuLjczZTE5YmFmZDdkNTI3MmE2
YjAzN2ZiMGZhOGY2NWQ2N2ZjYWFlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NTksNyArNTU5LDcgQEAgdm9pZCBNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2Rl
JiBub2QKICAgICAgICAgYXBwZW5kQ29tbWVudChyZXN1bHQsIGRvd25jYXN0PENvbW1lbnQ+KG5v
ZGUpLmRhdGEoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9E
RToKLSAgICAgICAgYXBwZW5kWE1MRGVjbGFyYXRpb24ocmVzdWx0LCB0b0RvY3VtZW50KG5vZGUp
KTsKKyAgICAgICAgYXBwZW5kWE1MRGVjbGFyYXRpb24ocmVzdWx0LCBkb3duY2FzdDxEb2N1bWVu
dD4obm9kZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdN
RU5UX05PREU6CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5k
ZXggZTVhMDllOTM0ZGNjMjRiNTY3MjI2NDE4MzAyNzQyYzQ2ZjE1YTRhOS4uMGE5YjVhMmJmMGQ1
YjFjNTgwYTRlMzlkYjNhYTdlMGJmODBmYmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
QkVHSU4oSFRNTERvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQoKTsg
fQotICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0
dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc0hUTUxEb2N1bWVudCh0b0RvY3VtZW50KG5v
ZGUpKTsgfQorICAgIHN0YXRpYyBib29sIGlzSFRNTERvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUp
IHsgcmV0dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBpc0hUTUxEb2N1bWVudChkb3duY2FzdDxE
b2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE5h
bWVDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5o
CmluZGV4IDgwMTAwZjYxYWM5MzhiMDY0OWIwODNkNzQxZDQ5ZjQ3NzA5ZDQzZWYuLjA5MTRjNTQz
Y2IyOGZhYjRlNmRiNTU1YzQ0NDU3ODlmZDA5ODkwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTmFtZUNvbGxlY3Rpb24uaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBIVE1MTmFtZUNvbGxl
Y3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGljOgogICAgIH5IVE1MTmFtZUNv
bGxlY3Rpb24oKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCgpIHsgcmV0dXJuIHRvRG9jdW1l
bnQob3duZXJOb2RlKCkpOyB9CisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KG93bmVyTm9kZSgpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE5h
bWVDb2xsZWN0aW9uKERvY3VtZW50JiwgQ29sbGVjdGlvblR5cGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCmluZGV4IGM5YTI5NzYyMmIw
ZTM4MWI0MDNmODUwYzBlMzkyNjRjYjI1MTNhZTEuLjc4MWQwMmNhMzYzZDhmZmE0NWRkZjI3ODdm
N2E1ODUxYTIzYzk5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oCkBAIC04NCw3
ICs4NCw3IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oSW1hZ2VE
b2N1bWVudCkKICAgICBzdGF0aWMgYm9vbCBpc0ltYWdlRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQoKTsgfQotICAgIHN0
YXRpYyBib29sIGlzSW1hZ2VEb2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2Rl
LmlzRG9jdW1lbnROb2RlKCkgJiYgaXNJbWFnZURvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9
CisgICAgc3RhdGljIGJvb2wgaXNJbWFnZURvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0
dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBpc0ltYWdlRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1l
bnQ+KG5vZGUpKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5oCmluZGV4IDdiZTllNjE5YjM5OTRkNTUwZTMxNTgzOWM4N2Y2
YmYwMTc5N2FhNzIuLmFiNWVkMDgxYTZhNDMxODRkODc5ZGUwN2RiYTYwMjAwZGNjYzRlMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6
CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oTWVkaWFEb2N1bWVudCkKICAgICBzdGF0
aWMgYm9vbCBpc01lZGlhRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVy
biBkb2N1bWVudC5pc01lZGlhRG9jdW1lbnQoKTsgfQotICAgIHN0YXRpYyBib29sIGlzTWVkaWFE
b2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCkg
JiYgaXNNZWRpYURvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wg
aXNNZWRpYURvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIGlzPERvY3VtZW50Pihu
b2RlKSAmJiBpc01lZGlhRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKTsgfQogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3Vt
ZW50LmgKaW5kZXggMDEyZmI5NzBkNTY5MjJkMDk2OWFkNWNiNjg2ODU2MjIxZTZmMTkyZS4uMTg4
MzRkNjhlMGEzNWE1ZTNmMTY2MDA4YWJmYmZjMWFhMmNhN2I1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGx1Z2luRG9jdW1lbnQuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogCiBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0JFR0lOKFBsdWdpbkRvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzUGx1
Z2luRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVudC5p
c1BsdWdpbkRvY3VtZW50KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1BsdWdpbkRvY3VtZW50KGNv
bnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc1BsdWdp
bkRvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNQbHVnaW5E
b2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBpczxEb2N1bWVudD4obm9kZSkgJiYg
aXNQbHVnaW5Eb2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0VORCgpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5oCmluZGV4IGYwZWU2NmI4NmUzZGQ3YzExNjViMDlhZWE5YzA2OTBhZDQ4MTZhYjQuLjk1
MWZlOGM3YjUxYzM0YmZhZDViNmQ2ODY0Y2ViZTQzNDRhNWEwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kKTsKIAotICAgIERvY3VtZW50
JiBvd25lckRvY3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOyB9CisgICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQoKSB7IHJldHVybiBkb3duY2Fz
dDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsgfQogCiBwcml2YXRlOgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggYWIxOTg4ZjE4ODI4NWMwM2I1Zjcy
MGEwZjE5MjM4NzZlOGVjOGI4Yi4uNTljZjZlOTUzNWU0MTgzYWUzZGE0MDY3YzM3N2M5ODY5MTZj
NjNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtMjg4LDggKzI4OCw4
IEBAIHZvaWQgVlRUQ3VlOjppbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCiAgICAgbV93cml0aW5nRGlyZWN0aW9uID0gSG9yaXpvbnRhbDsKICAgICBtX2N1ZUFsaWdu
bWVudCA9IE1pZGRsZTsKICAgICBtX3dlYlZUVE5vZGVUcmVlID0gbnVsbHB0cjsKLSAgICBtX2N1
ZUJhY2tkcm9wQm94ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSh0b0RvY3VtZW50KGNvbnRleHQp
KTsKLSAgICBtX2N1ZUhpZ2hsaWdodEJveCA9IEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRlKHNwYW5U
YWcsIHRvRG9jdW1lbnQoY29udGV4dCkpOworICAgIG1fY3VlQmFja2Ryb3BCb3ggPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CisgICAgbV9jdWVI
aWdobGlnaHRCb3ggPSBIVE1MU3BhbkVsZW1lbnQ6OmNyZWF0ZShzcGFuVGFnLCBkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dCkpOwogICAgIG1fZGlzcGxheURpcmVjdGlvbiA9IENTU1ZhbHVlTHRy
OwogICAgIG1fZGlzcGxheVNpemUgPSAwOwogICAgIG1fc25hcFRvTGluZXMgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKaW5kZXggNDAyODFhNTRiN2Y0YjExZDcyNWE1
YjA1ZTk3ZjBhYTM1NWJkYzJjNy4uZGI5NjVhYmY5NTEzNGZiOGQyN2ZkYmEzMzZiMTJmZWE5YWMx
MzdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCkBAIC05OCw3ICs5OCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVlRUUmVnaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKTsKIAotICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVu
dChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOyB9CisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQoKSB7IHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsgfQogCiAgICAgdm9pZCBwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYmMzNzQ0ZDVl
ODBlMmM0N2VlYTgyN2M5ZWE5ZjgxZjYzODIzYzA0Ni4uY2YyZjc0NTM5NmMyYThmYWRjZjljNzQ0
ZjNkYjlhMzU1MWNmYzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCkBAIC0zNzksMTEgKzM3OSwxMSBAQCBEb2N1bWVudCogSW5zcGVjdG9y
RE9NQWdlbnQ6OmFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5v
ZGVJZAogICAgIE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVycm9yU3RyaW5nLCBub2RlSWQpOwog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKCFub2RlLT5p
c0RvY3VtZW50Tm9kZSgpKSB7CisgICAgaWYgKCFpczxEb2N1bWVudD4obm9kZSkpIHsKICAgICAg
ICAgKmVycm9yU3RyaW5nID0gIkRvY3VtZW50IGlzIG5vdCBhdmFpbGFibGUiOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQobm9kZSk7CisgICAg
cmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihub2RlKTsKIH0KIAogRWxlbWVudCogSW5zcGVjdG9y
RE9NQWdlbnQ6OmFzc2VydEVsZW1lbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9k
ZUlkKQpAQCAtMTMwMSwxMSArMTMwMSwxMSBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZQogICAg
ICAgICAgICAgdmFsdWUtPnNldFRlbXBsYXRlQ29udGVudChidWlsZE9iamVjdEZvck5vZGUoZG93
bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKmVsZW1lbnQpLmNvbnRlbnQoKSwgMCwgbm9kZXNN
YXApKTsKICNlbmRpZgogCi0gICAgfSBlbHNlIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKSB7
Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobm9kZSk7Ci0gICAgICAg
IHZhbHVlLT5zZXREb2N1bWVudFVSTChkb2N1bWVudFVSTFN0cmluZyhkb2N1bWVudCkpOwotICAg
ICAgICB2YWx1ZS0+c2V0QmFzZVVSTChkb2N1bWVudEJhc2VVUkxTdHJpbmcoZG9jdW1lbnQpKTsK
LSAgICAgICAgdmFsdWUtPnNldFhtbFZlcnNpb24oZG9jdW1lbnQtPnhtbFZlcnNpb24oKSk7Cisg
ICAgfSBlbHNlIGlmIChpczxEb2N1bWVudD4obm9kZSkpIHsKKyAgICAgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKTsKKyAgICAgICAgdmFsdWUtPnNldERv
Y3VtZW50VVJMKGRvY3VtZW50VVJMU3RyaW5nKCZkb2N1bWVudCkpOworICAgICAgICB2YWx1ZS0+
c2V0QmFzZVVSTChkb2N1bWVudEJhc2VVUkxTdHJpbmcoJmRvY3VtZW50KSk7CisgICAgICAgIHZh
bHVlLT5zZXRYbWxWZXJzaW9uKGRvY3VtZW50LnhtbFZlcnNpb24oKSk7CiAgICAgfSBlbHNlIGlm
IChpczxEb2N1bWVudFR5cGU+KG5vZGUpKSB7CiAgICAgICAgIERvY3VtZW50VHlwZSYgZG9jVHlw
ZSA9IGRvd25jYXN0PERvY3VtZW50VHlwZT4oKm5vZGUpOwogICAgICAgICB2YWx1ZS0+c2V0UHVi
bGljSWQoZG9jVHlwZS5wdWJsaWNJZCgpKTsKQEAgLTE3MjgsMTAgKzE3MjgsOCBAQCB1bnNpZ25l
ZCBJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJDaGlsZE5vZGVDb3VudChOb2RlKiBub2RlKQogCiBO
b2RlKiBJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnROb2RlKE5vZGUqIG5vZGUpCiB7Ci0g
ICAgaWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gdG9Eb2N1bWVudChub2RlKTsKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5vd25lckVs
ZW1lbnQoKTsKLSAgICB9CisgICAgaWYgKGlzPERvY3VtZW50Pihub2RlKSkKKyAgICAgICAgcmV0
dXJuIGRvd25jYXN0PERvY3VtZW50Pigqbm9kZSkub3duZXJFbGVtZW50KCk7CiAgICAgcmV0dXJu
IG5vZGUtPnBhcmVudE5vZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA3YjY1YjBiZThkYjcwNzFh
MzgwOTc0YjA0YjgwNGNmNjM2YjhjZjI0Li5lZjAwOGQzYTI2ZmVkNzY5MjVjMzg1NDFkZDMyYzYz
NjY1ZjM1YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTAwLDggKzEwMCw4IEBAIGludCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnNfZnJvbnRlbmRDb3VudGVyID0gMDsKIHN0YXRpYyBGcmFtZSogZnJh
bWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbnVsbHB0cjsKLSAgICBpZiAoY29udGV4dC0+aXNE
b2N1bWVudCgpKQotICAgICAgICBmcmFtZSA9IHRvRG9jdW1lbnQoY29udGV4dCktPmZyYW1lKCk7
CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkKKyAgICAgICAgZnJhbWUgPSBkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCktPmZyYW1lKCk7CiAgICAgcmV0dXJuIGZyYW1lOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKaW5kZXggZDBhNWJiYjY4ZjFlYmNhYTcwNGRlMGM5ODk4Yjg3MzQwODg4ZThlZi4uYjllMGNl
NWYwODE5ODNlNTY3ZWUxYjg2YmYxMGJjZDgxM2MxMGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjA2Miw4ICsy
MDYyLDggQEAgaW5saW5lIEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnQKIHsKICAgICBpZiAoIWNvbnRleHQpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpCi0g
ICAgICAgIHJldHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZSh0b0RvY3VtZW50KGNvbnRl
eHQpLT5wYWdlKCkpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpCisgICAgICAgIHJl
dHVybiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4
dCktPnBhZ2UoKSk7CiAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHNGb3JOb25Eb2N1bWVu
dENvbnRleHQoY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xv
YWRlci5jcHAKaW5kZXggNGIwZjY1MWYyZDcwMWQwZTUxYjZiN2Q3ZWVhZWI5YmQ0ZDNlYTQwYy4u
MzUzY2VmMjczNDJjZWQ4ZmUxZDdiMmU1ODYzYjVmNDVjOTJkYTU0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFRl
eHRUcmFja0xvYWRlcjo6ZGVwcmVjYXRlZERpZFJlY2VpdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyYwogdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50
ZWRMb2FkKCkKIHsKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBj
b25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2luIHRleHQgdHJhY2sgbG9h
ZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7Ci0g
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2Up
OwogICAgIG1fc3RhdGUgPSBGYWlsZWQ7CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBUZXh0
VHJhY2tMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsK
ICAgICBBU1NFUlQobV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CiAKLSAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CiAgICAgaWYgKCFtX2Nyb3NzT3JpZ2luTW9kZS5pc051bGwoKQogICAgICAgICAmJiAhZG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVzb3VyY2UtPnJlc3BvbnNlKCku
dXJsKCkpCiAgICAgICAgICYmICFyZXNvdXJjZS0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKGRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpKSkgewpAQCAtMTU1LDggKzE1NSw4IEBAIGJvb2wgVGV4
dFRyYWNrTG9hZGVyOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNyb3NzT3Jp
Z2luTW9kZSkKIHsKICAgICBjYW5jZWxMb2FkKCk7CiAKLSAgICBBU1NFUlQobV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRv
RG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBBU1NFUlQoaXM8RG9jdW1l
bnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29t
cGxldGVVUkwodXJsKSkpOwogCiAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA0MWE3YzFh
NTg5ODYyMTY1YmVkNDMwMDAxZGE4M2RmNTVmOWM5YzhlLi4yZThjMmJmZjdhYzBjMDNmY2E1MGU3
NjQ4MTMwY2EyNGYwYjhjZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVM
b2FkZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4g
VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAg
aWYgKGNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSkKICAgICAgICAgcmV0dXJuIFdvcmtl
clRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSh0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLCBj
bGllbnQsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIHJlcXVlc3QsIG9wdGlvbnMpOwog
Ci0gICAgcmV0dXJuIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHRvRG9jdW1lbnQo
KmNvbnRleHQpLCAqY2xpZW50LCByZXF1ZXN0LCBvcHRpb25zKTsKKyAgICByZXR1cm4gRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KSwg
KmNsaWVudCwgcmVxdWVzdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFRocmVhZGFibGVMb2FkZXJDbGllbnQm
IGNsaWVudCwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCkBAIC03MSw3
ICs3MSw3IEBAIHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoKnRvRG9jdW1lbnQoY29udGV4dCksIHJlcXVlc3QsIGNsaWVudCwgb3B0aW9ucyk7CisgICAg
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KCpkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCksIHJlcXVlc3QsIGNsaWVudCwgb3B0aW9ucyk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA2MTEwZWMzODdjMDAxYzYwNWZhOTQ0ZmIxNzQ2
MDJmNWZiMmFmZGIyLi44NTc5NWE4ZGEzM2QxY2Q4YjI1YmEzYzMxZGZiY2ZmODQyM2UzYmRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
CkBAIC0xMDEsMTQgKzEwMSwxNCBAQCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFk
QnJpZGdlOjp+TWFpblRocmVhZEJyaWRnZSgpCiB2b2lkIFdvcmtlclRocmVhZGFibGVMb2FkZXI6
Ok1haW5UaHJlYWRCcmlkZ2U6Om1haW5UaHJlYWRDcmVhdGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgTWFpblRocmVhZEJyaWRnZSogdGhpc1B0ciwgUGFzc093blB0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhLCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBTdHJpbmcmIG91dGdvaW5nUmVmZXJyZXIpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0Rv
Y3VtZW50KCZjb250ZXh0KTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCk7CiAKICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdDo6YWRvcHQocmVxdWVzdERhdGEpKTsKICAgICByZXF1ZXN0LT5zZXRIVFRQ
UmVmZXJyZXIob3V0Z29pbmdSZWZlcnJlcik7CiAgICAgLy8gRklYTUU6IElmIHRoZSBhIHNpdGUg
cmVxdWVzdHMgYSBsb2NhbCByZXNvdXJjZSwgdGhlbiB0aGlzIHdpbGwgcmV0dXJuIGEgbm9uLXpl
cm8gdmFsdWUgYnV0IHRoZSBzeW5jIHBhdGgKICAgICAvLyB3aWxsIHJldHVybiBhIDAgdmFsdWUu
ICBFaXRoZXIgdGhpcyBzaG91bGQgcmV0dXJuIDAgb3IgdGhlIG90aGVyIGNvZGUgcGF0aCBzaG91
bGQgZG8gYSBjYWxsYmFjayB3aXRoCiAgICAgLy8gYSBmYWlsdXJlLgotICAgIHRoaXNQdHItPm1f
bWFpblRocmVhZExvYWRlciA9IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCpkb2N1
bWVudCwgKnRoaXNQdHIsICpyZXF1ZXN0LCBvcHRpb25zKTsKKyAgICB0aGlzUHRyLT5tX21haW5U
aHJlYWRMb2FkZXIgPSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShkb2N1bWVudCwg
KnRoaXNQdHIsICpyZXF1ZXN0LCBvcHRpb25zKTsKICAgICBBU1NFUlQodGhpc1B0ci0+bV9tYWlu
VGhyZWFkTG9hZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCmluZGV4IGY5YzVjOTgwMTE5NDZjODY5NDVjM2I1OTQxYTY5NzE2Nzk2ZTg5
OTQuLjQ0YWZmMTZlZjkzNzE3OTQwMzUyNjc3M2U5MDYwNmU2OTFiMDk3Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTE1NzcsMjAgKzE1
NzcsMjAgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVuZm9yY2VTYW5kYm94RmxhZ3Mo
U2FuZGJveEZsYWdzIG1hc2spIGNvbnN0CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5l
bmZvcmNlU2FuZGJveEZsYWdzKG1hc2spOwogfQogCi1zdGF0aWMgU3RyaW5nIHN0cmlwVVJMRm9y
VXNlSW5SZXBvcnQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkKK3N0YXRpYyBT
dHJpbmcgc3RyaXBVUkxGb3JVc2VJblJlcG9ydChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVS
TCYgdXJsKQogewogICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogICAgIGlmICghdXJsLmlzSGllcmFyY2hpY2FsKCkgfHwgdXJsLnByb3RvY29sSXMoImZp
bGUiKSkKICAgICAgICAgcmV0dXJuIHVybC5wcm90b2NvbCgpOwotICAgIHJldHVybiBkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpID8gdXJsLnN0cmlwcGVkRm9yVXNl
QXNSZWZlcnJlcigpIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpLT50b1N0cmluZygpOwor
ICAgIHJldHVybiBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHVybCkgPyB1
cmwuc3RyaXBwZWRGb3JVc2VBc1JlZmVycmVyKCkgOiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVy
bCktPnRvU3RyaW5nKCk7CiB9CiAKICNpZiBFTkFCTEUoQ1NQX05FWFQpCi1zdGF0aWMgdm9pZCBn
YXRoZXJTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGF0YShTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCYgaW5pdCwgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRp
cmVjdGl2ZVRleHQsIGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlRGlyZWN0aXZlLCBjb25zdCBVUkwm
IGJsb2NrZWRVUkwsIGNvbnN0IFN0cmluZyYgaGVhZGVyKQorc3RhdGljIHZvaWQgZ2F0aGVyU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERhdGEoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQmIGluaXQsIERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVU
ZXh0LCBjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZURpcmVjdGl2ZSwgY29uc3QgVVJMJiBibG9ja2Vk
VVJMLCBjb25zdCBTdHJpbmcmIGhlYWRlcikKIHsKLSAgICBpbml0LmRvY3VtZW50VVJJID0gZG9j
dW1lbnQtPnVybCgpLnN0cmluZygpOwotICAgIGluaXQucmVmZXJyZXIgPSBkb2N1bWVudC0+cmVm
ZXJyZXIoKTsKKyAgICBpbml0LmRvY3VtZW50VVJJID0gZG9jdW1lbnQudXJsKCkuc3RyaW5nKCk7
CisgICAgaW5pdC5yZWZlcnJlciA9IGRvY3VtZW50LnJlZmVycmVyKCk7CiAgICAgaW5pdC5ibG9j
a2VkVVJJID0gc3RyaXBVUkxGb3JVc2VJblJlcG9ydChkb2N1bWVudCwgYmxvY2tlZFVSTCk7CiAg
ICAgaW5pdC52aW9sYXRlZERpcmVjdGl2ZSA9IGRpcmVjdGl2ZVRleHQ7CiAgICAgaW5pdC5lZmZl
Y3RpdmVEaXJlY3RpdmUgPSBlZmZlY3RpdmVEaXJlY3RpdmU7CkBAIC0xNjEzLDExICsxNjEzLDEx
IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3Ry
aW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAgICAgbG9nVG9Db25zb2xlKGNvbnNvbGVNZXNz
YWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgc3RhdGUpOwogCiAgICAgLy8gRklYTUU6IFN1
cHBvcnQgc2VuZGluZyByZXBvcnRzIGZyb20gd29ya2VyLgotICAgIGlmICghbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgaWYgKCFpczxEb2N1bWVudD4oKm1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBk
b3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1
cm47CiAKQEAgLTE2MjYsNyArMTYyNiw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5Ojpy
ZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgbWVhbnMgdGhhdCB3ZSdyZSBnYXRoZXJpbmcgaW5mb3Jt
YXRpb24gbGlrZSBsaW5lIG51bWJlcnMgdHdpY2UuIE9uY2Ugd2UgY2FuIGJyaW5nIHRoaXMgb3V0
IGZyb20gYmVoaW5kIHRoZSBmbGFnLCB3ZSBzaG91bGQgcmV1c2UgdGhlIGRhdGEgZ2F0aGVyZWQg
aGVyZSB3aGVuIGdlbmVyYXRpbmcgdGhlIEpTT04gcmVwb3J0IGJlbG93LgogICAgICAgICBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCBpbml0OwogICAgICAgICBnYXRoZXJTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50RGF0YShpbml0LCBkb2N1bWVudCwgZGlyZWN0aXZlVGV4dCwg
ZWZmZWN0aXZlRGlyZWN0aXZlLCBibG9ja2VkVVJMLCBoZWFkZXIpOwotICAgICAgICBkb2N1bWVu
dC0+ZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBpbml0KSk7Cisg
ICAgICAgIGRvY3VtZW50LmVucXVldWVEb2N1bWVudEV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25FdmVu
dCwgaW5pdCkpOwogICAgIH0KICNlbmRpZgogCkBAIC0xNjQ0LDggKzE2NDQsOCBAQCB2b2lkIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0
aXZlVGV4dCwgY29uc3QgUwogICAgIC8vIGhhcm1sZXNzIGluZm9ybWF0aW9uLgogCiAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gY3NwUmVwb3J0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKLSAgICBjc3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImRvY3VtZW50LXVyaSIp
LCBkb2N1bWVudC0+dXJsKCkuc3RyaXBwZWRGb3JVc2VBc1JlZmVycmVyKCkpOwotICAgIGNzcFJl
cG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgicmVmZXJyZXIiKSwgZG9jdW1lbnQtPnJlZmVy
cmVyKCkpOworICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZG9jdW1lbnQt
dXJpIiksIGRvY3VtZW50LnVybCgpLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJlcigpKTsKKyAgICBj
c3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInJlZmVycmVyIiksIGRvY3VtZW50LnJl
ZmVycmVyKCkpOwogICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidmlvbGF0
ZWQtZGlyZWN0aXZlIiksIGRpcmVjdGl2ZVRleHQpOwogI2lmIEVOQUJMRShDU1BfTkVYVCkKICAg
ICBpZiAoZXhwZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAK
aW5kZXggMzM1ODczMDUxYWI4NTEyZmUxYmUzZTYyZTA5MTMwZGM3YzNiMWVhNy4uOGNjMGFmNzZi
MDk2NzM3OTA5MTJkMjZhMzY5NTY0M2E2OWYyOGMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcApA
QCAtNTksNyArNTksNyBAQCBDcnlwdG86On5DcnlwdG8oKQogCiBEb2N1bWVudCogQ3J5cHRvOjpk
b2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7CiB9CiAKIHZvaWQgQ3J5cHRvOjpnZXRSYW5kb21WYWx1ZXMoQXJyYXlCdWZm
ZXJWaWV3KiBhcnJheSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CmluZGV4IGI3ZTE4YTBjNTJkNzgxMzc5NzhkYzhlYTM4Y2M2MjY3YjBiNDJhMmQuLmFlYzkwMTg1
NmM5YWRhNjZhNThiMGQ0ZGYyOWNjMDg3MTk1NGEzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCkBAIC0xMjAsOCArMTIwLDggQEAgaW50IERPTVRpbWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWQKICAgICAvLyBp
cyBkZXN0cm95ZWQsIG9yIGlmIGV4cGxpY2l0bHkgY2FuY2VsbGVkIGJ5IHJlbW92ZUJ5SWQuIAog
ICAgIERPTVRpbWVyKiB0aW1lciA9IG5ldyBET01UaW1lcihjb250ZXh0LCBXVEY6Om1vdmUoYWN0
aW9uKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChj
b250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gdG9E
b2N1bWVudCgqY29udGV4dCk7CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkgeworICAg
ICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpOwog
ICAgICAgICBib29sIGRpZERlZmVyVGltZW91dCA9IGRvY3VtZW50LmZyYW1lKCkgJiYgZG9jdW1l
bnQuZnJhbWUoKS0+dGltZXJzUGF1c2VkKCk7CiAgICAgICAgIGlmICghZGlkRGVmZXJUaW1lb3V0
ICYmIHRpbWVvdXQgPD0gMTAwICYmIHNpbmdsZVNob3QpIHsKICAgICAgICAgICAgIFdLU2V0T2Jz
ZXJ2ZWRDb250ZW50Q2hhbmdlKFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UpOwpAQCAtMTcz
LDggKzE3Myw4IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKIAogI2lmIFBMQVRGT1JNKElPUykK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwotICAgIGlmIChjb250ZXh0LT5pc0Rv
Y3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAg
IGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIEFTU0VSVCghZG9jdW1lbnQtPmZyYW1lKCkt
PnRpbWVyc1BhdXNlZCgpKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCAyYjJmMjA0MjRjYWI4NGM5MTExNjAyMTgwOTZkZTZjYzM2ODQ4NzliLi40MTk2M2Yx
ZTdjODVlNmVhY2NiZWUwNGNmODY3OWQ4YTM2M2U4MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC05NzMsOCArOTczLDggQEAgdm9pZCBET01XaW5kb3c6OmZvY3VzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgYm9vbCBhbGxvd0ZvY3VzID0gV2luZG93Rm9j
dXNBbGxvd2VkSW5kaWNhdG9yOjp3aW5kb3dGb2N1c0FsbG93ZWQoKSB8fCAhbV9mcmFtZS0+c2V0
dGluZ3MoKS53aW5kb3dGb2N1c1Jlc3RyaWN0ZWQoKTsKICAgICBpZiAoY29udGV4dCkgewogICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBEb2N1bWVudCogYWN0aXZlRG9j
dW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOwotICAgICAgICBpZiAob3BlbmVyKCkgJiYgb3Bl
bmVyKCkgIT0gdGhpcyAmJiBhY3RpdmVEb2N1bWVudC0+ZG9tV2luZG93KCkgPT0gb3BlbmVyKCkp
CisgICAgICAgIERvY3VtZW50JiBhY3RpdmVEb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCk7CisgICAgICAgIGlmIChvcGVuZXIoKSAmJiBvcGVuZXIoKSAhPSB0aGlzICYmIGFj
dGl2ZURvY3VtZW50LmRvbVdpbmRvdygpID09IG9wZW5lcigpKQogICAgICAgICAgICAgYWxsb3dG
b2N1cyA9IHRydWU7CiAgICAgfQogCkBAIC0xMDI1LDExICsxMDI1LDcgQEAgdm9pZCBET01XaW5k
b3c6OmNsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAKICAgICBpZiAoY29u
dGV4dCkgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBEb2N1bWVu
dCogYWN0aXZlRG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOwotICAgICAgICBpZiAoIWFj
dGl2ZURvY3VtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICghYWN0aXZl
RG9jdW1lbnQtPmNhbk5hdmlnYXRlKG1fZnJhbWUpKQorICAgICAgICBpZiAoIWRvd25jYXN0PERv
Y3VtZW50PigqY29udGV4dCkuY2FuTmF2aWdhdGUobV9mcmFtZSkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xNDEzLDI0ICsxNDA5LDI0IEBAIERPTVdpbmRvdyogRE9NV2luZG93
Ojp0b3AoKSBjb25zdAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdAogewog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIHJldHVybiB0b0RvY3VtZW50
KGNvbnRleHQpOworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiB9CiAK
IFBhc3NSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1lZGlhKCkgY29uc3QKIHsK
ICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX21lZGlhKQogICAgICAgICBt
X21lZGlhID0gU3R5bGVNZWRpYTo6Y3JlYXRlKG1fZnJhbWUpOwogICAgIHJldHVybiBtX21lZGlh
LmdldCgpOwogfQogCi1QYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+IERPTVdpbmRvdzo6
Z2V0Q29tcHV0ZWRTdHlsZShFbGVtZW50KiBlbHQsIGNvbnN0IFN0cmluZyYgcHNldWRvRWx0KSBj
b25zdAorUGFzc1JlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBET01XaW5kb3c6OmdldENvbXB1
dGVkU3R5bGUoRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbHQpIGNvbnN0
CiB7Ci0gICAgaWYgKCFlbHQpCi0gICAgICAgIHJldHVybiAwOworICAgIGlmICghZWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uOjpjcmVhdGUoZWx0LCBmYWxzZSwgcHNldWRvRWx0KTsKKyAgICByZXR1cm4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoZWxlbWVudCwgZmFsc2UsIHBzZXVkb0Vs
dCk7CiB9CiAKIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IERPTVdpbmRvdzo6Z2V0TWF0Y2hlZENT
U1J1bGVzKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgYm9v
bCBhdXRob3JPbmx5KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApp
bmRleCBkZDNmNjVhZGM3MGNkZjgxZjc1ZTliYWM0YzM1NThiODI2ZTRkNWZiLi42MTZkMTMxMzVl
YjNkZmJjZWRiZTc4YTM5YzNiZjQ1ZTNiYzE3NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcApAQCAtMTkyLDEwICsxOTIsMTAgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6
ZHJhZ0V4aXRlZChEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIG1fcGFnZS5tYWluRnJhbWUo
KS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdE
YXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nl
c3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBk
YXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgfQotICAgIG1vdXNlTW92ZWRJbnRv
RG9jdW1lbnQoMCk7CisgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChudWxscHRyKTsKICAgICBp
ZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSkKICAgICAgICAgbV9maWxlSW5wdXRFbGVt
ZW50VW5kZXJNb3VzZS0+c2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhmYWxzZSk7Ci0gICAgbV9m
aWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSA9IDA7CisgICAgbV9maWxlSW5wdXRFbGVtZW50VW5k
ZXJNb3VzZSA9IG51bGxwdHI7CiB9CiAKIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRy
YWdVcGRhdGVkKERyYWdEYXRhJiBkcmFnRGF0YSkKQEAgLTI1NSw3ICsyNTUsNyBAQCBEcmFnT3Bl
cmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSYgZHJh
Z0RhdGEpCiAKICAgICBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9IG1fY2xpZW50LmFjdGlvbk1h
c2tGb3JEcmFnKGRyYWdEYXRhKTsKICAgICBpZiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gPT0g
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZSkgewotICAgICAgICBjYW5jZWxEcmFnKCk7IC8vIEZJ
WE1FOiBXaHkgbm90IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKT8KKyAgICAgICAgY2Fu
Y2VsRHJhZygpOyAvLyBGSVhNRTogV2h5IG5vdCBjYWxsIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQo
bnVsbHB0cik/CiAgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9uZTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5kZXggMDcyZGZhYWZlYmY0Njg3ZTcxZmE2NDJh
MzE1YjE5YmFmZGQwYWI0My4uMzM2ZTE1MWI2NDhjMTU2NTRkYWRhMDkyZmQ1NWYwMTljYTRhNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKQEAgLTc3LDI1ICs3NywyNSBAQCBQ
YXNzUmVmUHRyPEV2ZW50U291cmNlPiBFdmVudFNvdXJjZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbgogewogICAgIGlmICh1cmwuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAogICAgIFVSTCBmdWxsVVJMID0gY29udGV4dC5jb21wbGV0ZVVSTCh1
cmwpOwogICAgIGlmICghZnVsbFVSTC5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhf
RVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
CiAgICAgLy8gRklYTUU6IENvbnZlcnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQn
cyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29s
dmVkLgogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
ID0gZmFsc2U7Ci0gICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3Vt
ZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgaWYgKGlzPERvY3VtZW50
Pihjb250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCk7CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhY29udGV4dC5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2UoZnVsbFVSTCkpIHsKICAgICAgICAgLy8g
RklYTUU6IFNob3VsZCB0aGlzIGJlIHRocm93aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgZWMg
PSBTRUNVUklUWV9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKICAgICBSZWZQdHI8RXZlbnRTb3VyY2U+IHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBFdmVudFNvdXJjZShjb250ZXh0LCBmdWxsVVJMLCBldmVudFNvdXJjZUluaXQpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiMTc2MzE2NzEwYWU4MWIwMDc0
NWQxMDVjZjc0ZmVkNmZiOWRmMGZhLi5jMTRkMDk3ZGU1ODY1MWMzNGQ0MTM0OTk2MjBiMGIxYzIz
ODRiNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC04NzYs
OCArODc2LDggQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFs
bHkoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2EKICAgICBFbGVtZW50KiBmb2N1c2Vk
RWxlbWVudCA9IGZvY3VzZWREb2N1bWVudC0+Zm9jdXNlZEVsZW1lbnQoKTsKICAgICBOb2RlKiBj
b250YWluZXIgPSBmb2N1c2VkRG9jdW1lbnQ7CiAKLSAgICBpZiAoY29udGFpbmVyLT5pc0RvY3Vt
ZW50Tm9kZSgpKQotICAgICAgICB0b0RvY3VtZW50KGNvbnRhaW5lciktPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGFpbmVy
KSkKKyAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250YWluZXIpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgc3RhcnRp
bmcgcmVjdC4KICAgICBMYXlvdXRSZWN0IHN0YXJ0aW5nUmVjdDsKQEAgLTkwMCw4ICs5MDAsOCBA
QCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYQogICAgICAgICBjb25zdW1lZCA9IGFkdmFuY2VGb2N1
c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcihjb250YWluZXIsIHN0YXJ0aW5nUmVjdCwgZGlyZWN0
aW9uLCBldmVudCk7CiAgICAgICAgIHN0YXJ0aW5nUmVjdCA9IG5vZGVSZWN0SW5BYnNvbHV0ZUNv
b3JkaW5hdGVzKGNvbnRhaW5lciwgdHJ1ZSAvKiBpZ25vcmUgYm9yZGVyICovKTsKICAgICAgICAg
Y29udGFpbmVyID0gc2Nyb2xsYWJsZUVuY2xvc2luZ0JveE9yUGFyZW50RnJhbWVGb3JOb2RlSW5E
aXJlY3Rpb24oZGlyZWN0aW9uLCBjb250YWluZXIpOwotICAgICAgICBpZiAoY29udGFpbmVyICYm
IGNvbnRhaW5lci0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgICAgIHRvRG9jdW1lbnQoY29u
dGFpbmVyKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAg
IGlmIChjb250YWluZXIgJiYgaXM8RG9jdW1lbnQ+KGNvbnRhaW5lcikpCisgICAgICAgICAgICBk
b3duY2FzdDxEb2N1bWVudD4oKmNvbnRhaW5lcikudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAgICAgfSB3aGlsZSAoIWNvbnN1bWVkICYmIGNvbnRhaW5lcik7CiAKICAg
ICByZXR1cm4gY29uc3VtZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3Rv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcAppbmRleCA3NGNlZjRkZDMy
MTM4MWMyZjkzOWI4NmNlYzNhNDQ2MTZmN2QzMjNiLi5mMjg5ZWE1YWZlNTA3N2RlZjZiZTY5ZGYx
MDgyNjgxZjdmOTY5NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKQEAgLTExNyw3ICsxMTcs
NyBAQCB2b2lkIEhpc3Rvcnk6OmdvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGlu
dCBkaXN0YW5jZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLSAgICBEb2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOwor
ICAgIERvY3VtZW50KiBhY3RpdmVEb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KTsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXggZTVmYjA1ZTMyYzkxYTdkOGIx
OWRjYzg3NjU4YzkzMjUzZjA5NTljYS4uMjhkOWQzZDUwMjdiYzk2ZGI3YTkzYjVkODFjOWEzYmM5
ZjJkMWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAg
LTM2Niw4ICszNjYsOCBAQCBib29sIHNjcm9sbEluRGlyZWN0aW9uKEZyYW1lKiBmcmFtZSwgRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihOb2RlKiBjb250
YWluZXIsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQoY29udGFpbmVy
KTsKLSAgICBpZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4g
c2Nyb2xsSW5EaXJlY3Rpb24odG9Eb2N1bWVudChjb250YWluZXIpLT5mcmFtZSgpLCBkaXJlY3Rp
b24pOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGFpbmVyKSkKKyAgICAgICAgcmV0dXJuIHNj
cm9sbEluRGlyZWN0aW9uKGRvd25jYXN0PERvY3VtZW50PigqY29udGFpbmVyKS5mcmFtZSgpLCBk
aXJlY3Rpb24pOwogCiAgICAgaWYgKCFjb250YWluZXItPnJlbmRlckJveCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00MzUsMTEgKzQzNSwxMSBAQCBOb2RlKiBzY3JvbGxhYmxlRW5jbG9z
aW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiBkaXJl
YwogICAgIEFTU0VSVChub2RlKTsKICAgICBOb2RlKiBwYXJlbnQgPSBub2RlOwogICAgIGRvIHsK
LSAgICAgICAgaWYgKHBhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgICAgIHBhcmVu
dCA9IHRvRG9jdW1lbnQocGFyZW50KS0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5vd25lckVsZW1lbnQo
KTsKKyAgICAgICAgaWYgKGlzPERvY3VtZW50PihwYXJlbnQpKQorICAgICAgICAgICAgcGFyZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpwYXJlbnQpLmRvY3VtZW50KCkuZnJhbWUoKS0+b3duZXJF
bGVtZW50KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC0+cGFy
ZW50Tm9kZSgpOwotICAgIH0gd2hpbGUgKHBhcmVudCAmJiAhY2FuU2Nyb2xsSW5EaXJlY3Rpb24o
cGFyZW50LCBkaXJlY3Rpb24pICYmICFwYXJlbnQtPmlzRG9jdW1lbnROb2RlKCkpOworICAgIH0g
d2hpbGUgKHBhcmVudCAmJiAhY2FuU2Nyb2xsSW5EaXJlY3Rpb24ocGFyZW50LCBkaXJlY3Rpb24p
ICYmICFpczxEb2N1bWVudD4ocGFyZW50KSk7CiAKICAgICByZXR1cm4gcGFyZW50OwogfQpAQCAt
NDUxLDggKzQ1MSw4IEBAIGJvb2wgY2FuU2Nyb2xsSW5EaXJlY3Rpb24oY29uc3QgTm9kZSogY29u
dGFpbmVyLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgaWYgKGlzPEhUTUxTZWxlY3RF
bGVtZW50Pihjb250YWluZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoY29u
dGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gY2FuU2Nyb2xsSW5EaXJl
Y3Rpb24odG9Eb2N1bWVudChjb250YWluZXIpLT5mcmFtZSgpLCBkaXJlY3Rpb24pOworICAgIGlm
IChpczxEb2N1bWVudD4oY29udGFpbmVyKSkKKyAgICAgICAgcmV0dXJuIGNhblNjcm9sbEluRGly
ZWN0aW9uKGRvd25jYXN0PERvY3VtZW50PigqY29udGFpbmVyKS5mcmFtZSgpLCBkaXJlY3Rpb24p
OwogCiAgICAgaWYgKCFpc1Njcm9sbGFibGVOb2RlKGNvbnRhaW5lcikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTUyMCw4ICs1MjAsOCBAQCBMYXlvdXRSZWN0IG5vZGVSZWN0SW5BYnNvbHV0
ZUNvb3JkaW5hdGVzKE5vZGUqIG5vZGUsIGJvb2wgaWdub3JlQm9yZGVyKQogewogICAgIEFTU0VS
VChub2RlICYmIG5vZGUtPnJlbmRlcmVyKCkgJiYgIW5vZGUtPmRvY3VtZW50KCkudmlldygpLT5u
ZWVkc0xheW91dCgpKTsKIAotICAgIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAg
ICByZXR1cm4gZnJhbWVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVzKHRvRG9jdW1lbnQobm9kZSkt
PmZyYW1lKCkpOworICAgIGlmIChpczxEb2N1bWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBm
cmFtZVJlY3RJbkFic29sdXRlQ29vcmRpbmF0ZXMoZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKS5m
cmFtZSgpKTsKICAgICBMYXlvdXRSZWN0IHJlY3QgPSByZWN0VG9BYnNvbHV0ZUNvb3JkaW5hdGVz
KG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSwgbm9kZS0+Ym91bmRpbmdCb3goKSk7CiAKICAgICAv
LyBGb3IgYXV0aG9ycyB0aGF0IHVzZSBib3JkZXIgaW5zdGVhZCBvZiBvdXRsaW5lIGluIHRoZWly
IENTUywgd2UgY29tcGVuc2F0ZSBieSBpZ25vcmluZyB0aGUgYm9yZGVyIHdoZW4gY2FsY3VsYXRp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKaW5kZXggOTk2MDE1ZWVkMTlhMzg5M2ZkMWEwMGJj
ZDczYjA5OGM0ZjVkNGNmOC4uNmNhY2YwM2E4MWU4Y2JjNzNiOTRmYmU2MmYzYTM0NWJmOGViZjc5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToK
IAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihTVkdEb2N1bWVudCkKICAgICBzdGF0aWMg
Ym9vbCBpc1NWR0RvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gZG9j
dW1lbnQuaXNTVkdEb2N1bWVudCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNTVkdEb2N1bWVudChj
b25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCkgJiYgaXNTVkdE
b2N1bWVudCh0b0RvY3VtZW50KG5vZGUpKTsgfQorICAgIHN0YXRpYyBib29sIGlzU1ZHRG9jdW1l
bnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGlzU1ZH
RG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggODhhY2QxZjExZjY0ZTI5ZDc2MmNiMzQyYTE1NzA1MzgwZGEyMjZl
Yy4uNDQxNTc1MDI2ZDQwZTE3NmEzNmQ1NzczNmQ2N2U4NzE1MmRlY2VhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzE5LDEzICszMTksMTMgQEAgSW50ZXJuYWxzOjpJ
bnRlcm5hbHMoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBEb2N1bWVudCogSW50ZXJuYWxzOjpjb250
ZXh0RG9jdW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogfQogCiBGcmFtZSogSW50ZXJuYWxzOjpmcmFtZSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjb250ZXh0RG9jdW1lbnQoKS0+ZnJhbWUoKTsK
IH0KIApAQCAtMTkxNiw4ICsxOTE2LDggQEAgdm9pZCBJbnRlcm5hbHM6OnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RMYXlvdXRUYXNrcyhOb2RlKgogICAgIERv
Y3VtZW50KiBkb2N1bWVudDsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIGRvY3VtZW50ID0gY29u
dGV4dERvY3VtZW50KCk7Ci0gICAgZWxzZSBpZiAobm9kZS0+aXNEb2N1bWVudE5vZGUoKSkKLSAg
ICAgICAgZG9jdW1lbnQgPSB0b0RvY3VtZW50KG5vZGUpOworICAgIGVsc2UgaWYgKGlzPERvY3Vt
ZW50Pihub2RlKSkKKyAgICAgICAgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4obm9kZSk7
CiAgICAgZWxzZSBpZiAoaXM8SFRNTElGcmFtZUVsZW1lbnQ+KG5vZGUpKQogICAgICAgICBkb2N1
bWVudCA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVtZW50Pigqbm9kZSkuY29udGVudERvY3VtZW50
KCk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dl
YkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAKaW5kZXggM2IxYjkxY2VlMzEyOTNhOTJjMzYzOWY1MGNjMjAwOWZlZTk0
MjExOC4uYWVhOGU0YTkwZDQxMWVlYzg3N2IwZDQ5ZTM5Zjk3MGYzMjQyMjJmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtNDYs
OCArNDYsOCBAQCB2b2lkIGluamVjdEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4
dCkKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0
ID0gZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKHNjcmlw
dENvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3Qo
ZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCBJbnRlcm5hbHM6OmludGVybmFsc0lkKSwgdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIEludGVybmFsczo6Y3JlYXRlKHRvRG9jdW1lbnQoc2NyaXB0
Q29udGV4dCkpKSk7CisgICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRDb250ZXh0KSkKKyAgICAg
ICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCBJ
bnRlcm5hbHM6OmludGVybmFsc0lkKSwgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIEludGVybmFs
czo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRDb250ZXh0KSkpKTsKIH0KIAogdm9p
ZCByZXNldEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKQEAgLTU2LDcgKzU2
LDcgQEAgdm9pZCByZXNldEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2xv
YmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgUGFnZSogcGFnZSA9IHRv
RG9jdW1lbnQoc2NyaXB0Q29udGV4dCktPmZyYW1lKCktPnBhZ2UoKTsKKyAgICBQYWdlKiBwYWdl
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdENvbnRleHQpLT5mcmFtZSgpLT5wYWdlKCk7CiAg
ICAgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKHBhZ2UpOwogICAgIEludGVybmFs
U2V0dGluZ3M6OmZyb20ocGFnZSktPnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAKaW5kZXggOTMwYzYxNGE0MmQwMjc2NTM1OTdlMjhjNjliNTgwZjRkMjk3NjNkOS4u
ZjlkMGUzYWI4ODVhODA0NDU3OTJjNmIyNzQ3NDJlNjkzYzZhMGYzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5j
cHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclByb3h5OjphZGRUb1dvcmtl
ckRvY3VtZW50cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIEFTU0VSVChj
b250ZXh0KTsKICAgICBBU1NFUlQoIWlzQ2xvc2luZygpKTsKICAgICBNdXRleExvY2tlciBsb2Nr
KG1fd29ya2VyRG9jdW1lbnRzTG9jayk7Ci0gICAgbV93b3JrZXJEb2N1bWVudHMuYWRkKHRvRG9j
dW1lbnQoY29udGV4dCkpOworICAgIG1fd29ya2VyRG9jdW1lbnRzLmFkZChkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCkpOwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpkb2N1bWVudERl
dGFjaGVkKERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggYzNjMThjMDc0ZWUzYWZlYjE3NzMyYmU0M2Y5
N2IxZjc4ZTk4NGRlNy4uMmJjYWE0YmQ5YzgxYzgzMDJkMWZlMmE2ZTI4Mjg2ZDg4ZWU4ZjcwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAK
QEAgLTgzLDExICs4MywxMSBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogewogICAgIC8vIEZJ
WE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29y
a2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
Ci0gICAgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MgPSAwOwotICAgIGlmIChkb2N1bWVudC0+cGFn
ZSgpKQotICAgICAgICBzZXR0aW5ncyA9ICZkb2N1bWVudC0+cGFnZSgpLT5ncm91cCgpLmdyb3Vw
U2V0dGluZ3MoKTsKLSAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc2V0dGlu
Z3MsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC0+Y29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIoKSwgZG9jdW1lbnQtPmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgpLCBkb2N1bWVudC0+dG9wT3Jp
Z2luKCkpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBHcm91cFNldHRpbmdzKiBzZXR0aW5ncyA9IG51
bGxwdHI7CisgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkKKyAgICAgICAgc2V0dGluZ3MgPSAmZG9j
dW1lbnQucGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKTsKKyAgICBSZWZQdHI8RGVkaWNh
dGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShz
Y3JpcHRVUkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywg
c3RhcnRNb2RlLCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhl
YWRlcigpLCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRl
clR5cGUoKSwgZG9jdW1lbnQudG9wT3JpZ2luKCkpOwogICAgIHdvcmtlclRocmVhZENyZWF0ZWQo
dGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRTdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5n
ZXQoKSwgdGhpcywgc2NyaXB0VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CmluZGV4IGMyMzc1YzQ4YjUzYzc4ZDNmYzk3MTU1YjkzZmE4ZjJjNTE5YzFmYzAuLjRkNTM0ZWU5
YThmNWZjMzI1OThiNDhkYWU1OWI1ZjAwYWM2MjI1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIFhNTEh0dHBSZXF1ZXN0Ojp+WE1MSHR0
cFJlcXVlc3QoKQogRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgcmV0dXJuIHRvRG9j
dW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9j
dW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIFNlY3VyaXR5T3JpZ2luKiBY
TUxIdHRwUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApAQCAtNDg3LDEwICs0ODcsMTAg
QEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3Qg
VVJMJiB1cmwsIGJvb2wgYXN5bmMsIEV4Y2UKIAogICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMg
dG8gY2hlY2sgdGhlIGlzb2xhdGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb25j
ZSB3ZWJraXQub3JnL2IvMTA0NTIwIGlzIHNvbHZlZC4KICAgICBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGZhbHNlOwotICAgIGlmIChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGlmIChk
b2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS5zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpIHsKKyAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAg
ICBpZiAoZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAo
IXNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9T
b3VyY2UodXJsKSkgewogICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgdGhyb3dpbmcg
YW4gZXhjZXB0aW9uPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQppbmRleCA1Mzk4
Yjk5M2VhNTRiZjRjOGYzMDMyYzEzOWJlYWMxNzM1NGEyNThiLi5kZGQ3YmQ2ZDkwNDU2YzUyNGI5
NDNiY2M0ZDNjZWQ5MGRkNWVlMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5t
bQpAQCAtMzksMTcgKzM5LDE3IEBAIC0gKFdLRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1lbnQ6KE5T
U3RyaW5nICopdGFnTmFtZQogewogICAgIC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgYWJvdXQgdGhl
IGV4Y2VwdGlvbi4KICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICByZXR1
cm4gV2ViS2l0Ojp0b1dLRE9NRWxlbWVudCh0b0RvY3VtZW50KF9pbXBsLmdldCgpKS0+Y3JlYXRl
RWxlbWVudCh0YWdOYW1lLCBlYykuZ2V0KCkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01F
bGVtZW50KFdlYkNvcmU6OmRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50PigqX2ltcGwpLmNyZWF0
ZUVsZW1lbnQodGFnTmFtZSwgZWMpLmdldCgpKTsKIH0KIAogLSAoV0tET01UZXh0ICopY3JlYXRl
VGV4dE5vZGU6KE5TU3RyaW5nICopZGF0YQogewotICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01U
ZXh0KHRvRG9jdW1lbnQoX2ltcGwuZ2V0KCkpLT5jcmVhdGVUZXh0Tm9kZShkYXRhKS5nZXQoKSk7
CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTVRleHQoV2ViQ29yZTo6ZG93bmNhc3Q8V2ViQ29y
ZTo6RG9jdW1lbnQ+KCpfaW1wbCkuY3JlYXRlVGV4dE5vZGUoZGF0YSkuZ2V0KCkpOwogfQogCiAt
IChXS0RPTUVsZW1lbnQgKilib2R5CiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTUVsZW1l
bnQodG9Eb2N1bWVudChfaW1wbC5nZXQoKSktPmJvZHkoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6
dG9XS0RPTUVsZW1lbnQoV2ViQ29yZTo6ZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KCpfaW1w
bCkuYm9keSgpKTsKIH0KIAogQGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238874</attachid>
            <date>2014-09-29 13:30:08 -0700</date>
            <delta_ts>2014-09-29 15:23:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137221-20140929133009.patch</filename>
            <type>text/plain</type>
            <size>85267</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUzY2UzMTI0NmQxMjcz
M2Q2YTFiZTMzMjY2MTg2MWZmZDgyMjI1My4uNGQ0NGNhZTc2YTYxMmNkYjcwODI1MDhmYTE4ZDMx
OThkZDE4MDBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NiBAQAorMjAxNC0wOS0yOSAgQ2hy
aXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAv
IGRvd25jYXN0PD4oKSBmb3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50
IGluc3RlYWQgb2YgaXNEb2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpmcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cGFnZSk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpk
b2N1bWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbjo6cGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmRvY3VtZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZUNvbnRleHQ6OmFsbG93RGF0YWJhc2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRz
aGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhh
bmRzaGFrZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpj
bGllbnRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ondy
YXApOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZG9jdW1lbnQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUmVxdWVzdFN0YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUmVxdWVzdFN0YXRlOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRp
b0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNBdWRpb0Nv
bnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZl
bnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVySW5saW5l
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmcmFtZUZyb21FeGVjU3RhdGUp
OgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VidGxlQ3J5cHRvOjpkb2N1bWVudCk6CisgICAgICAgICogZG9tL0NvbW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vQ29udGFpbmVy
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FjY2VwdENoaWxkKToKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hp
bGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1
bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0Rv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFn
ZSk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXaW5kb3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZl
bnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hbWVkRmxvd0NvbGxlY3Rpb246OmRvY3VtZW50KToKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0RlZmF1bHROYW1lc3Bh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bG9va3VwUHJlZml4KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3Bh
dGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydE1hcmt1
cCk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
SFRNTERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE5hbWVDb2xsZWN0aW9uOjpkb2N1bWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVs
ZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjppc0ltYWdlRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvTWVkaWFE
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNNZWRpYURvY3VtZW50KToKKyAgICAgICAg
KiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1BsdWdpbkRvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlOjpvd25lckRvY3VtZW50KToKKyAgICAgICAgKiBodG1sL3RyYWNr
L1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmluaXRpYWxpemUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVlRUUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdp
b246Om93bmVyRG9jdW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnRO
b2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dCk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQcmV2ZW50ZWRMb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJy
aWRnZTo6bWFpblRocmVhZENyZWF0ZUxvYWRlcik6CisgICAgICAgICogcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjpyZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0bzo6ZG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6Omluc3RhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NVGltZXI6OmZpcmVkKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0eWxlTWVkaWEpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpnZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZCk6CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkpOgorICAgICAgICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
aXN0b3J5Ojpnbyk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzY3Jv
bGxhYmxlRW5jbG9zaW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpjYW5TY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpu
b2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyk6CisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbnRleHREb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5k
UnVuUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09i
amVjdCk6CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0
KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclByb3h5OjphZGRUb1dvcmtlckRvY3VtZW50
cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6b3Blbik6CisKIDIwMTQtMDktMjkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01hY10gUmVtb3ZlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0IGZy
YW1lIHJhdGUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMwMDA4MGNkYjcyMTQ1YjUxZjNiM2Q3ZDU2MDNi
ZGEyNTIxODE0ZTcuLmU5NGMyNWNiOWZiMDkxODQyNGE3MzYwM2U1OWM3MWFkZGE1ZTI3NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wOS0yOSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBm
b3IgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNzIyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIERvY3VtZW50IGluc3RlYWQgb2YgaXNE
b2N1bWVudE5vZGUoKSAvCisgICAgICAgIHRvRG9jdW1lbnQoKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tOgorICAgICAgICAo
LVtXS0RPTURvY3VtZW50IGNyZWF0ZUVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dLRE9NRG9jdW1l
bnQgY3JlYXRlVGV4dE5vZGU6XSk6CisgICAgICAgICgtW1dLRE9NRG9jdW1lbnQgYm9keV0pOgor
CiAyMDE0LTA5LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAppbmRleCAzZGE4MmE1NDQxMDQ5M2E5ZTZiMGMzYTY4MjJhYzVhNmZmNmU5
NWJhLi43ZDg0ODExODZjNzY0MDY1NzdlNWEyMDAxZmQ3ZDViM2U3YWQwMWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MjUwLDE3ICsyNTAsMTcgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigpCiAKIERvY3VtZW50
KiBHZW9sb2NhdGlvbjo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiB0b0RvY3VtZW50
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBGcmFtZSogR2VvbG9jYXRpb246OmZy
YW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPmZyYW1l
KCkgOiAwOworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51
bGxwdHI7CiB9CiAKIFBhZ2UqIEdlb2xvY2F0aW9uOjpwYWdlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gZG9jdW1lbnQoKSA/IGRvY3VtZW50KCktPnBhZ2UoKSA6IDA7CisgICAgcmV0dXJuIGRvY3Vt
ZW50KCkgPyBkb2N1bWVudCgpLT5wYWdlKCkgOiBudWxscHRyOwogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNw
cAppbmRleCBlZGFmZDdlMmU2NGZjYTMxYWZkM2E2YTcwMjYyNGE4ODYwMWFkM2E1Li5jZTAxMDA3
YTdkMDAwNzg4ZTFjZjFiYTYxNDg1M2NkNzY2N2ZjMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNjgsMTAgKzY4LDEwIEBAIElE
QkZhY3Rvcnk6On5JREJGYWN0b3J5KCkKIG5hbWVzcGFjZSB7CiBzdGF0aWMgYm9vbCBpc0NvbnRl
eHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVChj
b250ZXh0LT5pc0RvY3VtZW50KCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsK
LSAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkb2N1bWVudC0+ZnJh
bWUoKSAmJiBkb2N1bWVudC0+cGFnZSgpICYmICghZG9jdW1lbnQtPnBhZ2UoKS0+dXNlc0VwaGVt
ZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJblBy
aXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkpOwor
ICAgIEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkgfHwgY29udGV4dC0+aXNXb3JrZXJHbG9i
YWxTY29wZSgpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5mcmFtZSgpICYmIGRvY3VtZW50LnBhZ2UoKSAmJiAoIWRvY3VtZW50
LnBhZ2UoKS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKSB8fCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dz
RGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LT5wcm90b2NvbCgpKSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNzksOSArNzks
OSBAQCBzdGF0aWMgYm9vbCBpc0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQogc3RhdGljIFN0cmluZyBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoaXNDb250ZXh0VmFsaWQoY29u
dGV4dCkpOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLmluZGV4ZWREQkRhdGFiYXNlUGF0
aCgpOworICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKKyAgICAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCkuaW5kZXhlZERCRGF0YWJh
c2VQYXRoKCk7CiAgICAgfQogICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3Mg
PSB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT5ncm91cFNldHRpbmdzKCk7CiAgICAgaWYg
KGdyb3VwU2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggOWYzYzk2YTJjMTJhNmFlMjEwNTRkYTM5MGQyODAx
NTM3ODhjMzE0MS4uY2E1MzRjZTg4Y2Q2N2MwNTAxY2RhM2JjMWExODc5MzQ1OTczNDU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgVmVjdG9yPFN0cmluZz4gU291cmNlQnVmZmVyOjpi
dWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2sKIERvY3Vt
ZW50JiBTb3VyY2VCdWZmZXI6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICByZXR1cm4gKnRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDI5ZGMxOTI2ZGQ2YTc0YWJkNWM0ZTc2OTY2NDU4YTEwNTFkZmRmZWMuLjM1MTlj
M2QyZGQxM2Q2Mzg0OTk2NmE0MzMzZWJlNmE3Yzk2ZWNkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzgsNyArMTc4LDcgQEAgUlRDUGVlckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHIKICAgICAsIG1fY29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogewotICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogCiAgICAgaWYgKCFkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmlu
ZGV4IGU5Y2IwMzUzNmNkOGYyMmU2NjFmMDIxYTM0MjU3MTViOWZhZWRlMjEuLjM2YWU2MWZlNDdk
ZGViYTE0MjY0MjQ1MTNmY2VkM2Q5NWM2NjJlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC04Niw3ICs4Niw3
IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBt
X3Rhc2tUaW1lcihzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPE5vdGlmaWNhdGlvbj4+KHRoaXMsICZO
b3RpZmljYXRpb246OnRhc2tUaW1lckZpcmVkKSkKIHsKLSAgICBtX25vdGlmaWNhdGlvbkNlbnRl
ciA9IERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnModG9Eb2N1bWVu
dChjb250ZXh0KS5kb21XaW5kb3coKSk7CisgICAgbV9ub3RpZmljYXRpb25DZW50ZXIgPSBET01X
aW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KS5kb21XaW5kb3coKSk7CiAgICAgCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5jbGllbnQoKSk7CiAgICAgbV90YXNrVGltZXItPnN0YXJ0T25lU2hvdCgwKTsKQEAg
LTEzNSw5ICsxMzUsOSBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpCiAgICAgLy8gcHJldmVu
dCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlID09IElkbGUgJiYgbV9ub3RpZmljYXRp
b25DZW50ZXItPmNsaWVudCgpKSB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAg
IGlmICghdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkpCisgICAg
ICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLnBh
Z2UoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXI6OmZyb20odG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCkp
LT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgICAgICBpZiAoTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkucGFnZSgpKS0+Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQpIHsKICAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC0yMTMsOCArMjEzLDggQEAgdm9pZCBOb3RpZmljYXRpb246OnRh
c2tUaW1lckZpcmVkKFRpbWVyPE5vdGlmaWNhdGlvbj4mIHRpbWVyKQogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogY29uc3QgU3RyaW5nIE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIEFTU0VSVCh0b0RvY3VtZW50KGNvbnRl
eHQpLT5wYWdlKCkpOwotICAgIHJldHVybiBwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXI6OmZyb20odG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgpKS0+Y2xpZW50KCktPmNo
ZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkucGFnZSgpKTsKKyAgICByZXR1cm4gcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRp
b25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKS0+
Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSk7CiB9CiAKIGNvbnN0IFN0cmluZyBO
b3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIHBlcm1pc3Npb24pCkBAIC0yMzQsOCArMjM0LDggQEAgY29uc3QgU3RyaW5nIE5vdGlmaWNh
dGlvbjo6cGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVy
bWkKIAogdm9pZCBOb3RpZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrPiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQodG9Eb2N1bWVudChjb250ZXh0KS0+cGFnZSgp
KTsKLSAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHRvRG9jdW1lbnQoY29udGV4dCkt
PnBhZ2UoKSktPmNsaWVudCgpLT5yZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBjYWxsYmFjayk7
CisgICAgQVNTRVJUKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKTsKKyAgICBO
b3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCku
cGFnZSgpKS0+Y2xpZW50KCktPnJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGNhbGxiYWNrKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKaW5kZXggMzY0YzBjNjhkZWQxOWIzMjc4YjUxYTZhZTEwOTU3MjBhOWY3NWI4
OS4uY2Y5OTU5Zjc5OGJlOWI4YzQ1MWEzYWMxYTNjOGIyNTExYWU3NDVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMzI1LDcg
KzMyNSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdG9wKCkKIERvY3VtZW50KiBBdWRpb0NvbnRl
eHQ6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKLSAgICByZXR1cm4gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
IH0KIAogUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBz
YW1wbGVSYXRlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCmluZGV4IDNiZWNlMzAx
OTU3NGUzYTM5ZjY2MjVjN2MxZTMxZGY4NDlmODMwNGIuLjMwOWIxZGI5MmIxMmQ0M2QxZWYzZGQ1
NTVmMWNkZWVkNDIxNDNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMzcsMTIgKzM3LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29udGV4dD4gT2ZmbGlu
ZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2Ft
cGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0
IGZvciB3b3JrZXJzLgotICAgIGlmICghY29udGV4dC5pc0RvY3VtZW50KCkpIHsKKyAgICBpZiAo
IWlzPERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSB0b0RvY3VtZW50KGNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKIAogICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gMTAg
fHwgIWlzU2FtcGxlUmF0ZVJhbmdlR29vZChzYW1wbGVSYXRlKSkgewogICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHAKaW5kZXggMjhmMDc2YTM1OTFlNzQwZTExMmM2NTZkZGFlNDUx
NDNiYTljZTE5YS4uMzhkYTE1YTE2ZTA1ZTNmNzdhNmNkNWJhNDg4NTM5NjNiZTAxNjA0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VD
b250ZXh0LmNwcApAQCAtMjE4LDkgKzIxOCw5IEBAIGJvb2wgRGF0YWJhc2VDb250ZXh0OjpzdG9w
RGF0YWJhc2VzKERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyKQogCiBib29s
IERhdGFiYXNlQ29udGV4dDo6YWxsb3dEYXRhYmFzZUFjY2VzcygpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAg
ICAgICAgaWYgKCFkb2N1bWVudC0+cGFnZSgpIHx8IChkb2N1bWVudC0+cGFnZSgpLT51c2VzRXBo
ZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nlc3NJ
blByaXZhdGVCcm93c2luZyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSkp
KQorICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKKyAg
ICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSB8fCAoZG9jdW1l
bnQucGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmICFTY2hlbWVSZWdpc3RyeTo6YWxs
b3dzRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLT5wcm90b2NvbCgpKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTIzMSwxMCArMjMxLDEwIEBAIGJvb2wgRGF0YWJhc2VDb250
ZXh0OjphbGxvd0RhdGFiYXNlQWNjZXNzKCkgY29uc3QKIAogdm9pZCBEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWls
cyBkZXRhaWxzKQogewotICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1l
bnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBh
Z2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YShkb2N1bWVudC0+ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CisgICAgaWYgKGlzPERv
Y3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgeworICAgICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZXhjZWVkZWREYXRhYmFzZVF1b3RhKGRvY3VtZW50LmZy
YW1lKCksIG5hbWUsIGRldGFpbHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VS
VChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA1NTQxYzNlNDFjNWI1MTgxZGE1MTlkN2Q3
ZDg5Zjc4ZmRmMjRmN2ZmLi4xNjU0ZGQ1NjBlMmM5NTA5OTIzZDY2OWZlZTZmOTg5YjE3MDc1NDQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFz
c1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OmNyZWF0ZShTY3JpcHQKICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0
cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHRv
RG9jdW1lbnQoY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6
OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKaW5kZXggZGIzY2U4ZTg2MWI4ZjBkYmM3MDFjMmEzYmQzOWRjYjBlM2Rl
YzNkOC4uOThiZGNlMmZkM2RkYmU3MjkwYjM3ZGQzOTEzMDVkZmI3ZTBmZjA0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTIzOSw5
ICsyMzksOSBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhjZQogCiAgICAgLy8gRklYTUU6IENvbnZl
cnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgogICAgIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAg
ICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpOworICAgIGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkg
eworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KICAgICBpZiAoIXNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSAmJiAhc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2Uo
bV91cmwpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4
IGNjZTMzMmJiNDU2OWUyNTIwM2EzMDNiZjgwMGM0MTk4ZDc3MGViZTUuLmYzNjZhMmQ1ZmE2ODcy
NGIxOTg2MGMzMDc5ZWM5NjgwMmJlYzM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0xOTYsOSAr
MTk2LDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3Nh
Z2UoKSBjb25zdAogICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVByb3RvY29s
OiAiICsgbV9jbGllbnRQcm90b2NvbCk7CiAKICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhl
bnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlmIChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkg
ewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0g
ICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1
bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG1fY29udGV4dCkpIHsKKyAgICAgICAg
RG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX2NvbnRleHQpOworICAg
ICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoJmRvY3Vt
ZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNvb2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBm
aWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBjb29raWUpOwogICAgICAgICAvLyBTZXQgIkNvb2tp
ZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhpc3RzIGZvciB1cmw/CkBAIC0yNDcsOSArMjQ3
LDkgQEAgUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtl
UmVxdWVzdCgpIGNvbnN0CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAKICAg
ICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAgIGlm
IChtX2NvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB0b0RvY3VtZW50KG1fY29udGV4dCk7Ci0gICAgICAgIFN0cmluZyBjb29raWUgPSBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1bWVudCwgdXJsKTsKKyAgICBpZiAoaXM8RG9jdW1l
bnQ+KCptX2NvbnRleHQpKSB7CisgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9jb250ZXh0KTsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCZkb2N1bWVudCwgdXJsKTsKICAgICAgICAgaWYgKCFjb29r
aWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvb2tpZSwgY29va2llKTsKICAgICAgICAgLy8gU2V0ICJDb29raWUyOiA8
Y29va2llPiIgaWYgY29va2llcyAyIGV4aXN0cyBmb3IgdXJsPwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzU4MTkzZjM0Mzk4YjNhNWM2YzU0ZTUyYjAx
ZGM0ZGFmMDgxNDVmMi4uODkwY2IxZDZkMTZlNGFmNjU1OGRkYTM4ODc4ZDEyMGQ4Mzc0MGI2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lKCkK
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBjbGllbnRXcmFwcGVyLCBX
b3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBw
ZXIoY2xpZW50V3JhcHBlcikKICAgICAsIG1fbG9hZGVyUHJveHkobG9hZGVyUHJveHkpCi0gICAg
LCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh0b0RvY3Vt
ZW50KGNvbnRleHQpLCB0aGlzKSkKKyAgICAsIG1fbWFpbldlYlNvY2tldENoYW5uZWwoV2ViU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGhpcykpCiAg
ICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcAppbmRleCBhNDY0M2UzOGJhZTcyZGQ2NjZmZGViZDg0NTUzYWNjMTVlNzkzNjM3Li5l
NmM5NTA0YzcyMTNjMzBmYTFlYWU5MTUzMzBlMmY1N2JmODBlY2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKQEAgLTEw
MCw5ICsxMDAsOSBAQCBXZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENv
bW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgotICAgICAgICBpZiAodG9Eb2N1bWVudChub2RlKS0+aXNIVE1MRG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEhUTUxEb2N1bWVudChz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihub2RlKSkpOwotICAgICAgICByZXR1cm4gV0VCS0lU
X0RPTV9OT0RFKHdyYXBEb2N1bWVudCh0b0RvY3VtZW50KG5vZGUpKSk7CisgICAgICAgIGlmIChp
czxIVE1MRG9jdW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9E
RSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0PEhUTUxEb2N1bWVudD4obm9kZSkpKTsKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIHJl
dHVybiBXRUJLSVRfRE9NX05PREUod3JhcERvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVu
dFR5cGUqPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0
aERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Db25zdHJ1Y3Rvcldp
dGhEb2N1bWVudC5oCmluZGV4IDVjOThmNjExNjEwZGU3ZGRlYjNjMGJjNTAzMmE0OWMyMmY3YzAz
NzAuLjNlMjY5ODgyZjEyYWY3ZDI3NzEwOGQ1MjcxMTFjNTI1ZmFhNWFiMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1l
bnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCA6
IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0YXRlLmgKaW5kZXggOTA3MTU2MWQ1ODg4NWFh
YjlkZWMxMWJiNTE1OTc2NGFlMjhmZGViMC4uMmE0NzE0YzkzYjkzMDBlYTk3ZjQ4YTRlMWZiNjcz
NzI3MWUyZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVx
dWVzdFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUmVxdWVzdFN0
YXRlLmgKQEAgLTQxLDExICs0MSwxMSBAQCBjbGFzcyBET01SZXF1ZXN0U3RhdGUgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICAsIG1fZXhlYygwKQorICAgICAgICAs
IG1fZXhlYyhudWxscHRyKQogICAgIHsKLSAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+aXNEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBtX2V4ZWMg
PSBleGVjU3RhdGVGcm9tUGFnZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZG9jdW1lbnQtPnBh
Z2UoKSk7CisgICAgICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkpIHsKKyAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIG1fZXhlYyA9IGV4ZWNT
dGF0ZUZyb21QYWdlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBkb2N1bWVudC5wYWdlKCkpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckds
b2JhbFNjb3BlID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwogICAgICAgICAgICAgbV9leGVjID0gZXhlY1N0YXRlRnJvbVdvcmtlckds
b2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKTsKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhcigpCiAgICAgewotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgPSAwOwotICAgICAgICBtX2V4ZWMgPSAwOworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgPSBudWxscHRyOworICAgICAgICBtX2V4ZWMgPSBudWxscHRyOwogICAgIH0KIAogICAg
IGNsYXNzIFNjb3BlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCAzNGI0NWYzMTFmNTQ1MDE5NTA3NWY0ZjE5MWNmYzhj
N2MwYWU4ZmFlLi41Yzg0MTJhZjAwZDQ3ZGMxNDlmNWQ1ZWU4NGRlZDc0NTcxZDBhNjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20u
Y3BwCkBAIC01MywxMCArNTMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU0F1ZGlvQ29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJl
ZmVyZW5jZUVycm9yKGV4ZWMsICJBdWRpb0NvbnRleHQgY29uc3RydWN0b3Igc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0IGlzIHVuYXZhaWxhYmxlIikpOwogICAgICAgICAKLSAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzPERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIGNh
bGxlZCBpbiBhIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCB3aGljaCBpcyBub3QgYSBkb2N1bWVu
dCIpKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKICAgICBSZWZQdHI8QXVkaW9Db250ZXh0PiBh
dWRpb0NvbnRleHQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYWM5ZGQ3NTgxZjg3YzY2NmE1MTI3OWJhN2U2MGJlZjQx
ODhmZWEwYy4uOTljNDAyYzMyN2U3Zjk3Y2FjZTllYzYzOTVjNWRlZGVkZWQwODVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTA1LDE0ICsxMDUsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIAogSlNET01HbG9iYWxP
YmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlNET01H
bG9iYWxPYmplY3QodG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgZXhlYyk7Cisg
ICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0
dXJuIHRvSlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLCBleGVjKTsKIAogICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dv
cmtlckdsb2JhbFNjb3BlKCkpCiAgICAgICAgIHJldHVybiB0b1dvcmtlckdsb2JhbFNjb3BlKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5zY3JpcHQoKS0+d29ya2VyR2xvYmFsU2NvcGVXcmFwcGVy
KCk7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQpAQCAtMTIyLDE0ICsx
MjIsMTQgQEAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBET01XcmFwcGVyV29ybGQmIHdvcmwKIAogSlNET01HbG9iYWxPYmplY3QqIHRv
SlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gdG9KU0RPTUdsb2JhbE9i
amVjdCh0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLCB3b3JsZCk7CisgICAgaWYg
KGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgcmV0dXJuIHRv
SlNET01HbG9iYWxPYmplY3QoZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpLCB3b3JsZCk7CiAKICAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKQogICAgICAgICByZXR1cm4gdG9Xb3JrZXJHbG9iYWxTY29wZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KS0+c2NyaXB0KCktPndvcmtlckdsb2JhbFNjb3BlV3JhcHBlcigpOwog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNmUzNGQyMWUzYzJj
M2M4MTIwYmE4ZDdkNmExNmYyMTdhNjQ5NzgxMC4uYjJjYzI3NmM0MThlNjBjZTE2MDQ5MjYzM2I2
OTM3ZWYxMDQyZTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTczLDMwICs3MywzMCBAQCBKU0xhenlFdmVudExpc3Rl
bmVyOjp+SlNMYXp5RXZlbnRMaXN0ZW5lcigpCiBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZXhlY3V0aW9u
Q29udGV4dCkgY29uc3QKIHsKICAgICBBU1NFUlQoZXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgQVNT
RVJUKGV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGlzPERvY3Vt
ZW50PihleGVjdXRpb25Db250ZXh0KSk7CiAgICAgaWYgKCFleGVjdXRpb25Db250ZXh0KQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQoIW1f
Y29kZS5pc051bGwoKSk7CiAgICAgQVNTRVJUKCFtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051bGwo
KSk7CiAgICAgaWYgKG1fY29kZS5pc051bGwoKSB8fCBtX2V2ZW50UGFyYW1ldGVyTmFtZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChleGVjdXRpb25Db250ZXh0KTsKKyAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmV4ZWN1dGlvbkNvbnRleHQp
OwogCi0gICAgaWYgKCFkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
aWYgKCFkb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlm
ICghZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMobV9zb3VyY2VVUkwsIG1fcG9zaXRpb24ubV9saW5lKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKCFkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVF
dmVudEhhbmRsZXJzKG1fc291cmNlVVJMLCBtX3Bvc2l0aW9uLm1fbGluZSkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpOworICAgIFNjcmlwdENvbnRyb2xsZXImIHNjcmlwdCA9IGRvY3Vt
ZW50LmZyYW1lKCktPnNjcmlwdCgpOwogICAgIGlmICghc2NyaXB0LmNhbkV4ZWN1dGVTY3JpcHRz
KEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBzY3JpcHQuaXNQYXVzZWQoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoZXhlY3V0aW9uQ29udGV4dCwgaXNv
bGF0ZWRXb3JsZCgpKTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU09iamVjdCogSlNM
YXp5RXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogZXhlYwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICByZXBv
cnRDdXJyZW50RXhjZXB0aW9uKGV4ZWMpOwogICAgICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigp
OwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgSlNGdW5jdGlvbiogbGlzdGVuZXJBc0Z1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihq
c0Z1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CmluZGV4IDdkMDhhMjBkYjY5Y2FjZTAxNjE1MTZkYmExODcxY2RlYjAxZDIyYTIuLmNmODA2MDlk
YTBiZGY2MmY5ZGY4NmE5MmI0ZWFhZTFiMmIwOGI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBBTFdB
WVNfSU5MSU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgogICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9j
dW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQotICAgICAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB0b0RvY3VtZW50KG5vZGUpKTsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8RG9jdW1lbnQ+
KG5vZGUpKTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRG9jdW1lbnRU
eXBlLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggMzdjNzcyOGVkOWU2MmQ0YmVhYzZjYWY3
YTMwNWRlZGVmMWQ2YWQyNi4uZDExZTQ1NGRiYTk3YzYyZTIxZTA2ZTQ1ZGFhMTBiOGRmYzNjZjg2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3Bw
CkBAIC03NCw4ICs3NCw4IEBAIFNjaGVkdWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvbiwgRE9NV3JhcHBlcldvCiAKIHZvaWQgU2NoZWR1
bGVkQWN0aW9uOjpleGVjdXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0g
ICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgZXhlY3V0ZSh0b0RvY3VtZW50
KGNvbnRleHQpKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKQorICAgICAgICBleGVj
dXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CiAgICAgZWxzZQogICAgICAgICBleGVj
dXRlKHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IDcwZGZkMTY1MzI0OTIyMzBjZDY1MGRmZDBi
NWY2Y2U2Y2VmZTA4YzAuLjM3NmNkMjU0Zjg3ZDM0MTZmYTczOWYyYTExN2NjM2ZkNjBkY2U0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKQEAgLTU4LDcg
KzU4LDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dGcm9tRXhlY1N0YXRlKEpTQzo6RXhlY1N0YXRl
KiBzY3JpcHRTdGF0ZSkKIEZyYW1lKiBmcmFtZUZyb21FeGVjU3RhdGUoSlNDOjpFeGVjU3RhdGUq
IHNjcmlwdFN0YXRlKQogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShzY3JpcHRTdGF0ZSk7Ci0gICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gY29udGV4dCAmJiBjb250ZXh0LT5pc0RvY3VtZW50KCkgPyB0b0Rv
Y3VtZW50KGNvbnRleHQpIDogbnVsbHB0cjsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250
ZXh0ICYmIGlzPERvY3VtZW50Pihjb250ZXh0KSA/IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSA6IG51bGxwdHI7CiAgICAgcmV0dXJuIGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBu
dWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IDFi
YzU4YzBjY2I0NzA3OTk3N2FhYjkyMDk0M2NkMzk0ZDVlMGM2YjAuLjY4ZDgyMGMzYWRjNTg2ZWQz
NzVhNTg5MWQ4YzI2ZDhhNDNkOWFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwCkBAIC0zOSw3ICszOSw3IEBAIFN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKERvY3Vt
ZW50JiBkb2N1bWVudCkKIAogRG9jdW1lbnQqIFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQoKSBjb25z
dAogewotICAgIHJldHVybiB0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKaW5kZXggNTEzMDBlOWU4YTllMTc5YTI0ZWRiYzhj
MmM5NTQzZjc2ZGZjMzM4Zi4uOTYxZThmMTIxYTc0MzUzZjg4NjIwZDc4MWYwYWJkYjJkZGMyMDIy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPENv
bW1lbnQ+IENvbW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIAogUGFzc1JlZlB0cjxDb21tZW50PiBDb21tZW50OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ29tbWVudCh0b0RvY3VtZW50KGNvbnRleHQpLCB0ZXh0KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb21tZW50KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgdGV4
dCkpOwogfQogCiBTdHJpbmcgQ29tbWVudDo6bm9kZU5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGIxN2IwOWYwODJhNWFmMWE2OTA4NjZhMmRiMzBlZmFm
MTA0NzI2NTUuLjY1M2Y2OTcxYjdhMmU4NjUzYzEwMjk5ODY3YTFlMGU4ODVjZDgzNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTIwMiw4ICsyMDIsOCBAQCBzdGF0aWMg
aW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQ
YXJlbnQsIE5vZGUqIG5ldwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRz
KG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIG5ld1BhcmVudC0+aXNEb2N1bWVudE5vZGUoKSkg
ewotICAgICAgICBpZiAoIXRvRG9jdW1lbnQobmV3UGFyZW50KS0+Y2FuUmVwbGFjZUNoaWxkKG5l
d0NoaWxkLCBvbGRDaGlsZCkpCisgICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PihuZXdQ
YXJlbnQpKSB7CisgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpuZXdQYXJlbnQpLmNh
blJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpKQogICAgICAgICAgICAgcmV0dXJuIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICB9IGVsc2UgaWYgKCFpc0NoaWxkVHlwZUFsbG93ZWQo
bmV3UGFyZW50LCBuZXdDaGlsZCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9F
UlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcApp
bmRleCA4MDRhNTY3NjUzNmY0ZGIzZTBkMjA4YTI0MjQwZmIyNmU3ZjJiODYxLi4yMTc5MThlNmI5
MzJkM2ZiY2M4YzA4NGQ4YjdhMmUwM2M1MjA0Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgdm9pZCBDaGls
ZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3Vt
ZW50KENvbnRhaW5lck4KICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byB0ZWxsIHRoZSByZXN0
IG9mIG91ciBjaGlsZHJlbiB0aGF0IHRoZXkndmUgYmVlbgogICAgICAgICAvLyBpbnNlcnRlZCBp
bnRvIHRoZSBkb2N1bWVudCBiZWNhdXNlIHRoZXkgaGF2ZW4ndC4KICAgICAgICAgaWYgKG5vZGUu
aW5Eb2N1bWVudCgpICYmIGNoaWxkLT5wYXJlbnROb2RlKCkgPT0gJm5vZGUpCi0gICAgICAgICAg
ICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKmNoaWxkLmdldCgpKTsKKyAgICAgICAg
ICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCgqY2hpbGQpOwogICAgIH0KIAogICAg
IGlmICghbm9kZS5pc0VsZW1lbnROb2RlKCkpCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgQ2hpbGRO
b2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1bWVu
dChDb250YWluZXJOCiAKICAgICBpZiAoUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSB0b0VsZW1l
bnQobm9kZSkuc2hhZG93Um9vdCgpKSB7CiAgICAgICAgIGlmIChub2RlLmluRG9jdW1lbnQoKSAm
JiByb290LT5ob3N0RWxlbWVudCgpID09ICZub2RlKQotICAgICAgICAgICAgbm90aWZ5Tm9kZUlu
c2VydGVkSW50b0RvY3VtZW50KCpyb290LmdldCgpKTsKKyAgICAgICAgICAgIG5vdGlmeU5vZGVJ
bnNlcnRlZEludG9Eb2N1bWVudCgqcm9vdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDlmN2EyNWRiOTBmYjUwNWNiMmY5YWIxMmZjYTA3NWNiMjIyOGNmYjIuLmM0MmQ0NDJj
NjI4YWYyZTc1M2FiZGU1MmNmN2FlZTFiYjc4NGQwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xNzQwLDEyICsxNzQwLDEwIEBAIGlubGluZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBOb2Rl
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKIAogRWxlbWVudCogZXZlbnRUYXJnZXRF
bGVtZW50Rm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKIAotU0NSSVBUX0VYRUNVVElPTl9DT05URVhU
X1RZUEVfQ0FTVFMoRG9jdW1lbnQpCi0KLWlubGluZSBib29sIGlzRG9jdW1lbnQoY29uc3QgTm9k
ZSYgbm9kZSkgeyByZXR1cm4gbm9kZS5pc0RvY3VtZW50Tm9kZSgpOyB9Ci12b2lkIGlzRG9jdW1l
bnQoY29uc3QgRG9jdW1lbnQmKTsgLy8gQ2F0Y2ggdW5uZWNlc3NhcnkgcnVudGltZSBjaGVjayBv
ZiB0eXBlIGtub3duIGF0IGNvbXBpbGUgdGltZS4KLQotTk9ERV9UWVBFX0NBU1RTKERvY3VtZW50
KQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihEb2N1bWVudCkKKyAgICBzdGF0aWMgYm9v
bCBpc0RvY3VtZW50KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0
dXJuIGNvbnRleHQuaXNEb2N1bWVudCgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEb2N1bWVudChj
b25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCk7IH0KK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggN2IxYmEzYTMwMzMzYmQxNzc2
ODNiNzIyODBmNjRlZmZlZmU3ZWEzYi4uNjdlY2IxN2UzYWUzNTk2NjcxM2JlODA3ZGJkNThiYjFk
NzI1YjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtNDMs
NyArNDMsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudEZyYWdtZW50KHRvRG9jdW1l
bnQoY29udGV4dCksIE5vZGU6OkNyZWF0ZURvY3VtZW50RnJhZ21lbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERvY3VtZW50RnJhZ21lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQp
LCBOb2RlOjpDcmVhdGVEb2N1bWVudEZyYWdtZW50KSk7CiB9CiAKIFN0cmluZyBEb2N1bWVudEZy
YWdtZW50Ojpub2RlTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMmRhOGU3
M2VlOTA0Nzg1OWE1NjIxMjgwOTA5NDc0MjhjMjMxODkyNC4uMjFhZDU2NmFhMTk0MWQzYzc5YTZl
MDMxOGE4MjhiNGI1MmRmYWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjIwMCw5ICsy
MjAwLDkgQEAgQXRvbWljU3RyaW5nIEVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgp
IGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlID0g
ZWxlbWVudERhdGEtPmZpbmRMYW5ndWFnZUF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYXR0cmlidXRlLT52YWx1ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgaWYgKGN1cnJlbnROb2RlLT5pc0RvY3VtZW50Tm9kZSgpKSB7CisgICAgICAgIH0gZWxzZSBp
ZiAoaXM8RG9jdW1lbnQ+KGN1cnJlbnROb2RlKSkgewogICAgICAgICAgICAgLy8gY2hlY2tpbmcg
dGhlIE1JTUUgY29udGVudC1sYW5ndWFnZQotICAgICAgICAgICAgcmV0dXJuIHRvRG9jdW1lbnQo
Y3VycmVudE5vZGUpLT5jb250ZW50TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4oKmN1cnJlbnROb2RlKS5jb250ZW50TGFuZ3VhZ2UoKTsKICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA1YTBk
YjRlZjk2ZTM0N2NkM2MxMWM3OGYzYWE5NWRiODBjYWFhYzI1Li5jNmUyNWVkOWQ5Yzg2Yzk5MDI1
MGVlNmUyYzZjNmM3OTEzZWM2NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVy
LmNwcApAQCAtNjAsMTAgKzYwLDEwIEBAIHByaXZhdGU6CiBXaW5kb3dFdmVudENvbnRleHQ6Oldp
bmRvd0V2ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGNvbnN0IEV2ZW50Q29udGV4
dCogdG9wRXZlbnRDb250ZXh0KQogewogICAgIE5vZGUqIHRvcExldmVsQ29udGFpbmVyID0gdG9w
RXZlbnRDb250ZXh0ID8gdG9wRXZlbnRDb250ZXh0LT5ub2RlKCkgOiBub2RlLmdldCgpOwotICAg
IGlmICghdG9wTGV2ZWxDb250YWluZXItPmlzRG9jdW1lbnROb2RlKCkpCisgICAgaWYgKCFpczxE
b2N1bWVudD4odG9wTGV2ZWxDb250YWluZXIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3dp
bmRvdyA9IHRvRG9jdW1lbnQodG9wTGV2ZWxDb250YWluZXIpLT5kb21XaW5kb3coKTsKKyAgICBt
X3dpbmRvdyA9IGRvd25jYXN0PERvY3VtZW50PigqdG9wTGV2ZWxDb250YWluZXIpLmRvbVdpbmRv
dygpOwogICAgIG1fdGFyZ2V0ID0gdG9wRXZlbnRDb250ZXh0ID8gdG9wRXZlbnRDb250ZXh0LT50
YXJnZXQoKSA6IG5vZGUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCmlu
ZGV4IDI2NTE3OGNmNmUzZTNmMTA5NzFhMDRmOWU4ZjY1NDEwNTYzMWQ3YmQuLjQ4MzdkODYxZGZj
ZmE2YTE5NDZiNTc3YmZkNjQzNWUwMTc3NGRlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcApAQCAtMjIzLDggKzIyMyw4IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3Rl
bmVycyhFdmVudCogZXZlbnQsIEV2ZW50VGFyZ2V0RGF0YSogZCwgRXZlbnRMaXN0CiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudENvb2tpZTsKLSAgICBpZiAoY29udGV4dCAm
JiBjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQgPSB0b0RvY3VtZW50
KGNvbnRleHQpOworICAgIGlmIChjb250ZXh0ICYmIGlzPERvY3VtZW50Pihjb250ZXh0KSkgewor
ICAgICAgICBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAgICAgICAg
d2lsbERpc3BhdGNoRXZlbnRDb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxE
aXNwYXRjaEV2ZW50KGRvY3VtZW50LCAqZXZlbnQsIHNpemUgPiAwKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcAppbmRleCBlZTkyZjA0N2Y2ODIy
NjBlM2RlNzg4MmM5M2FlNDFhNTg1OTRlNzIwLi42ODY3ODQwOGExMWRhNWFkMjQzOTEzNGFiYmEx
ZmJkYTc4Mzk4MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29s
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24u
Y3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBOYW1lZEZsb3dDb2xsZWN0aW9uOjpkaXNjYXJk
TmFtZWRGbG93KFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93KQogRG9jdW1lbnQqIE5hbWVkRmxv
d0NvbGxlY3Rpb246OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0ID0gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKLSAgICByZXR1cm4gdG9Eb2N1bWVudChjb250ZXh0KTsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogfQogCiBQYXNzUmVmUHRyPERPTU5hbWVkRmxv
d0NvbGxlY3Rpb24+IE5hbWVkRmxvd0NvbGxlY3Rpb246OmNyZWF0ZUNTU09NU25hcHNob3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCmluZGV4IGRiOTdkZTIzMTc2MDg5NzAwNTBjOTBhZGRmMTY2MWFlYjI2NmZj
MWYuLmVhOTJkYTgwYTIwOGMwYmNhMzAxNGIyMzVjMzBhMDg3NWI3OGJhZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKQEAgLTExNjIsOCArMTE2Miw4IEBAIGJvb2wgTm9kZTo6aXNEZWZhdWx0TmFtZXNwYWNl
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJTWF5YmVFbXB0eSkgY29uc3QKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIERPQ1VNRU5UX05P
REU6Ci0gICAgICAgICAgICBpZiAoRWxlbWVudCogZGUgPSB0b0RvY3VtZW50KHRoaXMpLT5kb2N1
bWVudEVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGUtPmlzRGVmYXVsdE5hbWVz
cGFjZShuYW1lc3BhY2VVUkkpOworICAgICAgICAgICAgaWYgKEVsZW1lbnQqIGRvY3VtZW50RWxl
bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqdGhpcykuZG9jdW1lbnRFbGVtZW50KCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudC0+aXNEZWZhdWx0TmFtZXNwYWNlKG5h
bWVzcGFjZVVSSSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgRU5U
SVRZX05PREU6CiAgICAgICAgIGNhc2UgTk9UQVRJT05fTk9ERToKQEAgLTExOTUsOCArMTE5NSw4
IEBAIFN0cmluZyBOb2RlOjpsb29rdXBQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nICZuYW1lc3Bh
Y2VVUkkpIGNvbnN0CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAgICAgICAgICAgcmV0
dXJuIGxvb2t1cE5hbWVzcGFjZVByZWZpeChuYW1lc3BhY2VVUkksIHN0YXRpY19jYXN0PGNvbnN0
IEVsZW1lbnQgKj4odGhpcykpOwogICAgICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgICAg
ICAgICBpZiAoRWxlbWVudCogZGUgPSB0b0RvY3VtZW50KHRoaXMpLT5kb2N1bWVudEVsZW1lbnQo
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZGUtPmxvb2t1cFByZWZpeChuYW1lc3BhY2VVUkkp
OworICAgICAgICAgICAgaWYgKEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGRvd25jYXN0PERv
Y3VtZW50PigqdGhpcykuZG9jdW1lbnRFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGRvY3VtZW50RWxlbWVudC0+bG9va3VwUHJlZml4KG5hbWVzcGFjZVVSSSk7CiAgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIGNhc2UgRU5USVRZX05PREU6CiAgICAgICAgIGNh
c2UgTk9UQVRJT05fTk9ERToKQEAgLTEyNTMsOCArMTI1Myw4IEBAIFN0cmluZyBOb2RlOjpsb29r
dXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nICZwcmVmaXgpIGNvbnN0CiAgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBET0NVTUVOVF9OT0RFOgot
ICAgICAgICAgICAgaWYgKEVsZW1lbnQqIGRlID0gdG9Eb2N1bWVudCh0aGlzKS0+ZG9jdW1lbnRF
bGVtZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRlLT5sb29rdXBOYW1lc3BhY2VVUkko
cHJlZml4KTsKKyAgICAgICAgICAgIGlmIChFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBkb3du
Y2FzdDxEb2N1bWVudD4oKnRoaXMpLmRvY3VtZW50RWxlbWVudCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBkb2N1bWVudEVsZW1lbnQtPmxvb2t1cE5hbWVzcGFjZVVSSShwcmVmaXgpOwogICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICBjYXNlIEVOVElUWV9OT0RFOgogICAg
ICAgICBjYXNlIE5PVEFUSU9OX05PREU6CkBAIC0yMTk4LDggKzIxOTgsOCBAQCB2b2lkIE5vZGU6
OnJlbW92ZWRMYXN0UmVmKCkKICAgICAvLyBBbiBleHBsaWNpdCBjaGVjayBmb3IgRG9jdW1lbnQg
aGVyZSBpcyBiZXR0ZXIgdGhhbiBhIHZpcnR1YWwgZnVuY3Rpb24gc2luY2UgaXQgaXMKICAgICAv
LyBmYXN0ZXIgZm9yIG5vbi1Eb2N1bWVudCBub2RlcywgYW5kIGJlY2F1c2UgdGhlIGNhbGwgdG8g
cmVtb3ZlZExhc3RSZWYgdGhhdCBpcyBpbmxpbmVkCiAgICAgLy8gYXQgYWxsIGRlcmVmIGNhbGwg
c2l0ZXMgaXMgc21hbGxlciBpZiBpdCdzIGEgbm9uLXZpcnR1YWwgZnVuY3Rpb24uCi0gICAgaWYg
KGlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAgdG9Eb2N1bWVudCgqdGhpcykucmVtb3ZlZExh
c3RSZWYoKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KCp0aGlzKSkgeworICAgICAgICBkb3duY2Fz
dDxEb2N1bWVudD4oKnRoaXMpLnJlbW92ZWRMYXN0UmVmKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDI5MmZhNWFiYTJjNjBhOTlmZDExYzcwMGNhOTM4
MDYzNTAwNjU3ZjQuLjg4YjliNjEwODgyODBjNzkzMTBmMTgwYjQ5NWJlZGZjMWFkOWY5NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IFJh
bmdlOjpjcmVhdGUoRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQsIGNvbnN0IFBvc2l0aW9uJiBzdGFy
dCwKIAogUGFzc1JlZlB0cjxSYW5nZT4gUmFuZ2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmFuZ2UodG9Eb2N1bWVu
dChjb250ZXh0KSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmFuZ2UoZG93bmNhc3Q8RG9j
dW1lbnQ+KGNvbnRleHQpKSk7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IFJhbmdlOjpjcmVhdGUo
RG9jdW1lbnQmIG93bmVyRG9jdW1lbnQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVN0
YXJ0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVFbmQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggNWY0MDVhZjQ2ZGQ0YzljYjRm
OTU4MjBlZmEyNWUyMmYxYzZlYTdhNi4uNTBhODRjNzc5NDgxYjk4ZTdiN2ZhMTNjNmFhYmVlYWNi
OWRiZjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcApAQCAtMzc4LDggKzM3OCw4IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlz
cGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmICh0YXJnZXQgPT0gdGFy
Z2V0LT50b0RPTVdpbmRvdygpICYmIGlzRG9jdW1lbnQoKSkgewotICAgICAgICBTZXR0aW5ncyog
c2V0dGluZ3MgPSB0b0RvY3VtZW50KHRoaXMpLT5zZXR0aW5ncygpOworICAgIGlmICh0YXJnZXQg
PT0gdGFyZ2V0LT50b0RPTVdpbmRvdygpICYmIGlzPERvY3VtZW50PigqdGhpcykpIHsKKyAgICAg
ICAgU2V0dGluZ3MqIHNldHRpbmdzID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKS5zZXR0aW5n
cygpOwogICAgICAgICBpZiAoc2V0dGluZ3MgJiYgIXNldHRpbmdzLT5zaG91bGREaXNwYXRjaEph
dmFTY3JpcHRXaW5kb3dPbkVycm9yRXZlbnRzKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDc5YTQ1ZGZjZDE0MTQzZWFlMTNjMDBiNjI3MjE0
MjRlYzRjMTllZmQuLjdkMjg5YjBhMDk5MGI3Mzc4MGNkMjE4NmNkNjM3OTNiMThjYTU4YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUGFzc1JlZlB0cjxUZXh0PiBUZXh0Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiAKIFBhc3NSZWZQ
dHI8VGV4dD4gVGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgZGF0YSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHQodG9Eb2N1
bWVudChjb250ZXh0KSwgZGF0YSwgQ3JlYXRlVGV4dCkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGV4dChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGRhdGEsIENyZWF0ZVRleHQpKTsK
IH0KIAogUGFzc1JlZlB0cjxUZXh0PiBUZXh0OjpjcmVhdGVFZGl0aW5nVGV4dChEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9N
YXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggZGJlOTY4ODk4Mjk5YmYyMjdiNGQwODAzYTZkMjQw
MGQxMGE5MDhkOS4uNzNlMTliYWZkN2Q1MjcyYTZiMDM3ZmIwZmE4ZjY1ZDY3ZmNhYWU3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTU1OSw3
ICs1NTksNyBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydE1hcmt1cChTdHJp
bmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IE5vZGUmIG5vZAogICAgICAgICBhcHBlbmRDb21tZW50
KHJlc3VsdCwgZG93bmNhc3Q8Q29tbWVudD4obm9kZSkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgotICAgICAgICBhcHBlbmRYTUxEZWNsYXJh
dGlvbihyZXN1bHQsIHRvRG9jdW1lbnQobm9kZSkpOworICAgICAgICBhcHBlbmRYTUxEZWNsYXJh
dGlvbihyZXN1bHQsIGRvd25jYXN0PERvY3VtZW50Pihub2RlKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAppbmRleCBlNWEwOWU5MzRkY2MyNGI1NjcyMjY0MTgz
MDI3NDJjNDZmMTVhNGE5Li4wYTliNWEyYmYwZDViMWM1ODBhNGUzOWRiM2FhN2UwYmY4MGZiYTFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0
ZToKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihIVE1MRG9jdW1lbnQpCiAgICAgc3Rh
dGljIGJvb2wgaXNIVE1MRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVy
biBkb2N1bWVudC5pc0hUTUxEb2N1bWVudCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNIVE1MRG9j
dW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gbm9kZS5pc0RvY3VtZW50Tm9kZSgpICYm
IGlzSFRNTERvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNI
VE1MRG9jdW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8RG9jdW1lbnQ+KG5vZGUp
ICYmIGlzSFRNTERvY3VtZW50KGRvd25jYXN0PERvY3VtZW50Pihub2RlKSk7IH0KIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRU5EKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmgKaW5kZXggODAxMDBmNjFhYzkzOGIwNjQ5YjA4
M2Q3NDFkNDlmNDc3MDlkNDNlZi4uMDkxNGM1NDNjYjI4ZmFiNGU2ZGI1NTVjNDQ0NTc4OWZkMDk4
OTAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIEhUTUxOYW1lQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlv
biB7CiBwdWJsaWM6CiAgICAgfkhUTUxOYW1lQ29sbGVjdGlvbigpOwogCi0gICAgRG9jdW1lbnQm
IGRvY3VtZW50KCkgeyByZXR1cm4gdG9Eb2N1bWVudChvd25lck5vZGUoKSk7IH0KKyAgICBEb2N1
bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4ob3duZXJOb2RlKCkp
OyB9CiAKIHByb3RlY3RlZDoKICAgICBIVE1MTmFtZUNvbGxlY3Rpb24oRG9jdW1lbnQmLCBDb2xs
ZWN0aW9uVHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmgKaW5kZXggYzlhMjk3NjIyYjBlMzgxYjQwM2Y4NTBjMGUzOTI2NGNiMjUxM2Fl
MS4uNzgxZDAyY2EzNjNkOGZmYTQ1ZGRmMjc4N2Y3YTU4NTFhMjNjOTk0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZURvY3VtZW50LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKIAogU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihJbWFnZURvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlz
SW1hZ2VEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGRvY3VtZW50
LmlzSW1hZ2VEb2N1bWVudCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNJbWFnZURvY3VtZW50KGNv
bnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc0ltYWdl
RG9jdW1lbnQodG9Eb2N1bWVudChub2RlKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0ltYWdlRG9j
dW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGlz
SW1hZ2VEb2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0VORCgpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmgKaW5kZXgg
N2JlOWU2MTliMzk5NGQ1NTBlMzE1ODM5Yzg3ZjZiZjAxNzk3YWE3Mi4uYWI1ZWQwODFhNmE0MzE4
NGQ4NzlkZTA3ZGJhNjAyMDBkY2NjNGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50
LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19C
RUdJTihNZWRpYURvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzTWVkaWFEb2N1bWVudChjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGRvY3VtZW50LmlzTWVkaWFEb2N1bWVudCgp
OyB9Ci0gICAgc3RhdGljIGJvb2wgaXNNZWRpYURvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsg
cmV0dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc01lZGlhRG9jdW1lbnQodG9Eb2N1bWVu
dChub2RlKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc01lZGlhRG9jdW1lbnQoY29uc3QgTm9kZSYg
bm9kZSkgeyByZXR1cm4gaXM8RG9jdW1lbnQ+KG5vZGUpICYmIGlzTWVkaWFEb2N1bWVudChkb3du
Y2FzdDxEb2N1bWVudD4obm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAppbmRleCAwMTJmYjk3MGQ1NjkyMmQw
OTY5YWQ1Y2I2ODY4NTYyMjFlNmYxOTJlLi4xODgzNGQ2OGUwYTM1YTVlM2YxNjYwMDhhYmZiZmMx
YWEyY2E3YjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCkBAIC02Myw3ICs2
Myw3IEBAIHByaXZhdGU6CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oUGx1Z2luRG9j
dW1lbnQpCiAgICAgc3RhdGljIGJvb2wgaXNQbHVnaW5Eb2N1bWVudChjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQpIHsgcmV0dXJuIGRvY3VtZW50LmlzUGx1Z2luRG9jdW1lbnQoKTsgfQotICAgIHN0
YXRpYyBib29sIGlzUGx1Z2luRG9jdW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gbm9k
ZS5pc0RvY3VtZW50Tm9kZSgpICYmIGlzUGx1Z2luRG9jdW1lbnQodG9Eb2N1bWVudChub2RlKSk7
IH0KKyAgICBzdGF0aWMgYm9vbCBpc1BsdWdpbkRvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsg
cmV0dXJuIGlzPERvY3VtZW50Pihub2RlKSAmJiBpc1BsdWdpbkRvY3VtZW50KGRvd25jYXN0PERv
Y3VtZW50Pihub2RlKSk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggZjBlZTY2Yjg2ZTNkZDdj
MTE2NWIwOWFlYTljMDY5MGFkNDgxNmFiNC4uOTUxZmU4YzdiNTFjMzRiZmFkNWI2ZDY4NjRjZWJl
NDM0NGE1YTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCkBA
IC0xMjAsNyArMTIwLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFRleHRUcmFja0N1ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQpOwogCi0gICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQoKSB7IHJldHVybiB0
b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7IH0KKyAgICBEb2N1bWVudCYgb3du
ZXJEb2N1bWVudCgpIHsgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOyB9CiAKIHByaXZhdGU6CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cAppbmRleCBhYjE5ODhmMTg4Mjg1YzAzYjVmNzIwYTBmMTkyMzg3NmU4ZWM4YjhiLi41OWNmNmU5
NTM1ZTQxODNhZTNkYTQwNjdjMzc3Yzk4NjkxNmM2M2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRDdWUuY3BwCkBAIC0yODgsOCArMjg4LDggQEAgdm9pZCBWVFRDdWU6OmluaXRpYWxpemUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICBtX3dyaXRpbmdEaXJlY3Rpb24g
PSBIb3Jpem9udGFsOwogICAgIG1fY3VlQWxpZ25tZW50ID0gTWlkZGxlOwogICAgIG1fd2ViVlRU
Tm9kZVRyZWUgPSBudWxscHRyOwotICAgIG1fY3VlQmFja2Ryb3BCb3ggPSBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKHRvRG9jdW1lbnQoY29udGV4dCkpOwotICAgIG1fY3VlSGlnaGxpZ2h0Qm94ID0g
SFRNTFNwYW5FbGVtZW50OjpjcmVhdGUoc3BhblRhZywgdG9Eb2N1bWVudChjb250ZXh0KSk7Cisg
ICAgbV9jdWVCYWNrZHJvcEJveCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG93bmNhc3Q8RG9j
dW1lbnQ+KGNvbnRleHQpKTsKKyAgICBtX2N1ZUhpZ2hsaWdodEJveCA9IEhUTUxTcGFuRWxlbWVu
dDo6Y3JlYXRlKHNwYW5UYWcsIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CiAgICAgbV9k
aXNwbGF5RGlyZWN0aW9uID0gQ1NTVmFsdWVMdHI7CiAgICAgbV9kaXNwbGF5U2l6ZSA9IDA7CiAg
ICAgbV9zbmFwVG9MaW5lcyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
aAppbmRleCA0MDI4MWE1NGI3ZjRiMTFkNzI1YTViMDVlOTdmMGFhMzU1YmRjMmM3Li5kYjk2NWFi
Zjk1MTM0ZmI4ZDI3ZmRiYTMzNmIxMmZlYTlhYzEzN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uLmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBW
VFRSZWdpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCi0gICAgRG9jdW1lbnQqIG93bmVy
RG9jdW1lbnQoKSB7IHJldHVybiB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
IH0KKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCgpIHsgcmV0dXJuIGRvd25jYXN0PERvY3Vt
ZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOyB9CiAKICAgICB2b2lkIHByZXBhcmVSZWdp
b25EaXNwbGF5VHJlZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAppbmRleCBiYzM3NDRkNWU4MGUyYzQ3ZWVhODI3YzllYTlmODFmNjM4MjNj
MDQ2Li5jZjJmNzQ1Mzk2YzJhOGZhZGNmOWM3NDRmM2RiOWEzNTUxY2ZjOWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTM3OSwxMSAr
Mzc5LDExIEBAIERvY3VtZW50KiBJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RG9jdW1lbnQoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkCiAgICAgTm9kZSogbm9kZSA9IGFzc2Vy
dE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBpZiAoIW5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKKyAgICBpZiAo
IWlzPERvY3VtZW50Pihub2RlKSkgewogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRG9jdW1lbnQg
aXMgbm90IGF2YWlsYWJsZSI7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBy
ZXR1cm4gdG9Eb2N1bWVudChub2RlKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG5v
ZGUpOwogfQogCiBFbGVtZW50KiBJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWxlbWVudChFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQpCkBAIC0xMzAxLDExICsxMzAxLDExIEBA
IFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRPYmplY3RGb3JOb2RlCiAgICAgICAgICAgICB2YWx1ZS0+c2V0VGVtcGxhdGVD
b250ZW50KGJ1aWxkT2JqZWN0Rm9yTm9kZShkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Pigq
ZWxlbWVudCkuY29udGVudCgpLCAwLCBub2Rlc01hcCkpOwogI2VuZGlmCiAKLSAgICB9IGVsc2Ug
aWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gdG9Eb2N1bWVudChub2RlKTsKLSAgICAgICAgdmFsdWUtPnNldERvY3VtZW50VVJMKGRvY3Vt
ZW50VVJMU3RyaW5nKGRvY3VtZW50KSk7Ci0gICAgICAgIHZhbHVlLT5zZXRCYXNlVVJMKGRvY3Vt
ZW50QmFzZVVSTFN0cmluZyhkb2N1bWVudCkpOwotICAgICAgICB2YWx1ZS0+c2V0WG1sVmVyc2lv
bihkb2N1bWVudC0+eG1sVmVyc2lvbigpKTsKKyAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50Pihu
b2RlKSkgeworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
Km5vZGUpOworICAgICAgICB2YWx1ZS0+c2V0RG9jdW1lbnRVUkwoZG9jdW1lbnRVUkxTdHJpbmco
JmRvY3VtZW50KSk7CisgICAgICAgIHZhbHVlLT5zZXRCYXNlVVJMKGRvY3VtZW50QmFzZVVSTFN0
cmluZygmZG9jdW1lbnQpKTsKKyAgICAgICAgdmFsdWUtPnNldFhtbFZlcnNpb24oZG9jdW1lbnQu
eG1sVmVyc2lvbigpKTsKICAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50VHlwZT4obm9kZSkpIHsK
ICAgICAgICAgRG9jdW1lbnRUeXBlJiBkb2NUeXBlID0gZG93bmNhc3Q8RG9jdW1lbnRUeXBlPigq
bm9kZSk7CiAgICAgICAgIHZhbHVlLT5zZXRQdWJsaWNJZChkb2NUeXBlLnB1YmxpY0lkKCkpOwpA
QCAtMTcyOCwxMCArMTcyOCw4IEBAIHVuc2lnbmVkIEluc3BlY3RvckRPTUFnZW50Ojppbm5lckNo
aWxkTm9kZUNvdW50KE5vZGUqIG5vZGUpCiAKIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojppbm5l
clBhcmVudE5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAobm9kZS0+aXNEb2N1bWVudE5vZGUo
KSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0RvY3VtZW50KG5vZGUpOwotICAg
ICAgICByZXR1cm4gZG9jdW1lbnQtPm93bmVyRWxlbWVudCgpOwotICAgIH0KKyAgICBpZiAoaXM8
RG9jdW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2Rl
KS5vd25lckVsZW1lbnQoKTsKICAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9kZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCmluZGV4IDdiNjViMGJlOGRiNzA3MWEzODA5NzRiMDRiODA0Y2Y2MzZiOGNmMjQuLmVm
MDA4ZDNhMjZmZWQ3NjkyNWMzODU0MWRkMzJjNjM2NjVmMzVjODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0x
MDAsOCArMTAwLDggQEAgaW50IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c19mcm9udGVuZENv
dW50ZXIgPSAwOwogc3RhdGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBu
dWxscHRyOwotICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpCi0gICAgICAgIGZyYW1lID0g
dG9Eb2N1bWVudChjb250ZXh0KS0+ZnJhbWUoKTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRl
eHQpKQorICAgICAgICBmcmFtZSA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS0+ZnJhbWUo
KTsKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBkMGE1YmJiNjhmMWViY2FhNzA0
ZGUwYzk4OThiODczNDA4ODhlOGVmLi5iOWUwY2U1ZjA4MTk4M2U1NjdlZTFiODZiZjEwYmNkODEz
YzEwY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCkBAIC0yMDYyLDggKzIwNjIsOCBAQCBpbmxpbmUgSW5zdHJ1bWVudGlu
Z0FnZW50cyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9y
Q29udAogewogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
aWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdB
Z2VudHNGb3JQYWdlKHRvRG9jdW1lbnQoY29udGV4dCktPnBhZ2UoKSk7CisgICAgaWYgKGlzPERv
Y3VtZW50Pihjb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHNGb3JQ
YWdlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS0+cGFnZSgpKTsKICAgICByZXR1cm4gaW5z
dHJ1bWVudGluZ0FnZW50c0Zvck5vbkRvY3VtZW50Q29udGV4dChjb250ZXh0KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCA0YjBmNjUxZjJkNzAx
ZDBlNTFiNmI3ZDdlZWFlYjliZDRkM2VhNDBjLi4zNTNjZWYyNzM0MmNlZDhmZTFkN2IyZTU4NjNi
NWY0NWM5MmRhNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNw
cApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpkZXByZWNhdGVkRGlk
UmVjZWl2ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiByZXNvdXJjCiB2b2lkIFRleHRU
cmFja0xvYWRlcjo6Y29yc1BvbGljeVByZXZlbnRlZExvYWQoKQogewogICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFs
KCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFjayBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVz
b3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0Rv
Y3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgZG9j
dW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBjb25zb2xlTWVzc2FnZSk7CiAgICAgbV9zdGF0ZSA9IEZhaWxlZDsKIH0K
QEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6bm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIEFTU0VSVChtX3Jlc291cmNlID09IHJl
c291cmNlKTsKIAotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1
bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoIW1fY3Jvc3NPcmlnaW5N
b2RlLmlzTnVsbCgpCiAgICAgICAgICYmICFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2Fu
UmVxdWVzdChyZXNvdXJjZS0+cmVzcG9uc2UoKS51cmwoKSkKICAgICAgICAgJiYgIXJlc291cmNl
LT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpKSB7
CkBAIC0xNTUsOCArMTU1LDggQEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlKQogewogICAgIGNhbmNlbExvYWQo
KTsKIAotICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7
Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOworICAgIEFTU0VSVChpczxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KSk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKSk7CiAKICAgICBpZiAo
IWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXIuY3BwCmluZGV4IDQxYTdjMWE1ODk4NjIxNjViZWQ0MzAwMDFkYTgzZGY1NWY5
YzljOGUuLjJlOGMyYmZmN2FjMGMwM2ZjYTUwZTc2NDgxMzBjYTI0ZjBiOGNlYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAg
UGFzc1JlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY28KICAgICBpZiAoY29udGV4dC0+aXNXb3JrZXJHbG9iYWxT
Y29wZSgpKQogICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHRv
V29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCksIGNsaWVudCwgV29ya2VyUnVuTG9vcDo6ZGVmYXVs
dE1vZGUoKSwgcmVxdWVzdCwgb3B0aW9ucyk7CiAKLSAgICByZXR1cm4gRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUodG9Eb2N1bWVudCgqY29udGV4dCksICpjbGllbnQsIHJlcXVlc3Qs
IG9wdGlvbnMpOworICAgIHJldHVybiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShk
b3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpLCAqY2xpZW50LCByZXF1ZXN0LCBvcHRpb25zKTsK
IH0KIAogdm9pZCBUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBjb25zdCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyYgb3B0aW9ucykKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBUaHJlYWRhYmxlTG9h
ZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIERvY3VtZW50VGhyZWFkYWJsZUxv
YWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSgqdG9Eb2N1bWVudChjb250ZXh0KSwgcmVx
dWVzdCwgY2xpZW50LCBvcHRpb25zKTsKKyAgICBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoKmRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgcmVx
dWVzdCwgY2xpZW50LCBvcHRpb25zKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4
IDYxMTBlYzM4N2MwMDFjNjA1ZmE5NDRmYjE3NDYwMmY1ZmIyYWZkYjIuLjg1Nzk1YThkYTMzZDFj
ZDhiMjViYTNjMzFkZmJjZmY4NDIzZTNiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTEwMSwxNCArMTAxLDE0IEBAIFdvcmtl
clRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6On5NYWluVGhyZWFkQnJpZGdlKCkK
IHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6bWFpblRocmVh
ZENyZWF0ZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNYWluVGhyZWFk
QnJpZGdlKiB0aGlzUHRyLCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0
YT4gcmVxdWVzdERhdGEsIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IFN0
cmluZyYgb3V0Z29pbmdSZWZlcnJlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoJmNvbnRleHQpOworICAgIERvY3Vt
ZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKIAogICAgIE93blB0
cjxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0OjphZG9wdChyZXF1ZXN0
RGF0YSkpOwogICAgIHJlcXVlc3QtPnNldEhUVFBSZWZlcnJlcihvdXRnb2luZ1JlZmVycmVyKTsK
ICAgICAvLyBGSVhNRTogSWYgdGhlIGEgc2l0ZSByZXF1ZXN0cyBhIGxvY2FsIHJlc291cmNlLCB0
aGVuIHRoaXMgd2lsbCByZXR1cm4gYSBub24temVybyB2YWx1ZSBidXQgdGhlIHN5bmMgcGF0aAog
ICAgIC8vIHdpbGwgcmV0dXJuIGEgMCB2YWx1ZS4gIEVpdGhlciB0aGlzIHNob3VsZCByZXR1cm4g
MCBvciB0aGUgb3RoZXIgY29kZSBwYXRoIHNob3VsZCBkbyBhIGNhbGxiYWNrIHdpdGgKICAgICAv
LyBhIGZhaWx1cmUuCi0gICAgdGhpc1B0ci0+bV9tYWluVGhyZWFkTG9hZGVyID0gRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoKmRvY3VtZW50LCAqdGhpc1B0ciwgKnJlcXVlc3QsIG9w
dGlvbnMpOworICAgIHRoaXNQdHItPm1fbWFpblRocmVhZExvYWRlciA9IERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpc1B0ciwgKnJlcXVlc3QsIG9wdGlvbnMp
OwogICAgIEFTU0VSVCh0aGlzUHRyLT5tX21haW5UaHJlYWRMb2FkZXIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggZjljNWM5ODAx
MTk0NmM4Njk0NWMzYjU5NDFhNjk3MTY3OTZlODk5NC4uNDRhZmYxNmVmOTM3MTc5NDAzNTI2Nzcz
ZTkwNjA2ZTY5MWIwOTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcApAQCAtMTU3NywyMCArMTU3NywyMCBAQCB2b2lkIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6ZW5mb3JjZVNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgbWFzaykgY29uc3QKICAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmVuZm9yY2VTYW5kYm94RmxhZ3MobWFzayk7CiB9
CiAKLXN0YXRpYyBTdHJpbmcgc3RyaXBVUkxGb3JVc2VJblJlcG9ydChEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IFVSTCYgdXJsKQorc3RhdGljIFN0cmluZyBzdHJpcFVSTEZvclVzZUluUmVwb3J0
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgaWYgKCF1cmwuaXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgaWYgKCF1cmwuaXNIaWVyYXJj
aGljYWwoKSB8fCB1cmwucHJvdG9jb2xJcygiZmlsZSIpKQogICAgICAgICByZXR1cm4gdXJsLnBy
b3RvY29sKCk7Ci0gICAgcmV0dXJuIGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1
ZXN0KHVybCkgPyB1cmwuc3RyaXBwZWRGb3JVc2VBc1JlZmVycmVyKCkgOiBTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKHVybCktPnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LnNlY3VyaXR5
T3JpZ2luKCktPmNhblJlcXVlc3QodXJsKSA/IHVybC5zdHJpcHBlZEZvclVzZUFzUmVmZXJyZXIo
KSA6IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKS0+dG9TdHJpbmcoKTsKIH0KIAogI2lmIEVO
QUJMRShDU1BfTkVYVCkKLXN0YXRpYyB2b2lkIGdhdGhlclNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREYXRhKFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiBpbml0LCBEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgU3RyaW5nJiBl
ZmZlY3RpdmVEaXJlY3RpdmUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCwgY29uc3QgU3RyaW5nJiBo
ZWFkZXIpCitzdGF0aWMgdm9pZCBnYXRoZXJTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGF0
YShTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYgaW5pdCwgRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFN0cmluZyYgZWZmZWN0aXZl
RGlyZWN0aXZlLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwsIGNvbnN0IFN0cmluZyYgaGVhZGVyKQog
ewotICAgIGluaXQuZG9jdW1lbnRVUkkgPSBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCk7Ci0gICAg
aW5pdC5yZWZlcnJlciA9IGRvY3VtZW50LT5yZWZlcnJlcigpOworICAgIGluaXQuZG9jdW1lbnRV
UkkgPSBkb2N1bWVudC51cmwoKS5zdHJpbmcoKTsKKyAgICBpbml0LnJlZmVycmVyID0gZG9jdW1l
bnQucmVmZXJyZXIoKTsKICAgICBpbml0LmJsb2NrZWRVUkkgPSBzdHJpcFVSTEZvclVzZUluUmVw
b3J0KGRvY3VtZW50LCBibG9ja2VkVVJMKTsKICAgICBpbml0LnZpb2xhdGVkRGlyZWN0aXZlID0g
ZGlyZWN0aXZlVGV4dDsKICAgICBpbml0LmVmZmVjdGl2ZURpcmVjdGl2ZSA9IGVmZmVjdGl2ZURp
cmVjdGl2ZTsKQEAgLTE2MTMsMTEgKzE2MTMsMTEgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFMK
ICAgICBsb2dUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5l
LCBzdGF0ZSk7CiAKICAgICAvLyBGSVhNRTogU3VwcG9ydCBzZW5kaW5nIHJlcG9ydHMgZnJvbSB3
b3JrZXIuCi0gICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkK
KyAgICBpZiAoIWlzPERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgp
OworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwog
ICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTYyNiw3ICsxNjI2LDcgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcm
IGRpcmVjdGl2ZVRleHQsIGNvbnN0IFMKICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBtZWFu
cyB0aGF0IHdlJ3JlIGdhdGhlcmluZyBpbmZvcm1hdGlvbiBsaWtlIGxpbmUgbnVtYmVycyB0d2lj
ZS4gT25jZSB3ZSBjYW4gYnJpbmcgdGhpcyBvdXQgZnJvbSBiZWhpbmQgdGhlIGZsYWcsIHdlIHNo
b3VsZCByZXVzZSB0aGUgZGF0YSBnYXRoZXJlZCBoZXJlIHdoZW4gZ2VuZXJhdGluZyB0aGUgSlNP
TiByZXBvcnQgYmVsb3cuCiAgICAgICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0
IGluaXQ7CiAgICAgICAgIGdhdGhlclNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREYXRhKGlu
aXQsIGRvY3VtZW50LCBkaXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVEaXJlY3RpdmUsIGJsb2NrZWRV
UkwsIGhlYWRlcik7Ci0gICAgICAgIGRvY3VtZW50LT5lbnF1ZXVlRG9jdW1lbnRFdmVudChTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNlY3VyaXR5cG9s
aWN5dmlvbGF0aW9uRXZlbnQsIGluaXQpKTsKKyAgICAgICAgZG9jdW1lbnQuZW5xdWV1ZURvY3Vt
ZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBpbml0KSk7CiAgICAgfQogI2VuZGlmCiAK
QEAgLTE2NDQsOCArMTY0NCw4IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAgICAgLy8gaGFy
bWxlc3MgaW5mb3JtYXRpb24uCiAKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjc3BSZXBv
cnQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5n
KEFTQ0lJTGl0ZXJhbCgiZG9jdW1lbnQtdXJpIiksIGRvY3VtZW50LT51cmwoKS5zdHJpcHBlZEZv
clVzZUFzUmVmZXJyZXIoKSk7Ci0gICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFs
KCJyZWZlcnJlciIpLCBkb2N1bWVudC0+cmVmZXJyZXIoKSk7CisgICAgY3NwUmVwb3J0LT5zZXRT
dHJpbmcoQVNDSUlMaXRlcmFsKCJkb2N1bWVudC11cmkiKSwgZG9jdW1lbnQudXJsKCkuc3RyaXBw
ZWRGb3JVc2VBc1JlZmVycmVyKCkpOworICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0
ZXJhbCgicmVmZXJyZXIiKSwgZG9jdW1lbnQucmVmZXJyZXIoKSk7CiAgICAgY3NwUmVwb3J0LT5z
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ2aW9sYXRlZC1kaXJlY3RpdmUiKSwgZGlyZWN0aXZlVGV4
dCk7CiAjaWYgRU5BQkxFKENTUF9ORVhUKQogICAgIGlmIChleHBlcmltZW50YWxGZWF0dXJlc0Vu
YWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAppbmRleCAzMzU4NzMwNTFhYjg1MTJmZTFiZTNl
NjJlMDkxMzBkYzdjM2IxZWE3Li44Y2MwYWY3NmIwOTY3Mzc5MDkxMmQyNmEzNjk1NjQzYTY5ZjI4
YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCkBAIC01OSw3ICs1OSw3IEBAIENyeXB0bzo6fkNy
eXB0bygpCiAKIERvY3VtZW50KiBDcnlwdG86OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogdm9pZCBDcnlw
dG86OmdldFJhbmRvbVZhbHVlcyhBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCBFeGNlcHRpb25Db2Rl
JiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggYjdlMThhMGM1MmQ3ODEzNzk3OGRj
OGVhMzhjYzYyNjdiMGI0MmEyZC4uYWVjOTAxODU2YzlhZGE2NmE1OGIwZDRkZjI5Y2MwODcxOTU0
YTNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTEyMCw4ICsxMjAsOCBAQCBpbnQg
RE9NVGltZXI6Omluc3RhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjp1
bmlxdWVfcHRyPFNjaGVkdWxlZAogICAgIC8vIGlzIGRlc3Ryb3llZCwgb3IgaWYgZXhwbGljaXRs
eSBjYW5jZWxsZWQgYnkgcmVtb3ZlQnlJZC4gCiAgICAgRE9NVGltZXIqIHRpbWVyID0gbmV3IERP
TVRpbWVyKGNvbnRleHQsIFdURjo6bW92ZShhY3Rpb24pLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsK
ICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAg
ICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSB0b0RvY3VtZW50KCpjb250ZXh0KTsKKyAgICBpZiAo
aXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRv
d25jYXN0PERvY3VtZW50PigqY29udGV4dCk7CiAgICAgICAgIGJvb2wgZGlkRGVmZXJUaW1lb3V0
ID0gZG9jdW1lbnQuZnJhbWUoKSAmJiBkb2N1bWVudC5mcmFtZSgpLT50aW1lcnNQYXVzZWQoKTsK
ICAgICAgICAgaWYgKCFkaWREZWZlclRpbWVvdXQgJiYgdGltZW91dCA8PSAxMDAgJiYgc2luZ2xl
U2hvdCkgewogICAgICAgICAgICAgV0tTZXRPYnNlcnZlZENvbnRlbnRDaGFuZ2UoV0tDb250ZW50
SW5kZXRlcm1pbmF0ZUNoYW5nZSk7CkBAIC0xNzMsOCArMTczLDggQEAgdm9pZCBET01UaW1lcjo6
ZmlyZWQoKQogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG51
bGxwdHI7Ci0gICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewotICAgICAgICBkb2N1bWVu
dCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkg
eworICAgICAgICBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAgICAg
ICAgQVNTRVJUKCFkb2N1bWVudC0+ZnJhbWUoKS0+dGltZXJzUGF1c2VkKCkpOwogICAgIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDJiMmYyMDQyNGNhYjg0YzkxMTE2
MDIxODA5NmRlNmNjMzY4NDg3OWIuLjQxOTYzZjFlN2M4NWU2ZWFjY2JlZTA0Y2Y4Njc5ZDhhMzYz
ZTgzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTk3Myw4ICs5NzMsOCBAQCB2
b2lkIERPTVdpbmRvdzo6Zm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAg
ICBib29sIGFsbG93Rm9jdXMgPSBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3I6OndpbmRvd0Zv
Y3VzQWxsb3dlZCgpIHx8ICFtX2ZyYW1lLT5zZXR0aW5ncygpLndpbmRvd0ZvY3VzUmVzdHJpY3Rl
ZCgpOwogICAgIGlmIChjb250ZXh0KSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgICAgIERvY3VtZW50KiBhY3RpdmVEb2N1bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7
Ci0gICAgICAgIGlmIChvcGVuZXIoKSAmJiBvcGVuZXIoKSAhPSB0aGlzICYmIGFjdGl2ZURvY3Vt
ZW50LT5kb21XaW5kb3coKSA9PSBvcGVuZXIoKSkKKyAgICAgICAgRG9jdW1lbnQmIGFjdGl2ZURv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKKyAgICAgICAgaWYgKG9wZW5l
cigpICYmIG9wZW5lcigpICE9IHRoaXMgJiYgYWN0aXZlRG9jdW1lbnQuZG9tV2luZG93KCkgPT0g
b3BlbmVyKCkpCiAgICAgICAgICAgICBhbGxvd0ZvY3VzID0gdHJ1ZTsKICAgICB9CiAKQEAgLTEw
MjUsMTEgKzEwMjUsNyBAQCB2b2lkIERPTVdpbmRvdzo6Y2xvc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIAogICAgIGlmIChjb250ZXh0KSB7CiAgICAgICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgICAgIERvY3VtZW50KiBhY3RpdmVEb2N1bWVudCA9IHRvRG9jdW1l
bnQoY29udGV4dCk7Ci0gICAgICAgIGlmICghYWN0aXZlRG9jdW1lbnQpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKCFhY3RpdmVEb2N1bWVudC0+Y2FuTmF2aWdhdGUobV9mcmFt
ZSkpCisgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5jYW5OYXZpZ2F0
ZShtX2ZyYW1lKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0MTMsMjQgKzE0
MDksMjQgQEAgRE9NV2luZG93KiBET01XaW5kb3c6OnRvcCgpIGNvbnN0CiBEb2N1bWVudCogRE9N
V2luZG93Ojpkb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCA9IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7Ci0gICAgcmV0dXJuIHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKIH0KIAogUGFzc1JlZlB0cjxTdHlsZU1lZGlhPiBET01X
aW5kb3c6OnN0eWxlTWVkaWEoKSBjb25zdAogewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5
ZWRJbkZyYW1lKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBpZiAoIW1fbWVkaWEpCiAgICAgICAgIG1fbWVkaWEgPSBTdHlsZU1lZGlhOjpjcmVhdGUo
bV9mcmFtZSk7CiAgICAgcmV0dXJuIG1fbWVkaWEuZ2V0KCk7CiB9CiAKLVBhc3NSZWZQdHI8Q1NT
U3R5bGVEZWNsYXJhdGlvbj4gRE9NV2luZG93OjpnZXRDb21wdXRlZFN0eWxlKEVsZW1lbnQqIGVs
dCwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbHQpIGNvbnN0CitQYXNzUmVmUHRyPENTU1N0eWxlRGVj
bGFyYXRpb24+IERPTVdpbmRvdzo6Z2V0Q29tcHV0ZWRTdHlsZShFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIHBzZXVkb0VsdCkgY29uc3QKIHsKLSAgICBpZiAoIWVsdCkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIHJldHVybiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShlbHQsIGZhbHNl
LCBwc2V1ZG9FbHQpOworICAgIHJldHVybiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNy
ZWF0ZShlbGVtZW50LCBmYWxzZSwgcHNldWRvRWx0KTsKIH0KIAogUGFzc1JlZlB0cjxDU1NSdWxl
TGlzdD4gRE9NV2luZG93OjpnZXRNYXRjaGVkQ1NTUnVsZXMoRWxlbWVudCogZWxlbWVudCwgY29u
c3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50LCBib29sIGF1dGhvck9ubHkpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGRkM2Y2NWFkYzcwY2RmODFmNzVlOWJh
YzRjMzU1OGI4MjZlNGQ1ZmIuLjYxNmQxMzEzNWViM2RmYmNlZGJlNzhhMzljM2JmNDVlM2JjMTc1
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xOTIsMTAgKzE5
MiwxMCBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKERyYWdEYXRhJiBkcmFnRGF0
YSkKICAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdB
bmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIuZ2V0KCkpOwog
ICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0
eS4KICAgICB9Ci0gICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKTsKKyAgICBtb3VzZU1vdmVk
SW50b0RvY3VtZW50KG51bGxwdHIpOwogICAgIGlmIChtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1v
dXNlKQogICAgICAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlLT5zZXRDYW5SZWNlaXZl
RHJvcHBlZEZpbGVzKGZhbHNlKTsKLSAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlID0g
MDsKKyAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlID0gbnVsbHB0cjsKIH0KIAogRHJh
Z09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEmIGRyYWdEYXRh
KQpAQCAtMjU1LDcgKzI1NSw3IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdF
bnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhJiBkcmFnRGF0YSkKIAogICAgIG1fZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uID0gbV9jbGllbnQuYWN0aW9uTWFza0ZvckRyYWcoZHJhZ0RhdGEpOwogICAgIGlm
IChtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9PSBEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lKSB7
Ci0gICAgICAgIGNhbmNlbERyYWcoKTsgLy8gRklYTUU6IFdoeSBub3QgY2FsbCBtb3VzZU1vdmVk
SW50b0RvY3VtZW50KDApPworICAgICAgICBjYW5jZWxEcmFnKCk7IC8vIEZJWE1FOiBXaHkgbm90
IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudChudWxscHRyKT8KICAgICAgICAgcmV0dXJuIERy
YWdPcGVyYXRpb25Ob25lOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudFNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcApp
bmRleCAwNzJkZmFhZmViZjQ2ODdlNzFmYTY0MmEzMTViMTliYWZkZDBhYjQzLi4zMzZlMTUxYjY0
OGMxNTY1NGRhZGEwOTJmZDU1ZjAxOWNhNGE1OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291
cmNlLmNwcApAQCAtNzcsMjUgKzc3LDI1IEBAIFBhc3NSZWZQdHI8RXZlbnRTb3VyY2U+IEV2ZW50
U291cmNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uCiB7CiAg
ICAgaWYgKHVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgVVJMIGZ1
bGxVUkwgPSBjb250ZXh0LmNvbXBsZXRlVVJMKHVybCk7CiAgICAgaWYgKCFmdWxsVVJMLmlzVmFs
aWQoKSkgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBGSVhNRTogQ29udmVydCB0aGlz
IHRvIGNoZWNrIHRoZSBpc29sYXRlZCB3b3JsZCdzIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9u
Y2Ugd2Via2l0Lm9yZy9iLzEwNDUyMCBpcyBzb2x2ZWQuCiAgICAgYm9vbCBzaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBmYWxzZTsKLSAgICBpZiAoY29udGV4dC5p
c0RvY3VtZW50KCkpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gdG9Eb2N1bWVudChj
b250ZXh0KTsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIERvY3Vt
ZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAgICAgICAgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQuZnJhbWUo
KS0+c2NyaXB0KCkuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCk7
CiAgICAgfQogICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5ICYmICFjb250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0Nvbm5lY3RUb1Nv
dXJjZShmdWxsVVJMKSkgewogICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgdGhyb3dp
bmcgYW4gZXhjZXB0aW9uPwogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFJlZlB0cjxFdmVu
dFNvdXJjZT4gc291cmNlID0gYWRvcHRSZWYobmV3IEV2ZW50U291cmNlKGNvbnRleHQsIGZ1bGxV
UkwsIGV2ZW50U291cmNlSW5pdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCmluZGV4IGIxNzYzMTY3MTBhZTgxYjAwNzQ1ZDEwNWNmNzRmZWQ2ZmI5ZGYwZmEuLmMxNGQw
OTdkZTU4NjUxYzM0ZDQxMzQ5OTYyMGIwYjFjMjM4NGI1M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTg3Niw4ICs4NzYsOCBAQCBib29sIEZvY3VzQ29udHJv
bGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24s
IEtleWJvYQogICAgIEVsZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gZm9jdXNlZERvY3VtZW50LT5m
b2N1c2VkRWxlbWVudCgpOwogICAgIE5vZGUqIGNvbnRhaW5lciA9IGZvY3VzZWREb2N1bWVudDsK
IAotICAgIGlmIChjb250YWluZXItPmlzRG9jdW1lbnROb2RlKCkpCi0gICAgICAgIHRvRG9jdW1l
bnQoY29udGFpbmVyKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Cisg
ICAgaWYgKGlzPERvY3VtZW50Pihjb250YWluZXIpKQorICAgICAgICBkb3duY2FzdDxEb2N1bWVu
dD4oKmNvbnRhaW5lcikudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSBzdGFydGluZyByZWN0LgogICAgIExheW91dFJlY3Qgc3Rh
cnRpbmdSZWN0OwpAQCAtOTAwLDggKzkwMCw4IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hCiAg
ICAgICAgIGNvbnN1bWVkID0gYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseUluQ29udGFpbmVyKGNv
bnRhaW5lciwgc3RhcnRpbmdSZWN0LCBkaXJlY3Rpb24sIGV2ZW50KTsKICAgICAgICAgc3RhcnRp
bmdSZWN0ID0gbm9kZVJlY3RJbkFic29sdXRlQ29vcmRpbmF0ZXMoY29udGFpbmVyLCB0cnVlIC8q
IGlnbm9yZSBib3JkZXIgKi8pOwogICAgICAgICBjb250YWluZXIgPSBzY3JvbGxhYmxlRW5jbG9z
aW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihkaXJlY3Rpb24sIGNvbnRhaW5l
cik7Ci0gICAgICAgIGlmIChjb250YWluZXIgJiYgY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgp
KQotICAgICAgICAgICAgdG9Eb2N1bWVudChjb250YWluZXIpLT51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgaWYgKGNvbnRhaW5lciAmJiBpczxEb2N1bWVu
dD4oY29udGFpbmVyKSkKKyAgICAgICAgICAgIGRvd25jYXN0PERvY3VtZW50PigqY29udGFpbmVy
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICB9IHdoaWxlICgh
Y29uc3VtZWQgJiYgY29udGFpbmVyKTsKIAogICAgIHJldHVybiBjb25zdW1lZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0hpc3RvcnkuY3BwCmluZGV4IDc0Y2VmNGRkMzIxMzgxYzJmOTM5Yjg2Y2VjM2E0NDYxNmY3ZDMy
M2IuLmYyODllYTVhZmU1MDc3ZGVmNmJlNjlkZjEwODI2ODFmN2Y5Njk2NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9IaXN0b3J5LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSGlzdG9yeTo6Z28oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgaW50IGRpc3RhbmNlKQogICAgICAgICByZXR1cm47
CiAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERvY3VtZW50KiBhY3RpdmVEb2N1
bWVudCA9IHRvRG9jdW1lbnQoY29udGV4dCk7CisgICAgRG9jdW1lbnQqIGFjdGl2ZURvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgIGlmICghYWN0aXZlRG9jdW1lbnQp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0
aWFsTmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAppbmRleCBlNWZiMDVlMzJjOTFhN2Q4YjE5ZGNjODc2NThjOTMyNTNmMDk1OWNhLi4yOGQ5
ZDNkNTAyN2JjOTZkYjdhOTNiNWQ4MWM5YTNiYzlmMmQxYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApAQCAtMzY2LDggKzM2Niw4IEBAIGJvb2wgc2Nyb2xs
SW5EaXJlY3Rpb24oRnJhbWUqIGZyYW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiBib29s
IHNjcm9sbEluRGlyZWN0aW9uKE5vZGUqIGNvbnRhaW5lciwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0
aW9uKQogewogICAgIEFTU0VSVChjb250YWluZXIpOwotICAgIGlmIChjb250YWluZXItPmlzRG9j
dW1lbnROb2RlKCkpCi0gICAgICAgIHJldHVybiBzY3JvbGxJbkRpcmVjdGlvbih0b0RvY3VtZW50
KGNvbnRhaW5lciktPmZyYW1lKCksIGRpcmVjdGlvbik7CisgICAgaWYgKGlzPERvY3VtZW50Pihj
b250YWluZXIpKQorICAgICAgICByZXR1cm4gc2Nyb2xsSW5EaXJlY3Rpb24oZG93bmNhc3Q8RG9j
dW1lbnQ+KCpjb250YWluZXIpLmZyYW1lKCksIGRpcmVjdGlvbik7CiAKICAgICBpZiAoIWNvbnRh
aW5lci0+cmVuZGVyQm94KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQzNSwxMSArNDM1
LDExIEBAIE5vZGUqIHNjcm9sbGFibGVFbmNsb3NpbmdCb3hPclBhcmVudEZyYW1lRm9yTm9kZUlu
RGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjCiAgICAgQVNTRVJUKG5vZGUpOwogICAgIE5v
ZGUqIHBhcmVudCA9IG5vZGU7CiAgICAgZG8gewotICAgICAgICBpZiAocGFyZW50LT5pc0RvY3Vt
ZW50Tm9kZSgpKQotICAgICAgICAgICAgcGFyZW50ID0gdG9Eb2N1bWVudChwYXJlbnQpLT5kb2N1
bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpOworICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+
KHBhcmVudCkpCisgICAgICAgICAgICBwYXJlbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnBhcmVu
dCkuZG9jdW1lbnQoKS5mcmFtZSgpLT5vd25lckVsZW1lbnQoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcGFyZW50ID0gcGFyZW50LT5wYXJlbnROb2RlKCk7Ci0gICAgfSB3aGlsZSAocGFy
ZW50ICYmICFjYW5TY3JvbGxJbkRpcmVjdGlvbihwYXJlbnQsIGRpcmVjdGlvbikgJiYgIXBhcmVu
dC0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAgfSB3aGlsZSAocGFyZW50ICYmICFjYW5TY3JvbGxJ
bkRpcmVjdGlvbihwYXJlbnQsIGRpcmVjdGlvbikgJiYgIWlzPERvY3VtZW50PihwYXJlbnQpKTsK
IAogICAgIHJldHVybiBwYXJlbnQ7CiB9CkBAIC00NTEsOCArNDUxLDggQEAgYm9vbCBjYW5TY3Jv
bGxJbkRpcmVjdGlvbihjb25zdCBOb2RlKiBjb250YWluZXIsIEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbikKICAgICBpZiAoaXM8SFRNTFNlbGVjdEVsZW1lbnQ+KGNvbnRhaW5lcikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGlmIChjb250YWluZXItPmlzRG9jdW1lbnROb2RlKCkpCi0g
ICAgICAgIHJldHVybiBjYW5TY3JvbGxJbkRpcmVjdGlvbih0b0RvY3VtZW50KGNvbnRhaW5lcikt
PmZyYW1lKCksIGRpcmVjdGlvbik7CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250YWluZXIpKQor
ICAgICAgICByZXR1cm4gY2FuU2Nyb2xsSW5EaXJlY3Rpb24oZG93bmNhc3Q8RG9jdW1lbnQ+KCpj
b250YWluZXIpLmZyYW1lKCksIGRpcmVjdGlvbik7CiAKICAgICBpZiAoIWlzU2Nyb2xsYWJsZU5v
ZGUoY29udGFpbmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTIwLDggKzUyMCw4IEBA
IExheW91dFJlY3Qgbm9kZVJlY3RJbkFic29sdXRlQ29vcmRpbmF0ZXMoTm9kZSogbm9kZSwgYm9v
bCBpZ25vcmVCb3JkZXIpCiB7CiAgICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSAm
JiAhbm9kZS0+ZG9jdW1lbnQoKS52aWV3KCktPm5lZWRzTGF5b3V0KCkpOwogCi0gICAgaWYgKG5v
ZGUtPmlzRG9jdW1lbnROb2RlKCkpCi0gICAgICAgIHJldHVybiBmcmFtZVJlY3RJbkFic29sdXRl
Q29vcmRpbmF0ZXModG9Eb2N1bWVudChub2RlKS0+ZnJhbWUoKSk7CisgICAgaWYgKGlzPERvY3Vt
ZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lUmVjdEluQWJzb2x1dGVDb29yZGluYXRl
cyhkb3duY2FzdDxEb2N1bWVudD4oKm5vZGUpLmZyYW1lKCkpOwogICAgIExheW91dFJlY3QgcmVj
dCA9IHJlY3RUb0Fic29sdXRlQ29vcmRpbmF0ZXMobm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpLCBu
b2RlLT5ib3VuZGluZ0JveCgpKTsKIAogICAgIC8vIEZvciBhdXRob3JzIHRoYXQgdXNlIGJvcmRl
ciBpbnN0ZWFkIG9mIG91dGxpbmUgaW4gdGhlaXIgQ1NTLCB3ZSBjb21wZW5zYXRlIGJ5IGlnbm9y
aW5nIHRoZSBib3JkZXIgd2hlbiBjYWxjdWxhdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaApp
bmRleCA5OTYwMTVlZWQxOWEzODkzZmQxYTAwYmNkNzNiMDk4YzRmNWQ0Y2Y4Li42Y2FjZjAzYTgx
ZThjYmM3M2I5NGZiZTYyZjNhMzQ1YmY4ZWJmNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQu
aApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JF
R0lOKFNWR0RvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzU1ZHRG9jdW1lbnQoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVudC5pc1NWR0RvY3VtZW50KCk7IH0KLSAg
ICBzdGF0aWMgYm9vbCBpc1NWR0RvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5v
ZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc1NWR0RvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpOyB9
CisgICAgc3RhdGljIGJvb2wgaXNTVkdEb2N1bWVudChjb25zdCBOb2RlJiBub2RlKSB7IHJldHVy
biBpczxEb2N1bWVudD4obm9kZSkgJiYgaXNTVkdEb2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4o
bm9kZSkpOyB9CiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4OGFjZDFmMTFm
NjRlMjlkNzYyY2IzNDJhMTU3MDUzODBkYTIyNmVjLi40NDE1NzUwMjZkNDBlMTc2YTM2ZDU3NzM2
ZDY3ZTg3MTUyZGVjZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0z
MTksMTMgKzMxOSwxMyBAQCBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCogZG9jdW1lbnQp
CiAKIERvY3VtZW50KiBJbnRlcm5hbHM6OmNvbnRleHREb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIEZyYW1l
KiBJbnRlcm5hbHM6OmZyYW1lKCkgY29uc3QKIHsKICAgICBpZiAoIWNvbnRleHREb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGNvbnRleHREb2N1bWVudCgpLT5mcmFtZSgpOwogfQogCkBAIC0xOTE2LDggKzE5MTYsOCBAQCB2
b2lkIEludGVybmFsczo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5kUnVu
UG9zdExheW91dFRhc2tzKE5vZGUqCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50OwogICAgIGlmICgh
bm9kZSkKICAgICAgICAgZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKLSAgICBlbHNlIGlm
IChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICBkb2N1bWVudCA9IHRvRG9jdW1lbnQo
bm9kZSk7CisgICAgZWxzZSBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpKQorICAgICAgICBkb2N1bWVu
dCA9IGRvd25jYXN0PERvY3VtZW50Pihub2RlKTsKICAgICBlbHNlIGlmIChpczxIVE1MSUZyYW1l
RWxlbWVudD4obm9kZSkpCiAgICAgICAgIGRvY3VtZW50ID0gZG93bmNhc3Q8SFRNTElGcmFtZUVs
ZW1lbnQ+KCpub2RlKS5jb250ZW50RG9jdW1lbnQoKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAzYjFiOTFj
ZWUzMTI5M2E5MmMzNjM5ZjUwY2MyMDA5ZmVlOTQyMTE4Li5hZWE4ZTRhOTBkNDExZWVjODc3YjBk
NDllMzlmOTcwZjMyNDIyMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC00Niw4ICs0Niw4IEBAIHZvaWQgaW5qZWN0SW50ZXJu
YWxzT2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0KQogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4
ZWMpOwogICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoc2NyaXB0Q29udGV4dC0+aXNEb2N1bWVudCgpKQotICAg
ICAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMs
IEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgSW50ZXJu
YWxzOjpjcmVhdGUodG9Eb2N1bWVudChzY3JpcHRDb250ZXh0KSkpKTsKKyAgICBpZiAoaXM8RG9j
dW1lbnQ+KHNjcmlwdENvbnRleHQpKQorICAgICAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdChl
eGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsIEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgSW50ZXJuYWxzOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+
KHNjcmlwdENvbnRleHQpKSkpOwogfQogCiB2b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0KEpTQ29u
dGV4dFJlZiBjb250ZXh0KQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIHJlc2V0SW50ZXJuYWxzT2Jq
ZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0KQogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwog
ICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKLSAgICBQYWdlKiBwYWdlID0gdG9Eb2N1bWVudChzY3JpcHRDb250ZXh0KS0+ZnJh
bWUoKS0+cGFnZSgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0
Q29udGV4dCktPmZyYW1lKCktPnBhZ2UoKTsKICAgICBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0
ZW50U3RhdGUocGFnZSk7CiAgICAgSW50ZXJuYWxTZXR0aW5nczo6ZnJvbShwYWdlKS0+cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA5MzBjNjE0YTQyZDAy
NzY1MzU5N2UyOGM2OWI1ODBmNGQyOTc2M2Q5Li5mOWQwZTNhYjg4NWE4MDQ0NTc5MmM2YjI3NDc0
MmU2OTNjNmEwZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQg
U2hhcmVkV29ya2VyUHJveHk6OmFkZFRvV29ya2VyRG9jdW1lbnRzKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIEFTU0VSVCghaXNDbG9z
aW5nKCkpOwogICAgIE11dGV4TG9ja2VyIGxvY2sobV93b3JrZXJEb2N1bWVudHNMb2NrKTsKLSAg
ICBtX3dvcmtlckRvY3VtZW50cy5hZGQodG9Eb2N1bWVudChjb250ZXh0KSk7CisgICAgbV93b3Jr
ZXJEb2N1bWVudHMuYWRkKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7CiB9CiAKIHZvaWQg
U2hhcmVkV29ya2VyUHJveHk6OmRvY3VtZW50RGV0YWNoZWQoRG9jdW1lbnQqIGRvY3VtZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRl
eCBjM2MxOGMwNzRlZTNhZmViMTc3MzJiZTQzZjk3YjFmNzhlOTg0ZGU3Li4yYmNhYTRiZDljODFj
ODMwMmQxZmUyYTZlMjgyODZkODhlZThmNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtODMsMTEgKzgzLDExIEBAIHZvaWQgV29y
a2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3Jp
cHRVUkwsIGNvbnN0IFN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0
ZWQgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1l
bnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBHcm91cFNldHRpbmdzKiBzZXR0aW5n
cyA9IDA7Ci0gICAgaWYgKGRvY3VtZW50LT5wYWdlKCkpCi0gICAgICAgIHNldHRpbmdzID0gJmRv
Y3VtZW50LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpOwotICAgIFJlZlB0cjxEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRl
KHNjcmlwdFVSTCwgdXNlckFnZW50LCBzZXR0aW5ncywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlz
LCBzdGFydE1vZGUsIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRl
ZEhlYWRlcigpLCBkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRI
ZWFkZXJUeXBlKCksIGRvY3VtZW50LT50b3BPcmlnaW4oKSk7CisgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAg
IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzID0gbnVsbHB0cjsKKyAgICBpZiAoZG9jdW1lbnQucGFn
ZSgpKQorICAgICAgICBzZXR0aW5ncyA9ICZkb2N1bWVudC5wYWdlKCktPmdyb3VwKCkuZ3JvdXBT
ZXR0aW5ncygpOworICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERl
ZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzZXR0aW5n
cywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBzdGFydE1vZGUsIGRvY3VtZW50LmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyKCksIGRvY3VtZW50LmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgpLCBkb2N1bWVudC50b3BPcmlnaW4o
KSk7CiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQo
KTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyR2xvYmFsU2Nv
cGUobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmdldCgpLCB0aGlzLCBzY3JpcHRVUkwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYzIzNzVjNDhiNTNjNzhkM2ZjOTcx
NTViOTNmYThmMmM1MTljMWZjMC4uNGQ1MzRlZTlhOGY1ZmMzMjU5OGI0OGRhZTU5YjVmMDBhYzYy
MjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xNTUsNyArMTU1
LDcgQEAgWE1MSHR0cFJlcXVlc3Q6On5YTUxIdHRwUmVxdWVzdCgpCiBEb2N1bWVudCogWE1MSHR0
cFJlcXVlc3Q6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKLSAgICByZXR1cm4gdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKIH0KIAogU2VjdXJpdHlPcmlnaW4qIFhNTEh0dHBSZXF1ZXN0OjpzZWN1cml0eU9yaWdp
bigpIGNvbnN0CkBAIC00ODcsMTAgKzQ4NywxMCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVu
KGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vbCBhc3luYywgRXhjZQog
CiAgICAgLy8gRklYTUU6IENvbnZlcnQgdGhpcyB0byBjaGVjayB0aGUgaXNvbGF0ZWQgd29ybGQn
cyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvbmNlIHdlYmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29s
dmVkLgogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
ID0gZmFsc2U7Ci0gICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgp
KSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICAgICAgaWYgKGRvY3VtZW50LT5mcmFtZSgpKQotICAgICAgICAg
ICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQt
PmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpOworICAgIGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkg
eworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGlmIChkb2N1bWVudC5mcmFtZSgpKQorICAg
ICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9j
dW1lbnQuZnJhbWUoKS0+c2NyaXB0KCkuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5KCk7CiAgICAgfQogICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5ICYmICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd0Nvbm5lY3RUb1NvdXJjZSh1cmwpKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBTaG91bGQgdGhpcyBiZSB0aHJvd2luZyBhbiBleGNlcHRpb24/CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1
bWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTURvY3VtZW50Lm1tCmluZGV4IDUzOThiOTkzZWE1NGJmNGM4ZjMwMzJjMTM5YmVhYzE3
MzU0YTI1OGIuLmRkZDdiZDZkOTA0NTZjNTI0Yjk0M2JjYzRkM2NlZDkwZGQ1ZWUxOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTURvY3VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCkBAIC0zOSwxNyArMzksMTcgQEAgLSAoV0tE
T01FbGVtZW50ICopY3JlYXRlRWxlbWVudDooTlNTdHJpbmcgKil0YWdOYW1lCiB7CiAgICAgLy8g
RklYTUU6IERvIHNvbWV0aGluZyBhYm91dCB0aGUgZXhjZXB0aW9uLgogICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01FbGVtZW50KHRv
RG9jdW1lbnQoX2ltcGwuZ2V0KCkpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIGVjKS5nZXQoKSk7
CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTUVsZW1lbnQoV2ViQ29yZTo6ZG93bmNhc3Q8V2Vi
Q29yZTo6RG9jdW1lbnQ+KCpfaW1wbCkuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBlYykuZ2V0KCkp
OwogfQogCiAtIChXS0RPTVRleHQgKiljcmVhdGVUZXh0Tm9kZTooTlNTdHJpbmcgKilkYXRhCiB7
Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTVRleHQodG9Eb2N1bWVudChfaW1wbC5nZXQoKSkt
PmNyZWF0ZVRleHROb2RlKGRhdGEpLmdldCgpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9N
VGV4dChXZWJDb3JlOjpkb3duY2FzdDxXZWJDb3JlOjpEb2N1bWVudD4oKl9pbXBsKS5jcmVhdGVU
ZXh0Tm9kZShkYXRhKS5nZXQoKSk7CiB9CiAKIC0gKFdLRE9NRWxlbWVudCAqKWJvZHkKIHsKLSAg
ICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9NRWxlbWVudCh0b0RvY3VtZW50KF9pbXBsLmdldCgpKS0+
Ym9keSgpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9NRWxlbWVudChXZWJDb3JlOjpkb3du
Y2FzdDxXZWJDb3JlOjpEb2N1bWVudD4oKl9pbXBsKS5ib2R5KCkpOwogfQogCiBAZW5kCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>