<?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>189383</bug_id>
          
          <creation_ts>2018-09-06 16:29:56 -0700</creation_ts>
          <short_desc>Refactor WebCore::EditAction to be an 8-bit enum class</short_desc>
          <delta_ts>2018-09-06 20:06:20 -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>HTML Editing</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>189356</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1457323</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-09-06 16:29:56 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457325</commentid>
    <comment_count>1</comment_count>
      <attachid>349089</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-09-06 16:36:38 -0700</bug_when>
    <thetext>Created attachment 349089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457356</commentid>
    <comment_count>2</comment_count>
      <attachid>349097</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-09-06 17:23:09 -0700</bug_when>
    <thetext>Created attachment 349097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457387</commentid>
    <comment_count>3</comment_count>
      <attachid>349097</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 20:05:02 -0700</bug_when>
    <thetext>Comment on attachment 349097
Patch

Clearing flags on attachment: 349097

Committed r235775: &lt;https://trac.webkit.org/changeset/235775&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457388</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 20:05:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457389</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-06 20:06:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/44208847&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349089</attachid>
            <date>2018-09-06 16:36:38 -0700</date>
            <delta_ts>2018-09-06 16:37:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189383-20180906163637.patch</filename>
            <type>text/plain</type>
            <size>149543</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM3MGE4OWFmZTA3YWU2
ODNmNTM3OGE3N2VkZjlmNjAyNDU5NGMyYy4uZjhiYWJhYThhNGIzOWI3NzZjNzdlZTg1YjZlMjhh
Y2JlMGI3NTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MSBAQAorMjAxOC0wOS0wNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBX
ZWJDb3JlOjpFZGl0QWN0aW9uIHRvIGJlIGFuIDgtYml0IGVudW0gY2xhc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTM4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgRWRpdEFjdGlv
bi5oIGRlZmluZXMgYW4gRWRpdEFjdGlvbiBhcyBhbiBlbnVtLiBUaGlzIHBhdGNoIGNoYW5nZXMg
RWRpdEFjdGlvbiB0byBpbnN0ZWFkIGJlIGFuIDgtYml0LQorICAgICAgICB3aWRlIGVudW0gY2xh
c3MsIGFuZCByZW5hbWVzIGFsbCBFZGl0QWN0aW9uIHZhbHVlcyBmcm9tIEVkaXRBY3Rpb24oKikg
dG8gRWRpdEFjdGlvbjo6KCopLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZVNlbGVjdGlvbkVkaXRpbmdBY3Rpb25G
b3JFZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp3YXNDcmVhdGVM
aW5rQ29tbWFuZCBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5o
OgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2Vy
dFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29t
bWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRB
Y3Rpb24uaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnB1dFR5cGVOYW1lRm9yRWRpdGluZ0FjdGlv
bik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RXZlbnREYXRhRm9yRWRpdGluZ1N0
eWxlQW5kQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNsZWFyVGV4dENvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpoYW5kbGVUZXh0RXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGx5Q29tbWFuZFRvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUlu
c2VydEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVCYWNrQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUZvbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVGb250U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlRm9udFNpemVEZWx0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpleGVjdXRlRm9yZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmV4
ZWN1dGVKdXN0aWZ5Q2VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVKdXN0aWZ5RnVs
bCk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlSnVzdGlmeUxlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6ZXhlY3V0ZUp1c3RpZnlSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTWFr
ZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhl
Y3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6
ZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdl
YkNvcmU6OmV4ZWN1dGVTdHJpa2V0aHJvdWdoKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVT
dWJzY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVN1cGVyc2NyaXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmV4ZWN1dGVUb2dnbGVCb2xkKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVUb2dnbGVJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVVuZGVybGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpleGVjdXRlVW5zY3JpcHQpOgorICAgICAgICAqIGVkaXRpbmcvRm9y
bWF0QmxvY2tDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydExpc3RDb21tYW5kOjplZGl0aW5nQWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBs
aWVyKToKKyAgICAgICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Jl
bW92ZU5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQ6OlJlcGxh
Y2VSYW5nZVdpdGhUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlUmFuZ2VX
aXRoVGV4dENvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OmNvbXBsZXRlSFRNTFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpwZXJmb3JtVHJpdmlhbFJlcGxhY2UpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxpbmdDb3Jy
ZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbGluZ0NvcnJlY3Rpb25D
b21tYW5kOjpTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVkaXRBY3Rpb25Gb3JUeXBpbmdDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OmVkaXRBY3Rpb25Jc0RlbGV0ZUJ5VHlwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6OmlzQmVmb3JlSW5wdXRFdmVudENhbmNlbGFibGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGEgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGFUcmFuc2Zl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9VbmxpbmtDb21tYW5kLmg6
CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKToKKyAg
ICAgICAgKiBlZGl0aW5nL2lvcy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0
RHJhZyk6CisKKzIwMTgtMDktMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBbV0syXSBTdXBwb3J0IGNoYW5naW5nIGF0dHJpYnV0ZXMg
Zm9yIHNlbGVjdGVkIHRleHQgKHRleHQgc2hhZG93LCB1bmRlcmxpbmUsIHN0cmlrZS10aHJvdWdo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MzU2
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDE4NTY3ND4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZW5jb2RpbmcgYW5k
IGRlY29kaW5nIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLCBzbyB0aGF0IHdlIGNhbiBzZW5kIEZvbnRB
dHRyaWJ1dGVDaGFuZ2VzIG92ZXIgSVBDIGluCisgICAgICAgIFdlYktpdDIuIEFsc28gY2hhbmdl
IG1fdmVydGljYWxBbGlnbiB0byBhIG5ldyBWZXJ0aWNhbEFsaWduQ2hhbmdlIGVudW0gdHlwZSwg
c28gdGhhdCBpdCdzIG5vIGxvbmdlciB0aWVkIHRvIHRoZQorICAgICAgICBDU1MgcHJvcGVydHkg
dmFsdWVzIG9mICJ2ZXJ0aWNhbC1hbGlnbiIsIGFuZCBjYW4gYmUgZW5jb2RlZC9kZWNvZGVkIHNl
cGFyYXRlbHkgZnJvbSBWZXJ0aWNhbEFsaWduIGluCisgICAgICAgIFJlbmRlclN0eWxlQ29uc3Rh
bnRzLgorCisgICAgICAgIFRlc3Q6IEZvbnRNYW5hZ2VyVGVzdHMuQ2hhbmdlQXR0cmlidXRlc1dp
dGhGb250RWZmZWN0c0JveAorCisgICAgICAgICogZWRpdGluZy9Gb250QXR0cmlidXRlQ2hhbmdl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250QXR0cmlidXRlQ2hhbmdlczo6Y3JlYXRlRWRp
dGluZ1N0eWxlIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZvbnRBdHRyaWJ1dGVDaGFuZ2Vz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250QXR0cmlidXRlQ2hhbmdlczo6c2V0VmVydGljYWxB
bGlnbik6CisgICAgICAgIChXZWJDb3JlOjpGb250U2hhZG93OjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udFNoYWRvdzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRBdHRyaWJ1dGVDaGFuZ2VzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEF0dHJpYnV0ZUNoYW5nZXM6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNv
cmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZWRGb250
QXR0cmlidXRlQ2hhbmdlcyk6CisKIDIwMTgtMDktMDYgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIEdyb3VwIG9wdGlvbnMgb2Ygc2Nyb2xsUmVjdFRvVmlzaWJs
ZSBpbnRvIGEgc3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmMzU0YjBhMDhkNTlmYTIxOTU5YjBkZmRjYTg4
MmE2YWZiMDQxNGUuLjY3YmNmY2ZlNTY1ZGJhNGM0YzRjOTAxMTY0ZTdmNDNiZTZjNTJkMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTgtMDktMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgV2ViQ29yZTo6RWRpdEFjdGlv
biB0byBiZSBhbiA4LWJpdCBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y2hhbmdlRm9udEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjaGFuZ2VGb250KToKKworMjAxOC0wOS0wNiAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFtXSzJdIFN1cHBvcnQg
Y2hhbmdpbmcgYXR0cmlidXRlcyBmb3Igc2VsZWN0ZWQgdGV4dCAodGV4dCBzaGFkb3csIHVuZGVy
bGluZSwgc3RyaWtlLXRocm91Z2gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODkzNTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0MTg1Njc0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCAtW1dLV2ViVmlldyBjaGFuZ2VBdHRyaWJ1dGVzOl0sIHNvIHRoYXQgV0tXZWJWaWV3IGNhbiBj
YXJyeSBvdXQgbW9yZSB0eXBlcyBvZiBmb250IHN0eWxlIGNoYW5nZXMgdmlhCisgICAgICAgIE5T
Rm9udFBhbmVsLiBUaGlzIHBhdGNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvICgxKSBjaGFuZ2UgdGV4
dCBzaGFkb3csICgyKSBhZGQgb3IgcmVtb3ZlIHN0cmlrZS10aHJvdWdoLCBhbmQgKDMpCisgICAg
ICAgIGFkZCBvciByZW1vdmUgdW5kZXJsaW5lcyBmcm9tIHNlbGVjdGVkIHRleHQgdXNpbmcgdGhl
IGZvbnQgcGFuZWwuCisKKyAgICAgICAgVGhpcyBidWlsZHMgb24gdGhlIG1lY2hhbmlzbXMgaW50
cm9kdWNlZCBpbiByMjM1NzQ4IHRvIGNvbXB1dGUgZm9udCBhdHRyaWJ1dGUgY2hhbmdlcyBpbiB0
aGUgVUkgcHJvY2VzcyBhbmQKKyAgICAgICAgcHJvcGFnYXRlIHRoaXMgaW5mb3JtYXRpb24gdG8g
dGhlIHdlYiBwcm9jZXNzLCB3aGVyZSB3ZSdyZSBhYmxlIHRvIGNyZWF0ZSBhbmQgYXBwbHkgYW4g
RWRpdGluZ1N0eWxlIHRvIHRoZQorICAgICAgICBjdXJyZW50IHNlbGVjdGlvbi4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgY2hhbmdlQXR0cmlidXRlczpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFuZ2VGb250QXR0cmlidXRlc0Zyb21TZW5kZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjaGFuZ2VGb250QXR0cmlidXRlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjoKKworICAgICAgICBBZGQgYm9pbGVycGxhdGUgSVBDIHN1cHBvcnQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmNoYW5nZUZvbnRBdHRyaWJ1dGVzKToKKwogMjAxOC0wOS0wNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIENhbm5vdCBjaGFu
Z2UgZm9udCBzaXplIGF0IHNlbGVjdGlvbiB1bnRpbCBmb250IHBhbmVsIGlzIHNob3duCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzZlMjdlYTBlMzJkNzk4MWQ2MTcyM2I0NjkwZTY4
OWIwYWMwNTgxOC4uNzFmYzJjNDE2OTM3ZjNlMzk0ODQxZGFiMzI4OTljNDNjMjgzZTZiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTA5LTA2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9y
IFdlYkNvcmU6OkVkaXRBY3Rpb24gdG8gYmUgYW4gOC1iaXQgZW51bSBjbGFzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MzgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgICh1bmRvTmFtZUZvckVkaXRBY3Rpb24pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHBh
c3RlRm9udDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgY2hhbmdlRm9udDpdKToKKyAgICAg
ICAgKC1bV2ViSFRNTFZpZXcgY2hhbmdlQXR0cmlidXRlczpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX3VuZG9BY3Rpb25Gcm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgY2hhbmdlQ29sb3I6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IHNldFR5cGluZ1N0eWxlOl0pOgorCiAyMDE4LTA5LTA2
ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBHcm91cCBvcHRp
b25zIG9mIHNjcm9sbFJlY3RUb1Zpc2libGUgaW50byBhIHN0cnVjdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCmluZGV4IGVlYmFiNzQyNTUxZGUzOTdhMzhjYzQyNDA5YzM5ODI5NWFmNmFhMGYu
LjhhZjgxZWFkMzZjOTBlMmYzYWEyYjE4MmNjZGI2MWU2OTE0ZjMzYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wOS0wNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBXZWJDb3JlOjpF
ZGl0QWN0aW9uIHRvIGJlIGFuIDgtYml0IGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTM4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcDoKKyAgICAgICAgKHVuZG9OYW1lRm9yRWRpdEFjdGlvbik6CisKIDIwMTgtMDktMDQg
IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBiYXNpYyBz
dXBwb3J0IGZvciBTY3JvbGxJbnRvVmlld09wdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCA0MDlmY2NmMGQ3ZDIyNGQxYzc3NGQ3YTgzMDVjNDNk
ZjhkN2E4OGQ1Li44Njk0NTUxNDIxNDJiYjM4OWE3ZDZhZjg5YTYyODc0YzQyNGI4YmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCkBAIC00NywxOSArNDcs
MTkgQEAgcHVibGljOgogICAgIGVudW0gRUFkZFN0eWxlZEVsZW1lbnQgeyBBZGRTdHlsZWRFbGVt
ZW50LCBEb05vdEFkZFN0eWxlZEVsZW1lbnQgfTsKICAgICB0eXBlZGVmIGJvb2wgKCpJc0lubGlu
ZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uKShjb25zdCBFbGVtZW50Kik7CiAKLSAgICBzdGF0aWMg
UmVmPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBF
ZGl0aW5nU3R5bGUqIHN0eWxlLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VB
dHRyaWJ1dGVzLCBFUHJvcGVydHlMZXZlbCBsZXZlbCA9IFByb3BlcnR5RGVmYXVsdCkKKyAgICBz
dGF0aWMgUmVmPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb246
OkNoYW5nZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbHlTdHlsZUNvbW1hbmQo
ZG9jdW1lbnQsIHN0eWxlLCBhY3Rpb24sIGxldmVsKSk7CiAgICAgfQotICAgIHN0YXRpYyBSZWY8
QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRp
bmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVu
ZCwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVByb3Bl
cnR5TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCisgICAgc3RhdGljIFJlZjxBcHBseVN0
eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxl
KiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0
QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb246OkNoYW5nZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0eUxl
dmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZG9jdW1lbnQsIHN0eWxlLCBzdGFydCwgZW5kLCBh
Y3Rpb24sIGxldmVsKSk7CiAgICAgfQotICAgIHN0YXRpYyBSZWY8QXBwbHlTdHlsZUNvbW1hbmQ+
IGNyZWF0ZShSZWY8RWxlbWVudD4mJiBlbGVtZW50LCBib29sIHJlbW92ZU9ubHkgPSBmYWxzZSwg
RWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcykKKyAgICBzdGF0
aWMgUmVmPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCwg
Ym9vbCByZW1vdmVPbmx5ID0gZmFsc2UsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbjo6
Q2hhbmdlQXR0cmlidXRlcykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFw
cGx5U3R5bGVDb21tYW5kKFdURk1vdmUoZWxlbWVudCksIHJlbW92ZU9ubHksIGFjdGlvbikpOwog
ICAgIH0KLSAgICBzdGF0aWMgUmVmPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBJc0lubGluZUVsZW1lbnRUb1Jl
bW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24sIEVkaXRBY3Rpb24g
YWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMpCisgICAgc3RhdGljIFJlZjxBcHBs
eVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0
eWxlKiBzdHlsZSwgSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBpc0lubGluZUVsZW1l
bnRUb1JlbW92ZUZ1bmN0aW9uLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb246OkNoYW5n
ZUF0dHJpYnV0ZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBseVN0
eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rp
b24sIGFjdGlvbikpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggYjQ1MjI3YjdjYjI2YTc2YmMzOTlmYzIwYjE5ZWNiNTZj
NjRlNWJmNS4uZTVmMzM5MjUzZWU3ZGFhYTg2OWUyZjZhYmM3YjJlNTI2ZDI0ZTY4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTMy
MSwzMCArMzIxLDMwIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KCkKIHsKICAg
ICBpZiAoIWVuZGluZ1NlbGVjdGlvbigpLmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCkpIHsKICAg
ICAgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9u
VHlwaW5nRGVsZXRlU2VsZWN0aW9uOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxl
dGVCYWNrd2FyZDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRm9yd2FyZDoK
LSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgotICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKLSAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJkOgotICAgICAgICBjYXNlIEVkaXRBY3Rp
b25UeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5n
RGVsZXRlUGVuZGluZ0NvbXBvc2l0aW9uOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdE
ZWxldGVGaW5hbENvbXBvc2l0aW9uOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNl
cnRUZXh0OgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRMaW5lQnJlYWs6Ci0g
ICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydFBhcmFncmFwaDoKLSAgICAgICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uOgotICAgICAgICBjYXNl
IEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9uOgotICAgICAgICBjYXNlIEVk
aXRBY3Rpb25QYXN0ZToKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlQnlEcmFnOgotICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uOgotICAgICAgICBjYXNlIEVk
aXRBY3Rpb25DdXQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgotICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydFJl
cGxhY2VtZW50OgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRGcm9tRHJvcDoKLSAgICAg
ICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRp
b246CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlU2VsZWN0aW9uOgorICAg
ICAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUJhY2t3YXJkOgorICAgICAgICBjYXNl
IEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZvcndhcmQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlR5
cGluZ0RlbGV0ZVdvcmRGb3J3YXJkOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0Rl
bGV0ZUxpbmVCYWNrd2FyZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVM
aW5lRm9yd2FyZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVQZW5kaW5n
Q29tcG9zaXRpb246CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRmluYWxD
b21wb3NpdGlvbjoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRUZXh0Ogor
ICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydExpbmVCcmVhazoKKyAgICAgICAg
Y2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQYXJhZ3JhcGg6CisgICAgICAgIGNhc2UgRWRp
dEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uOgorICAgICAgICBjYXNlIEVk
aXRBY3Rpb246OlR5cGluZ0luc2VydEZpbmFsQ29tcG9zaXRpb246CisgICAgICAgIGNhc2UgRWRp
dEFjdGlvbjo6UGFzdGU6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnOgor
ICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb246CisgICAgICAgIGNh
c2UgRWRpdEFjdGlvbjo6Q3V0OgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVk
OgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydDoKKyAgICAgICAgY2FzZSBFZGl0QWN0
aW9uOjpJbnNlcnRSZXBsYWNlbWVudDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRG
cm9tRHJvcDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpEZWxldGU6CisgICAgICAgIGNhc2Ug
RWRpdEFjdGlvbjo6RGljdGF0aW9uOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgxOSwxMCArODE5LDEw
IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdFRhYlNwYW5Qb3NpdGlv
bihSZWY8Tm9kZT4mJiBub2RlLCBjb25zdCBQCiBzdGF0aWMgRWRpdEFjdGlvbiBkZWxldGVTZWxl
Y3Rpb25FZGl0aW5nQWN0aW9uRm9yRWRpdGluZ0FjdGlvbihFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pCiB7CiAgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKSB7Ci0gICAgY2FzZSBFZGl0QWN0aW9u
Q3V0OgotICAgICAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICBjYXNlIEVkaXRBY3Rpb246
OkN1dDoKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OkN1dDsKICAgICBkZWZhdWx0OgotICAg
ICAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246
OkRlbGV0ZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaAppbmRleCBkNDY3YmYxNTg5NzNiODExNjhiYmRmYzk5MzQxNDM4ZjNlZTA0
YjJjLi40YTQyNGExOTI0ZmNhYTljNjY0YzhjNzVlNWI3OWZlYWMxZjY0ZDBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC03MSw3ICs3MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlYXBwbHkoKSBvdmVycmlkZTsKICAgICBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VkaXRBY3Rpb247IH0K
ICAgICB2b2lkIGFwcGVuZChTaW1wbGVFZGl0Q29tbWFuZCopOwotICAgIGJvb2wgd2FzQ3JlYXRl
TGlua0NvbW1hbmQoKSBjb25zdCB7IHJldHVybiBtX2VkaXRBY3Rpb24gPT0gRWRpdEFjdGlvbkNy
ZWF0ZUxpbms7IH0KKyAgICBib29sIHdhc0NyZWF0ZUxpbmtDb21tYW5kKCkgY29uc3QgeyByZXR1
cm4gbV9lZGl0QWN0aW9uID09IEVkaXRBY3Rpb246OkNyZWF0ZUxpbms7IH0KIAogICAgIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
dGFydGluZ1NlbGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1Nl
bGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC0xMjIsNyAr
MTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPERhdGFUcmFuc2Zlcj4gaW5wdXRF
dmVudERhdGFUcmFuc2ZlcigpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29t
cG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3Bl
Y2lmaWVkKTsKKyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVk
aXRBY3Rpb24gPSBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZCk7CiAKICAgICAvLyBJZiB3aWxsQXBw
bHlDb21tYW5kIHJldHVybnMgZmFsc2UsIHdlIHdvbid0IHByb2NlZWQgd2l0aCBhcHBseWluZyB0
aGUgY29tbWFuZC4KICAgICB2aXJ0dWFsIGJvb2wgd2lsbEFwcGx5Q29tbWFuZCgpOwpAQCAtMTM2
LDggKzEzNiw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGVuZE5vZGUoUmVmPE5vZGU+JiYs
IFJlZjxDb250YWluZXJOb2RlPiYmIHBhcmVudCk7CiAgICAgdm9pZCBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShSZWY8RWRpdENvbW1hbmQ+JiYpOwogICAgIHZvaWQgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoUmVmPENvbXBvc2l0ZUVkaXRDb21tYW5kPiYmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
Jik7Ci0gICAgdm9pZCBhcHBseVN0eWxlKGNvbnN0IEVkaXRpbmdTdHlsZSosIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcyk7Ci0gICAgdm9pZCBhcHBseVN0eWxlKGNvbnN0
IEVkaXRpbmdTdHlsZSosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVu
ZCwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKTsKKyAgICB2b2lkIGFw
cGx5U3R5bGUoY29uc3QgRWRpdGluZ1N0eWxlKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246OkNo
YW5nZUF0dHJpYnV0ZXMpOworICAgIHZvaWQgYXBwbHlTdHlsZShjb25zdCBFZGl0aW5nU3R5bGUq
LCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzKTsKICAgICB2b2lkIGFwcGx5U3R5bGVkRWxl
bWVudChSZWY8RWxlbWVudD4mJik7CiAgICAgdm9pZCByZW1vdmVTdHlsZWRFbGVtZW50KFJlZjxF
bGVtZW50PiYmKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0RGVsZXRlID0g
ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9
IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3Jl
YXRlTGlua0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1h
bmQuaAppbmRleCAzOWI5OGQwZGNmMmJkNWVjYzYxMDNiMThlZGQwMmFkMGIyZGY4NzUxLi5iMTdm
MjMxN2ViNTUyM2Q3YmE5NjU4YjExMjc0ZDA5YTMxMWJhYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAg
ICAgQ3JlYXRlTGlua0NvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGxpbmtVUkwpOwog
CiAgICAgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvbkNyZWF0ZUxpbms7IH0KKyAg
ICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFZGl0
QWN0aW9uOjpDcmVhdGVMaW5rOyB9CiAKICAgICBTdHJpbmcgbV91cmw7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBi
ODFjNjJkMzdlZTViOGVlMWQxZTk5NTMwYzQxMTFjMWY3ZWU5ZmE4Li5kYTFkZjZiMTAyOTAyYjIy
YjMwMTc4YzYyMGIzOTBkZmRjNjAyNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBU
ZXh0OwogCiBjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVk
aXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IGNyZWF0ZShSZWY8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQorICAg
IHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZjxUZXh0PiYm
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbiA9IEVkaXRBY3Rpb246OkRlbGV0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGTW92ZShub2RlKSwgb2Zmc2V0
LCBjb3VudCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggODJjZmUyYTkyODA5NjlkOGU0MmIw
YWM5MDFmMTlhZjg0OGFkOTM0NC4uMjMzNjg4YjY3YzVmMTJkODYyYzY0OGQxYTQwZWQyOGUxNTkw
ZmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21t
YW5kLmgKQEAgLTMzLDE3ICszMywxNyBAQCBjbGFzcyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgeyAKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQorICAgIHN0YXRpYyBSZWY8
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBz
bWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBi
b29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxz
ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9
IEVkaXRBY3Rpb246OkRlbGV0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXpl
TWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQotICAgIHN0YXRpYyBSZWY8RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwg
Ym9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0
cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMg
PSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpCisgICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25D
b21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNt
YXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJv
b2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNl
LCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0g
RWRpdEFjdGlvbjo6RGVsZXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXpl
TWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW50aXplTWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7
CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFj
dGlvbjo6RGVsZXRlKTsKIAogcHJpdmF0ZToKICAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMs
IGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggMjgyYmRjOWUzMTViNzJjMjVhZDViZTgyYzZi
ZjA3MTRkNWMxN2FiOS4uOTc1ZDQxYjQ1YTliNzZjNjIyYjJkYjllZWM2YWI0NmRjMjY0OWY3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0xMTcs
NyArMTE3LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5l
d2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0
aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9u
QWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0lu
TGluZSk7Ci0gICAgYXV0byBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhN
YXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0
YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5h
dGl2ZXNJbkxpbmUpLCBFZGl0QWN0aW9uRGljdGF0aW9uKTsKKyAgICBhdXRvIGNvbW1hbmQgPSBJ
bnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1f
dGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25N
YXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSksIEVkaXRBY3Rpb246OkRp
Y3RhdGlvbik7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoV1RGTW92ZShjb21tYW5kKSwg
ZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5k
TmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25EaWN0
YXRpb24pKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9u
OjpEaWN0YXRpb24pKTsKIH0KIAogdm9pZCBEaWN0YXRpb25Db21tYW5kOjpjb2xsZWN0RGljdGF0
aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShzaXplX3QgcmFuZ2VTdGFydCwgc2l6ZV90IHJhbmdlTGVu
Z3RoLCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IDBhYmE0YTVhYWQyMGUwYTQ0OWQ1ZjNlZGMwYjUx
MGY3ZTg4Njg2MTguLmU4MTIyODg0ZWEwYTdmMDE5ODE3OTRkYmNkZWU5NzliOWY1MDE1ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNjQgKzI2LDY2IEBACiAjcHJhZ21h
IG9uY2UKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIHR5cGVkZWYgZW51bSB7Ci0gICAgICAg
IEVkaXRBY3Rpb25VbnNwZWNpZmllZCwKLSAgICAgICAgRWRpdEFjdGlvbkluc2VydCwKLSAgICAg
ICAgRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50LAotICAgICAgICBFZGl0QWN0aW9uSW5zZXJ0
RnJvbURyb3AsCi0gICAgICAgIEVkaXRBY3Rpb25TZXRDb2xvciwKLSAgICAgICAgRWRpdEFjdGlv
blNldEJhY2tncm91bmRDb2xvciwKLSAgICAgICAgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nLAot
ICAgICAgICBFZGl0QWN0aW9uVGlnaHRlbktlcm5pbmcsCi0gICAgICAgIEVkaXRBY3Rpb25Mb29z
ZW5LZXJuaW5nLAotICAgICAgICBFZGl0QWN0aW9uVXNlU3RhbmRhcmRLZXJuaW5nLAotICAgICAg
ICBFZGl0QWN0aW9uVHVybk9mZkxpZ2F0dXJlcywKLSAgICAgICAgRWRpdEFjdGlvblVzZVN0YW5k
YXJkTGlnYXR1cmVzLAotICAgICAgICBFZGl0QWN0aW9uVXNlQWxsTGlnYXR1cmVzLAotICAgICAg
ICBFZGl0QWN0aW9uUmFpc2VCYXNlbGluZSwKLSAgICAgICAgRWRpdEFjdGlvbkxvd2VyQmFzZWxp
bmUsCi0gICAgICAgIEVkaXRBY3Rpb25TZXRUcmFkaXRpb25hbENoYXJhY3RlclNoYXBlLAotICAg
ICAgICBFZGl0QWN0aW9uU2V0Rm9udCwKLSAgICAgICAgRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0
ZXMsCi0gICAgICAgIEVkaXRBY3Rpb25BbGlnbkxlZnQsCi0gICAgICAgIEVkaXRBY3Rpb25BbGln
blJpZ2h0LAotICAgICAgICBFZGl0QWN0aW9uQ2VudGVyLAotICAgICAgICBFZGl0QWN0aW9uSnVz
dGlmeSwKLSAgICAgICAgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24sCi0gICAgICAgIEVk
aXRBY3Rpb25TdWJzY3JpcHQsCi0gICAgICAgIEVkaXRBY3Rpb25TdXBlcnNjcmlwdCwKLSAgICAg
ICAgRWRpdEFjdGlvblVuZGVybGluZSwKLSAgICAgICAgRWRpdEFjdGlvbk91dGxpbmUsCi0gICAg
ICAgIEVkaXRBY3Rpb25VbnNjcmlwdCwKLSAgICAgICAgRWRpdEFjdGlvbkRlbGV0ZUJ5RHJhZywK
LSAgICAgICAgRWRpdEFjdGlvbkN1dCwKLSAgICAgICAgRWRpdEFjdGlvbkJvbGQsCi0gICAgICAg
IEVkaXRBY3Rpb25JdGFsaWNzLAotICAgICAgICBFZGl0QWN0aW9uRGVsZXRlLAotICAgICAgICBF
ZGl0QWN0aW9uRGljdGF0aW9uLAotICAgICAgICBFZGl0QWN0aW9uUGFzdGUsCi0gICAgICAgIEVk
aXRBY3Rpb25QYXN0ZUZvbnQsCi0gICAgICAgIEVkaXRBY3Rpb25QYXN0ZVJ1bGVyLAotICAgICAg
ICBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlU2VsZWN0aW9uLAotICAgICAgICBFZGl0QWN0aW9uVHlw
aW5nRGVsZXRlQmFja3dhcmQsCi0gICAgICAgIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVGb3J3YXJk
LAotICAgICAgICBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkLAotICAgICAgICBF
ZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29yZEZvcndhcmQsCi0gICAgICAgIEVkaXRBY3Rpb25UeXBp
bmdEZWxldGVMaW5lQmFja3dhcmQsCi0gICAgICAgIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVMaW5l
Rm9yd2FyZCwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlv
biwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUZpbmFsQ29tcG9zaXRpb24sCi0gICAg
ICAgIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRUZXh0LAotICAgICAgICBFZGl0QWN0aW9uVHlwaW5n
SW5zZXJ0TGluZUJyZWFrLAotICAgICAgICBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0UGFyYWdyYXBo
LAotICAgICAgICBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uLAotICAg
ICAgICBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbiwKLSAgICAgICAgRWRp
dEFjdGlvbkNyZWF0ZUxpbmssCi0gICAgICAgIEVkaXRBY3Rpb25VbmxpbmssCi0gICAgICAgIEVk
aXRBY3Rpb25Gb3JtYXRCbG9jaywKLSAgICAgICAgRWRpdEFjdGlvbkluc2VydE9yZGVyZWRMaXN0
LAotICAgICAgICBFZGl0QWN0aW9uSW5zZXJ0VW5vcmRlcmVkTGlzdCwKLSAgICAgICAgRWRpdEFj
dGlvbkluZGVudCwKLSAgICAgICAgRWRpdEFjdGlvbk91dGRlbnQKLSAgICB9IEVkaXRBY3Rpb247
ICAgIAorCitlbnVtIGNsYXNzIEVkaXRBY3Rpb24gOiB1aW50OF90IHsKKyAgICBVbnNwZWNpZmll
ZCwKKyAgICBJbnNlcnQsCisgICAgSW5zZXJ0UmVwbGFjZW1lbnQsCisgICAgSW5zZXJ0RnJvbURy
b3AsCisgICAgU2V0Q29sb3IsCisgICAgU2V0QmFja2dyb3VuZENvbG9yLAorICAgIFR1cm5PZmZL
ZXJuaW5nLAorICAgIFRpZ2h0ZW5LZXJuaW5nLAorICAgIExvb3Nlbktlcm5pbmcsCisgICAgVXNl
U3RhbmRhcmRLZXJuaW5nLAorICAgIFR1cm5PZmZMaWdhdHVyZXMsCisgICAgVXNlU3RhbmRhcmRM
aWdhdHVyZXMsCisgICAgVXNlQWxsTGlnYXR1cmVzLAorICAgIFJhaXNlQmFzZWxpbmUsCisgICAg
TG93ZXJCYXNlbGluZSwKKyAgICBTZXRUcmFkaXRpb25hbENoYXJhY3RlclNoYXBlLAorICAgIFNl
dEZvbnQsCisgICAgQ2hhbmdlQXR0cmlidXRlcywKKyAgICBBbGlnbkxlZnQsCisgICAgQWxpZ25S
aWdodCwKKyAgICBDZW50ZXIsCisgICAgSnVzdGlmeSwKKyAgICBTZXRXcml0aW5nRGlyZWN0aW9u
LAorICAgIFN1YnNjcmlwdCwKKyAgICBTdXBlcnNjcmlwdCwKKyAgICBVbmRlcmxpbmUsCisgICAg
T3V0bGluZSwKKyAgICBVbnNjcmlwdCwKKyAgICBEZWxldGVCeURyYWcsCisgICAgQ3V0LAorICAg
IEJvbGQsCisgICAgSXRhbGljcywKKyAgICBEZWxldGUsCisgICAgRGljdGF0aW9uLAorICAgIFBh
c3RlLAorICAgIFBhc3RlRm9udCwKKyAgICBQYXN0ZVJ1bGVyLAorICAgIFR5cGluZ0RlbGV0ZVNl
bGVjdGlvbiwKKyAgICBUeXBpbmdEZWxldGVCYWNrd2FyZCwKKyAgICBUeXBpbmdEZWxldGVGb3J3
YXJkLAorICAgIFR5cGluZ0RlbGV0ZVdvcmRCYWNrd2FyZCwKKyAgICBUeXBpbmdEZWxldGVXb3Jk
Rm9yd2FyZCwKKyAgICBUeXBpbmdEZWxldGVMaW5lQmFja3dhcmQsCisgICAgVHlwaW5nRGVsZXRl
TGluZUZvcndhcmQsCisgICAgVHlwaW5nRGVsZXRlUGVuZGluZ0NvbXBvc2l0aW9uLAorICAgIFR5
cGluZ0RlbGV0ZUZpbmFsQ29tcG9zaXRpb24sCisgICAgVHlwaW5nSW5zZXJ0VGV4dCwKKyAgICBU
eXBpbmdJbnNlcnRMaW5lQnJlYWssCisgICAgVHlwaW5nSW5zZXJ0UGFyYWdyYXBoLAorICAgIFR5
cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbiwKKyAgICBUeXBpbmdJbnNlcnRGaW5hbENvbXBv
c2l0aW9uLAorICAgIENyZWF0ZUxpbmssCisgICAgVW5saW5rLAorICAgIEZvcm1hdEJsb2NrLAor
ICAgIEluc2VydE9yZGVyZWRMaXN0LAorICAgIEluc2VydFVub3JkZXJlZExpc3QsCisgICAgSW5k
ZW50LAorICAgIE91dGRlbnQKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggZGIxZjQwODQ1MDk2YjFhOTI0NDQ5NTZj
YmY2YmRkZjgxMWIzMGIxNi4uMzRjNzljOWE3ZDk5YTU4YWIwMzBlOTM4MzNiODQ1Y2JhODEzMmU0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTQyLDc1ICs0Miw3
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJpbmcgaW5wdXRUeXBlTmFtZUZvckVkaXRpbmdB
Y3Rpb24oRWRpdEFjdGlvbiBhY3Rpb24pCiB7CiAgICAgc3dpdGNoIChhY3Rpb24pIHsKLSAgICBj
YXNlIEVkaXRBY3Rpb25KdXN0aWZ5OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SnVzdGlmeToKICAg
ICAgICAgcmV0dXJuICJmb3JtYXRKdXN0aWZ5RnVsbCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25B
bGlnbkxlZnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpBbGlnbkxlZnQ6CiAgICAgICAgIHJldHVy
biAiZm9ybWF0SnVzdGlmeUxlZnQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQWxpZ25SaWdodDoK
KyAgICBjYXNlIEVkaXRBY3Rpb246OkFsaWduUmlnaHQ6CiAgICAgICAgIHJldHVybiAiZm9ybWF0
SnVzdGlmeVJpZ2h0Il9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkNlbnRlcjoKKyAgICBjYXNlIEVk
aXRBY3Rpb246OkNlbnRlcjoKICAgICAgICAgcmV0dXJuICJmb3JtYXRKdXN0aWZ5Q2VudGVyIl9z
OwotICAgIGNhc2UgRWRpdEFjdGlvblN1YnNjcmlwdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlN1
YnNjcmlwdDoKICAgICAgICAgcmV0dXJuICJmb3JtYXRTdWJzY3JpcHQiX3M7Ci0gICAgY2FzZSBF
ZGl0QWN0aW9uU3VwZXJzY3JpcHQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTdXBlcnNjcmlwdDoK
ICAgICAgICAgcmV0dXJuICJmb3JtYXRTdXBlcnNjcmlwdCJfczsKLSAgICBjYXNlIEVkaXRBY3Rp
b25VbmRlcmxpbmU6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVbmRlcmxpbmU6CiAgICAgICAgIHJl
dHVybiAiZm9ybWF0VW5kZXJsaW5lIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0Q29sb3I6CiAgICAgICAgIHJldHVybiAiZm9ybWF0Rm9u
dENvbG9yIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZUJ5RHJhZzoKKyAgICBjYXNlIEVk
aXRBY3Rpb246OkRlbGV0ZUJ5RHJhZzoKICAgICAgICAgcmV0dXJuICJkZWxldGVCeURyYWciX3M7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6Q3V0OgogICAg
ICAgICByZXR1cm4gImRlbGV0ZUJ5Q3V0Il9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkJvbGQ6Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpCb2xkOgogICAgICAgICByZXR1cm4gImZvcm1hdEJvbGQiX3M7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uSXRhbGljczoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okl0YWxp
Y3M6CiAgICAgICAgIHJldHVybiAiZm9ybWF0SXRhbGljIl9zOwotICAgIGNhc2UgRWRpdEFjdGlv
blBhc3RlOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGU6CiAgICAgICAgIHJldHVybiAiaW5z
ZXJ0RnJvbVBhc3RlIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKLSAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmdEZWxldGVTZWxlY3Rpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpEZWxl
dGU6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVTZWxlY3Rpb246CiAgICAgICAg
IHJldHVybiAiZGVsZXRlQ29udGVudCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxl
dGVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUJhY2t3YXJkOgog
ICAgICAgICByZXR1cm4gImRlbGV0ZUNvbnRlbnRCYWNrd2FyZCJfczsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25UeXBpbmdEZWxldGVGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVs
ZXRlRm9yd2FyZDoKICAgICAgICAgcmV0dXJuICJkZWxldGVDb250ZW50Rm9yd2FyZCJfczsKLSAg
ICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVXb3JkQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkQmFja3dhcmQ6CiAgICAgICAgIHJldHVybiAiZGVsZXRl
V29yZEJhY2t3YXJkIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRGb3J3
YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6CiAgICAg
ICAgIHJldHVybiAiZGVsZXRlV29yZEZvcndhcmQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nRGVsZXRlTGluZUJhY2t3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRl
TGluZUJhY2t3YXJkOgogICAgICAgICByZXR1cm4gImRlbGV0ZUhhcmRMaW5lQmFja3dhcmQiX3M7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKICAgICAgICAgcmV0dXJuICJkZWxl
dGVIYXJkTGluZUZvcndhcmQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlUGVu
ZGluZ0NvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlUGVuZGlu
Z0NvbXBvc2l0aW9uOgogICAgICAgICByZXR1cm4gImRlbGV0ZUNvbXBvc2l0aW9uVGV4dCJfczsK
LSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVGaW5hbENvbXBvc2l0aW9uOgorICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRmluYWxDb21wb3NpdGlvbjoKICAgICAgICAgcmV0
dXJuICJkZWxldGVCeUNvbXBvc2l0aW9uIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoK
LSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRUZXh0OgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6SW5zZXJ0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0VGV4dDoKICAgICAg
ICAgcmV0dXJuICJpbnNlcnRUZXh0Il9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydFJlcGxh
Y2VtZW50OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0UmVwbGFjZW1lbnQ6CiAgICAgICAg
IHJldHVybiAiaW5zZXJ0UmVwbGFjZW1lbnRUZXh0Il9zOwotICAgIGNhc2UgRWRpdEFjdGlvbklu
c2VydEZyb21Ecm9wOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0RnJvbURyb3A6CiAgICAg
ICAgIHJldHVybiAiaW5zZXJ0RnJvbURyb3AiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5n
SW5zZXJ0TGluZUJyZWFrOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0TGluZUJy
ZWFrOgogICAgICAgICByZXR1cm4gImluc2VydExpbmVCcmVhayJfczsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25UeXBpbmdJbnNlcnRQYXJhZ3JhcGg6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJ
bnNlcnRQYXJhZ3JhcGg6CiAgICAgICAgIHJldHVybiAiaW5zZXJ0UGFyYWdyYXBoIl9zOwotICAg
IGNhc2UgRWRpdEFjdGlvbkluc2VydE9yZGVyZWRMaXN0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
SW5zZXJ0T3JkZXJlZExpc3Q6CiAgICAgICAgIHJldHVybiAiaW5zZXJ0T3JkZXJlZExpc3QiX3M7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0VW5vcmRlcmVkTGlzdDoKKyAgICBjYXNlIEVkaXRB
Y3Rpb246Okluc2VydFVub3JkZXJlZExpc3Q6CiAgICAgICAgIHJldHVybiAiaW5zZXJ0VW5vcmRl
cmVkTGlzdCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9z
aXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9zaXRp
b246CiAgICAgICAgIHJldHVybiAiaW5zZXJ0Q29tcG9zaXRpb25UZXh0Il9zOwotICAgIGNhc2Ug
RWRpdEFjdGlvblR5cGluZ0luc2VydEZpbmFsQ29tcG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9uOgogICAgICAgICByZXR1cm4gImluc2Vy
dEZyb21Db21wb3NpdGlvbiJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25JbmRlbnQ6CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpJbmRlbnQ6CiAgICAgICAgIHJldHVybiAiZm9ybWF0SW5kZW50Il9zOwot
ICAgIGNhc2UgRWRpdEFjdGlvbk91dGRlbnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpPdXRkZW50
OgogICAgICAgICByZXR1cm4gImZvcm1hdE91dGRlbnQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9u
U2V0V3JpdGluZ0RpcmVjdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJl
Y3Rpb246CiAgICAgICAgIHJldHVybiAiZm9ybWF0U2V0SW5saW5lVGV4dERpcmVjdGlvbiJfczsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCA0ZmMwY2I3YzdhMzhiMWY0NzQ0MTk1MDlkZDBlOGI0
NjU2OGRlMjUxLi5kZWJjZmYwMjQ1ZWRmMGRlZTdkZmJlZmVkNWY2NDA4MWI1MTJhMzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxp
Y2l0IEVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNp
ZmllZCk7CisgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0g
RWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGNv
bnN0IEZyYW1lJiBmcmFtZSgpIGNvbnN0OwpAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAg
IFZpc2libGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2VsZWN0
aW9uIG1fZW5kaW5nU2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBtX3BhcmVu
dCB7IG51bGxwdHIgfTsKLSAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVkaXRBY3Rp
b25VbnNwZWNpZmllZCB9OworICAgIEVkaXRBY3Rpb24gbV9lZGl0aW5nQWN0aW9uIHsgRWRpdEFj
dGlvbjo6VW5zcGVjaWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgewpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90
ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0
aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29t
bWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZCk7CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhh
c2hTZXQ8Tm9kZSo+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZWI4ZjVkMjMz
YjNmMzY5ZWFlZDY5ZTAyMjRiZTlkMTVkOGRmZTM3Ny4uY2Y1ZGE3OTIxNTRjMmY5MDE5OGM4ZmRi
ZDEyOWEyYmQzOTNkZTg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTM5LDkg
KzEzOSw5IEBAIHN0YXRpYyBTdHJpbmcgaW5wdXRFdmVudERhdGFGb3JFZGl0aW5nU3R5bGVBbmRB
Y3Rpb24oY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsCiAgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgorICAg
IGNhc2UgRWRpdEFjdGlvbjo6U2V0Q29sb3I6CiAgICAgICAgIHJldHVybiBzdHlsZS0+Z2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUNvbG9yKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0
aW5nRGlyZWN0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0V3JpdGluZ0RpcmVjdGlvbjoK
ICAgICAgICAgcmV0dXJuIHN0eWxlLT5nZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5RGlyZWN0
aW9uKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTY5LDcgKzE2OSw3
IEBAIENsZWFyVGV4dENvbW1hbmQ6OkNsZWFyVGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50
KQogCiBFZGl0QWN0aW9uIENsZWFyVGV4dENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAog
ewotICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRlOworICAgIHJldHVybiBFZGl0QWN0aW9uOjpE
ZWxldGU7CiB9CiAKIHZvaWQgQ2xlYXJUZXh0Q29tbWFuZDo6Q3JlYXRlQW5kQXBwbHkoY29uc3Qg
UmVmUHRyPEZyYW1lPiBmcmFtZSkKQEAgLTI5Niw5ICsyOTYsOSBAQCBib29sIEVkaXRvcjo6aGFu
ZGxlVGV4dEV2ZW50KFRleHRFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xpZW50KCkt
PnBlcmZvcm1zVHdvU3RlcFBhc3RlKGV2ZW50LnBhc3RpbmdGcmFnbWVudCgpKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudCgqZXZlbnQucGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC5zaG91
bGRTbWFydFJlcGxhY2UoKSwgZXZlbnQuc2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9uUGFz
dGUsIGV2ZW50Lm1haWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CisgICAgICAgICAgICByZXBsYWNl
U2VsZWN0aW9uV2l0aEZyYWdtZW50KCpldmVudC5wYXN0aW5nRnJhZ21lbnQoKSwgZmFsc2UsIGV2
ZW50LnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC5zaG91bGRNYXRjaFN0eWxlKCksIEVkaXRB
Y3Rpb246OlBhc3RlLCBldmVudC5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOwogICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC5kYXRhKCks
IGZhbHNlLCBldmVudC5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKKyAg
ICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC5kYXRhKCksIGZhbHNlLCBl
dmVudC5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvbjo6UGFzdGUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTYyOSw3ICs2MjksNyBAQCB2b2lkIEVkaXRvcjo6cmVw
bGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChEb2N1bWVudEZyYWdtZW50JiBmcmFnbWVudCwgYm9v
bCBzZWxlYwogICAgICAgICByZXR1cm47CiAKICAgICBBY2Nlc3NpYmlsaXR5UmVwbGFjZWRUZXh0
IHJlcGxhY2VkVGV4dDsKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSAmJiBlZGl0aW5nQWN0aW9uID09IEVkaXRBY3Rpb25QYXN0ZSkKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBlZGl0aW5nQWN0aW9uID09IEVkaXRB
Y3Rpb246OlBhc3RlKQogICAgICAgICByZXBsYWNlZFRleHQgPSBBY2Nlc3NpYmlsaXR5UmVwbGFj
ZWRUZXh0KHNlbGVjdGlvbik7CiAKICAgICBPcHRpb25TZXQ8UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OkNvbW1hbmRPcHRpb24+IG9wdGlvbnMgeyBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJl
dmVudE5lc3RpbmcsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTYW5pdGl6ZUZyYWdtZW50IH07
CkBAIC02NTAsNyArNjUwLDcgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJh
Z21lbnQoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQsIGJvb2wgc2VsZWMKICAgICBpZiAoc2Vs
ZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpICYmIGVkaXRpbmdBY3Rpb24gPT0g
RWRpdEFjdGlvblBhc3RlKSB7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkgJiYgZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uOjpQYXN0ZSkgewogICAgICAg
ICBTdHJpbmcgdGV4dCA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3Np
dGlvblJhbmdlKGNvbW1hbmQtPnZpc2libGVTZWxlY3Rpb25Gb3JJbnNlcnRlZFRleHQoKSk7CiAg
ICAgICAgIHJlcGxhY2VkVGV4dC5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCksIEFYVGV4dEVkaXRUeXBlUGFzdGUsIHRleHQs
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwogICAgICAgICBjb21tYW5kLT5jb21w
b3NpdGlvbigpLT5zZXRSYW5nZURlbGV0ZWRCeVVuYXBwbHkocmVwbGFjZWRUZXh0LnJlcGxhY2Vk
UmFuZ2UoKSk7CkBAIC0xMzg0LDcgKzEzODQsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9y
Q29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogICAgICAgICBTdHJpbmcgdGV4dDsK
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAg
ICAgICAgICB0ZXh0ID0gQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0
aW9uUmFuZ2UobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7Ci0gICAgICAgIGRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0
aW9uQ3V0KTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0
Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb246OkN1dCk7CiAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbkZvckN1dCh0ZXh0LCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlv
bigpKTsKICAgICB9CkBAIC0xNzI3LDcgKzE3MjcsNyBAQCB2b2lkIEVkaXRvcjo6c2V0QmFzZVdy
aXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKICAgICAgICAgYXV0
byYgZm9jdXNlZEZvcm1FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ+KCpmb2N1c2VkRWxlbWVudCk7CiAgICAgICAgIGF1dG8gZGlyZWN0aW9uVmFsdWUgPSBkaXJl
Y3Rpb24gPT0gTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uID8gImx0ciIgOiAicnRsIjsKLSAg
ICAgICAgYXV0byB3cml0aW5nRGlyZWN0aW9uSW5wdXRUeXBlTmFtZSA9IGlucHV0VHlwZU5hbWVG
b3JFZGl0aW5nQWN0aW9uKEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKKyAgICAgICAg
YXV0byB3cml0aW5nRGlyZWN0aW9uSW5wdXRUeXBlTmFtZSA9IGlucHV0VHlwZU5hbWVGb3JFZGl0
aW5nQWN0aW9uKEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb24pOwogICAgICAgICBpZiAo
IWRpc3BhdGNoQmVmb3JlSW5wdXRFdmVudChmb2N1c2VkRm9ybUVsZW1lbnQsIHdyaXRpbmdEaXJl
Y3Rpb25JbnB1dFR5cGVOYW1lLCBkaXJlY3Rpb25WYWx1ZSkpCiAgICAgICAgICAgICByZXR1cm47
CiAKQEAgLTE3MzksNyArMTczOSw3IEBAIHZvaWQgRWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbihXcml0aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIAogICAgIFJlZlB0cjxNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzPiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwog
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgZGlyZWN0aW9uID09
IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA/ICJsdHIiIDogZGlyZWN0aW9uID09IFJpZ2h0
VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbiA/ICJydGwiIDogImluaGVyaXQiLCBmYWxzZSk7Ci0gICAg
YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLmdldCgpLCBFZGl0QWN0aW9uU2V0
V3JpdGluZ0RpcmVjdGlvbik7CisgICAgYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0
eWxlLmdldCgpLCBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uKTsKIH0KIAogV3JpdGlu
Z0RpcmVjdGlvbiBFZGl0b3I6OmJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQo
KSBjb25zdApAQCAtMjQ2MCw3ICsyNDYwLDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGlu
Z3NBZnRlclR5cGluZ1RvV29yZChjb25zdCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKIAog
ICAgICAgICBpZiAoIW1fZnJhbWUuZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dChhdXRvY29ycmVj
dGVkU3RyaW5nLCBtaXNzcGVsbGluZ1JhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5
cGVkKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBs
YWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBF
ZGl0QWN0aW9uSW5zZXJ0KTsKKyAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9u
OjpJbnNlcnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRoZSBjaGFyZXQgb25lIGNoYXJhY3RlciBm
dXJ0aGVyLgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLm1vdmVUbyhtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI4MTgsNyArMjgxOCw3IEBAIHZvaWQgRWRp
dG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nKQogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVjb3JkQXV0b2Nv
cnJlY3Rpb25SZXNwb25zZShBdXRvY29ycmVjdGlvblJlc3BvbnNlOjpSZXZlcnRlZCwgcmVwbGFj
ZWRTdHJpbmcsIHNlbGVjdGlvbi5nZXQoKSk7CiAgICAgVGV4dENoZWNraW5nUGFyYWdyYXBoIHBh
cmFncmFwaCgqc2VsZWN0aW9uKTsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFj
ZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvbkluc2VydCk7CisgICAgcmVwbGFjZVNl
bGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb246
Okluc2VydCk7CiAgICAgYXV0byBjaGFuZ2VkUmFuZ2UgPSBwYXJhZ3JhcGguc3VicmFuZ2UocGFy
YWdyYXBoLmNoZWNraW5nU3RhcnQoKSwgcmVwbGFjZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgIGNo
YW5nZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS5kb2N1bWVudCgpLm1hcmtlcnMoKS5hZGRNYXJr
ZXIoY2hhbmdlZFJhbmdlLnB0cigpLCBEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQsIFN0cmlu
ZygpKTsKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPm1hcmtSZXZlcnNlZChjaGFu
Z2VkUmFuZ2UpOwpAQCAtMzA2NCw3ICszMDY0LDcgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9zZSgp
CiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3RlcnMuCiAgICAgaWYgKCFzaG91
bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246
OlR5cGVkKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0
cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOworICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb246Oklu
c2VydCk7CiB9CiAKIHZvaWQgRWRpdG9yOjphZGRSYW5nZVRvS2lsbFJpbmcoY29uc3QgUmFuZ2Um
IHJhbmdlLCBLaWxsUmluZ0luc2VydGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CmluZGV4IGFiNzc2NDY0YWRiYTc0ZTM3ZTkwY2E0MzY3NmZiNDdkMjY0NTFmZjQuLjIwY2JiYjY4
NzY2YWJkYzQ3MTNiZTNkMzYxN2IxYWQ5NTc3YmVkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aApAQCAtMjAzLDE2ICsyMDMsMTYgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3Jh
bnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnRE
ZWxldGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBF
ZGl0QWN0aW9uID0gRWRpdEFjdGlvbjo6RGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdl
YWJsZVN0eWxlcygpOwogI2VuZGlmCiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5U3R5
bGUoU3R5bGVQcm9wZXJ0aWVzKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyosIEVk
aXRBY3Rpb24gPSBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZCk7CiAgICAgZW51bSBjbGFzcyBDb2xv
ckZpbHRlck1vZGUgeyBJbnZlcnRDb2xvciwgVXNlT3JpZ2luYWxDb2xvciB9OwogICAgIHZvaWQg
YXBwbHlTdHlsZShSZWZQdHI8RWRpdGluZ1N0eWxlPiYmLCBFZGl0QWN0aW9uLCBDb2xvckZpbHRl
ck1vZGUpOwotICAgIHZvaWQgYXBwbHlQYXJhZ3JhcGhTdHlsZShTdHlsZVByb3BlcnRpZXMqLCBF
ZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICB2b2lkIGFwcGx5UGFyYWdy
YXBoU3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246OlVuc3Bl
Y2lmaWVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5U3R5bGVUb1NlbGVjdGlvbihT
dHlsZVByb3BlcnRpZXMqLCBFZGl0QWN0aW9uKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFw
cGx5U3R5bGVUb1NlbGVjdGlvbihSZWY8RWRpdGluZ1N0eWxlPiYmLCBFZGl0QWN0aW9uLCBDb2xv
ckZpbHRlck1vZGUpOwogICAgIHZvaWQgYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKFN0
eWxlUHJvcGVydGllcyosIEVkaXRBY3Rpb24pOwpAQCAtNDAwLDggKzQwMCw4IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBtYXJrKCkgY29uc3Q7IC8vIE1hcmssIHRvIGJl
IHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAgICB2b2lkIHNldE1hcmsoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpOwogCi0gICAgdm9pZCBjb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUoRWRpdGluZ1N0
eWxlJiAsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKFN0eWxlUHJvcGVydGllcyYgLCBF
ZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICB2b2lkIGNvbXB1dGVBbmRT
ZXRUeXBpbmdTdHlsZShFZGl0aW5nU3R5bGUmICwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246OlVu
c3BlY2lmaWVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbXB1dGVBbmRTZXRUeXBpbmdT
dHlsZShTdHlsZVByb3BlcnRpZXMmICwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246OlVuc3BlY2lm
aWVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5RWRpdGluZ1N0eWxlVG9Cb2R5RWxl
bWVudCgpIGNvbnN0OwogICAgIHZvaWQgYXBwbHlFZGl0aW5nU3R5bGVUb0VsZW1lbnQoRWxlbWVu
dCopIGNvbnN0OwogCkBAIC00MjMsOCArNDIzLDggQEAgcHVibGljOgogICAgIHZvaWQgdGV4dERp
ZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdE
aXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0Owog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KERv
Y3VtZW50RnJhZ21lbnQmLCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFj
ZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCwgTWFpbEJs
b2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1
b3RlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChj
b25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChEb2N1bWVudEZyYWdtZW50JiwgYm9vbCBzZWxl
Y3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFj
dGlvbiA9IEVkaXRBY3Rpb246Okluc2VydCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxC
bG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVj
dFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246
Okluc2VydCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZWxlY3Rpb25TdGFydEhhc01hcmtl
ckZvcihEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSwgaW50IGZyb20sIGludCBsZW5ndGgpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcoYm9v
bCBvbmx5SGFuZGxlV29yZHNDb250YWluaW5nU2VsZWN0aW9uKTsKICAgICB2b2lkIGRlbGV0ZWRB
dXRvY29ycmVjdGlvbkF0UG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBjb25zdCBTdHJpbmcmIG9y
aWdpbmFsU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IDRjOTNkNGFiNDQyNjdhMGRjYWQxZmM4MWFmZDU5OTBhZTUxN2UxNTkuLmNkOWVmNzYxYWE5
YTc5Y2U4ZDMzMDJlZTc5ZGZmOTQ5M2MxNzZmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyBib29sIGFwcGx5Q29t
bWFuZFRvRnJhbWUoRnJhbWUmIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgRWRp
dEFjCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgQ29tbWFuZEZyb21ET006CiAgICAg
Y2FzZSBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlOgotICAgICAgICBmcmFtZS5lZGl0
b3IoKS5hcHBseVN0eWxlKFdURk1vdmUoc3R5bGUpLCBFZGl0QWN0aW9uVW5zcGVjaWZpZWQsIEVk
aXRvcjo6Q29sb3JGaWx0ZXJNb2RlOjpVc2VPcmlnaW5hbENvbG9yKTsKKyAgICAgICAgZnJhbWUu
ZWRpdG9yKCkuYXBwbHlTdHlsZShXVEZNb3ZlKHN0eWxlKSwgRWRpdEFjdGlvbjo6VW5zcGVjaWZp
ZWQsIEVkaXRvcjo6Q29sb3JGaWx0ZXJNb2RlOjpVc2VPcmlnaW5hbENvbG9yKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTU5LDcg
KzE1OSw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKEZyYW1lJiBm
cmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5z
ZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVu
dCkKIHsKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgV1RGTW92ZShmcmFnbWVudCksIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvbkluc2VydCkt
PmFwcGx5KCk7CisgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9j
dW1lbnQoKSwgV1RGTW92ZShmcmFnbWVudCksIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2
ZW50TmVzdGluZywgRWRpdEFjdGlvbjo6SW5zZXJ0KS0+YXBwbHkoKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMjM3LDcgKzIzNyw3IEBAIHN0YXRpYyBSZWZQdHI8UmFuZ2U+IHVuaW9uRE9N
UmFuZ2VzKFJhbmdlJiBhLCBSYW5nZSYgYikKIAogc3RhdGljIGJvb2wgZXhlY3V0ZUJhY2tDb2xv
cihGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBz
b3VyY2UsIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3IsIENTU1Byb3BlcnR5QmFja2dyb3Vu
ZENvbG9yLCB2YWx1ZSk7CisgICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBzb3Vy
Y2UsIEVkaXRBY3Rpb246OlNldEJhY2tncm91bmRDb2xvciwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
Q29sb3IsIHZhbHVlKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZUNvcHkoRnJhbWUmIGZyYW1l
LCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCkBAIC0zODMsNyAr
MzgzLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUZpbmRTdHJpbmcoRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFMKIAogc3RhdGljIGJvb2wgZXhlY3V0ZUZv
bnROYW1lKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJh
bWUsIHNvdXJjZSwgRWRpdEFjdGlvblNldEZvbnQsIENTU1Byb3BlcnR5Rm9udEZhbWlseSwgdmFs
dWUpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0
aW9uOjpTZXRGb250LCBDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIHZhbHVlKTsKIH0KIAogc3RhdGlj
IGJvb2wgZXhlY3V0ZUZvbnRTaXplKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5k
U291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTM5MSwxNyArMzkxLDE3IEBA
IHN0YXRpYyBib29sIGV4ZWN1dGVGb250U2l6ZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvCiAgICAgQ1NTVmFsdWVJRCBzaXplOwogICAgIGlmICgh
SFRNTEZvbnRFbGVtZW50Ojpjc3NWYWx1ZUZyb21Gb250U2l6ZU51bWJlcih2YWx1ZSwgc2l6ZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJh
bWUsIHNvdXJjZSwgRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIENTU1Byb3BlcnR5Rm9udFNp
emUsIHNpemUpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBF
ZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCBzaXplKTsK
IH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZUZvbnRTaXplRGVsdGEoRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewot
ICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uQ2hh
bmdlQXR0cmlidXRlcywgQ1NTUHJvcGVydHlXZWJraXRGb250U2l6ZURlbHRhLCB2YWx1ZSk7Cisg
ICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OkNo
YW5nZUF0dHJpYnV0ZXMsIENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0YSwgdmFsdWUpOwog
fQogCiBzdGF0aWMgYm9vbCBleGVjdXRlRm9yZUNvbG9yKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBy
ZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvblNldENvbG9y
LCBDU1NQcm9wZXJ0eUNvbG9yLCB2YWx1ZSk7CisgICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxl
KGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OlNldENvbG9yLCBDU1NQcm9wZXJ0eUNvbG9yLCB2
YWx1ZSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVGb3JtYXRCbG9jayhGcmFtZSYgZnJhbWUs
IEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTUz
OSwyMiArNTM5LDIyIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRVbm9yZGVyZWRMaXN0KEZy
YW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlCiAKIHN0YXRpYyBib29sIGV4
ZWN1dGVKdXN0aWZ5Q2VudGVyKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5UGFy
YWdyYXBoU3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbkNlbnRlciwgQ1NTUHJvcGVydHlU
ZXh0QWxpZ24sICJjZW50ZXIiX3MpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlQYXJhZ3JhcGhT
dHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpDZW50ZXIsIENTU1Byb3BlcnR5VGV4dEFs
aWduLCAiY2VudGVyIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZUp1c3RpZnlGdWxsKEZy
YW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3Ry
aW5nJikKIHsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUoZnJhbWUsIHNv
dXJjZSwgRWRpdEFjdGlvbkp1c3RpZnksIENTU1Byb3BlcnR5VGV4dEFsaWduLCAianVzdGlmeSJf
cyk7CisgICAgcmV0dXJuIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKGZyYW1lLCBzb3VyY2Us
IEVkaXRBY3Rpb246Okp1c3RpZnksIENTU1Byb3BlcnR5VGV4dEFsaWduLCAianVzdGlmeSJfcyk7
CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVKdXN0aWZ5TGVmdChGcmFtZSYgZnJhbWUsIEV2ZW50
KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0
dXJuIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25B
bGlnbkxlZnQsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAibGVmdCJfcyk7CisgICAgcmV0dXJuIGV4
ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OkFsaWdu
TGVmdCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sICJsZWZ0Il9zKTsKIH0KIAogc3RhdGljIGJvb2wg
ZXhlY3V0ZUp1c3RpZnlSaWdodChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNv
dXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVBcHBseVBh
cmFncmFwaFN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25BbGlnblJpZ2h0LCBDU1NQcm9w
ZXJ0eVRleHRBbGlnbiwgInJpZ2h0Il9zKTsKKyAgICByZXR1cm4gZXhlY3V0ZUFwcGx5UGFyYWdy
YXBoU3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbjo6QWxpZ25SaWdodCwgQ1NTUHJvcGVy
dHlUZXh0QWxpZ24sICJyaWdodCJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4
dFdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKQEAgLTU2Miw3ICs1NjIsNyBAQCBzdGF0aWMg
Ym9vbCBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQoRnJhbWUmIGZy
YW1lLCBFdmVudCosIEVkaQogICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBzdHls
ZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBDU1NWYWx1ZUVtYmVkKTsKICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIENTU1ZhbHVlTHRyKTsKLSAgICBmcmFt
ZS5lZGl0b3IoKS5hcHBseVN0eWxlKHN0eWxlLmdldCgpLCBFZGl0QWN0aW9uU2V0V3JpdGluZ0Rp
cmVjdGlvbik7CisgICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRp
dEFjdGlvbjo6U2V0V3JpdGluZ0RpcmVjdGlvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTU3MCw3ICs1NzAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0
aW9uTmF0dXJhbChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQwogewogICAgIFJlZlB0cjxN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNy
ZWF0ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBD
U1NWYWx1ZU5vcm1hbCk7Ci0gICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlTdHlsZShzdHlsZS5nZXQo
KSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24pOworICAgIGZyYW1lLmVkaXRvcigpLmFw
cGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb24pOwog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC01NzksNyArNTc5LDcgQEAgc3RhdGljIGJvb2wgZXhl
Y3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KEZyYW1lJiBmcmFtZSwgRXZl
bnQqLCBFZGkKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gc3R5bGUgPSBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCk7CiAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZVJ0bCk7Ci0gICAgZnJhbWUuZWRpdG9y
KCkuYXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24p
OworICAgIGZyYW1lLmVkaXRvcigpLmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb246
OlNldFdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMDMwLDcg
KzEwMzAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlU3RyaWtldGhyb3VnaChGcmFtZSYgZnJhbWUs
IEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyYwogICAgIFJlZjxFZGl0aW5nU3R5bGU+
IHN0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0U3RyaWtlVGhy
b3VnaENoYW5nZSh0ZXh0RGVjb3JhdGlvbkNoYW5nZUZvclRvZ2dsaW5nKGZyYW1lLmVkaXRvcigp
LCBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAibGluZS10aHJvdWdo
Il9zKSk7CiAgICAgLy8gRklYTUU6IE5lZWRzIGEgbmV3IEVkaXRBY3Rpb24hCi0gICAgcmV0dXJu
IGFwcGx5Q29tbWFuZFRvRnJhbWUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvblVuZGVybGluZSwg
V1RGTW92ZShzdHlsZSkpOworICAgIHJldHVybiBhcHBseUNvbW1hbmRUb0ZyYW1lKGZyYW1lLCBz
b3VyY2UsIEVkaXRBY3Rpb246OlVuZGVybGluZSwgV1RGTW92ZShzdHlsZSkpOwogfQogCiBzdGF0
aWMgYm9vbCBleGVjdXRlU3R5bGVXaXRoQ1NTKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JD
b21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMTA0NywxMiArMTA0NywxMiBA
QCBzdGF0aWMgYm9vbCBleGVjdXRlVXNlQ1NTKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JD
b21tYW5kU291cmNlLCBjb25zdCBTdHJpbgogCiBzdGF0aWMgYm9vbCBleGVjdXRlU3Vic2NyaXB0
KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3Qg
U3RyaW5nJikKIHsKLSAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3VyY2Us
IEVkaXRBY3Rpb25TdWJzY3JpcHQsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgImJhc2VsaW5l
Il9zLCAic3ViIl9zKTsKKyAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3Vy
Y2UsIEVkaXRBY3Rpb246OlN1YnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAiYmFz
ZWxpbmUiX3MsICJzdWIiX3MpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlU3VwZXJzY3JpcHQo
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBT
dHJpbmcmKQogewotICAgIHJldHVybiBleGVjdXRlVG9nZ2xlU3R5bGUoZnJhbWUsIHNvdXJjZSwg
RWRpdEFjdGlvblN1cGVyc2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sICJiYXNlbGlu
ZSJfcywgInN1cGVyIl9zKTsKKyAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBz
b3VyY2UsIEVkaXRBY3Rpb246OlN1cGVyc2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24s
ICJiYXNlbGluZSJfcywgInN1cGVyIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZVN3YXBX
aXRoTWFyayhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3Qg
U3RyaW5nJikKQEAgLTEwNzksMTIgKzEwNzksMTIgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVRha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWEK
IAogc3RhdGljIGJvb2wgZXhlY3V0ZVRvZ2dsZUJvbGQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBl
eGVjdXRlVG9nZ2xlU3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbkJvbGQsIENTU1Byb3Bl
cnR5Rm9udFdlaWdodCwgIm5vcm1hbCJfcywgImJvbGQiX3MpOworICAgIHJldHVybiBleGVjdXRl
VG9nZ2xlU3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbjo6Qm9sZCwgQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCAibm9ybWFsIl9zLCAiYm9sZCJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1
dGVUb2dnbGVJdGFsaWMoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ug
c291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBleGVjdXRlVG9nZ2xlU3R5bGUo
ZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbkl0YWxpY3MsIENTU1Byb3BlcnR5Rm9udFN0eWxlLCAi
bm9ybWFsIl9zLCAiaXRhbGljIl9zKTsKKyAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZy
YW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246Okl0YWxpY3MsIENTU1Byb3BlcnR5Rm9udFN0eWxlLCAi
bm9ybWFsIl9zLCAiaXRhbGljIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZVRyYW5zcG9z
ZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5n
JikKQEAgLTEwOTgsNyArMTA5OCw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVVbmRlcmxpbmUoRnJh
bWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjCiAgICAgUmVm
PEVkaXRpbmdTdHlsZT4gc3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZSgpOwogICAgIFRleHRE
ZWNvcmF0aW9uQ2hhbmdlIGNoYW5nZSA9IHRleHREZWNvcmF0aW9uQ2hhbmdlRm9yVG9nZ2xpbmco
ZnJhbWUuZWRpdG9yKCksIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3Qs
ICJ1bmRlcmxpbmUiX3MpOwogICAgIHN0eWxlLT5zZXRVbmRlcmxpbmVDaGFuZ2UoY2hhbmdlKTsK
LSAgICByZXR1cm4gYXBwbHlDb21tYW5kVG9GcmFtZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9u
VW5kZXJsaW5lLCBXVEZNb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGFwcGx5Q29tbWFuZFRvRnJh
bWUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbjo6VW5kZXJsaW5lLCBXVEZNb3ZlKHN0eWxlKSk7
CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVVbmRvKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQpAQCAtMTExNiw3ICsxMTE2LDcgQEAgc3Rh
dGljIGJvb2wgZXhlY3V0ZVVubGluayhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFu
ZFNvdXJjZSwgY29uc3QgU3RyaW4KIAogc3RhdGljIGJvb2wgZXhlY3V0ZVVuc2NyaXB0KEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5n
JikKIHsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFj
dGlvblVuc2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sICJiYXNlbGluZSJfcyk7Cisg
ICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OlVu
c2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sICJiYXNlbGluZSJfcyk7CiB9CiAKIHN0
YXRpYyBib29sIGV4ZWN1dGVVbnNlbGVjdChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29t
bWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRm9udEF0dHJpYnV0ZUNoYW5nZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
b250QXR0cmlidXRlQ2hhbmdlcy5jcHAKaW5kZXggZWMzZjhmYzZiYjZiODI4MWNlN2IyYzA2YjE4
MjRjODVhYzRhNDA2OS4uNDBiM2Q2MmFiNjBlZWY1ZjVhOWI1Yzc2N2RmNWMwNmI0ODRmYzM1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb250QXR0cmlidXRlQ2hhbmdlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb250QXR0cmlidXRlQ2hhbmdlcy5jcHAK
QEAgLTExMiwxNCArMTEyLDE5IEBAIFJlZjxFZGl0aW5nU3R5bGU+IEZvbnRBdHRyaWJ1dGVDaGFu
Z2VzOjpjcmVhdGVFZGl0aW5nU3R5bGUoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChtX3ZlcnRp
Y2FsQWxpZ24pIHsKLSAgICAgICAgaWYgKCptX3ZlcnRpY2FsQWxpZ24gPT0gVmVydGljYWxBbGln
bjo6U3VwZXIpCisgICAgICAgIHN3aXRjaCAoKm1fdmVydGljYWxBbGlnbikgeworICAgICAgICBj
YXNlIFZlcnRpY2FsQWxpZ25DaGFuZ2U6OlN1cGVyc2NyaXB0OgogICAgICAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFsdWVTdXBlcik7Ci0g
ICAgICAgIGVsc2UgaWYgKCptX3ZlcnRpY2FsQWxpZ24gPT0gVmVydGljYWxBbGlnbjo6U3ViKQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbkNoYW5nZTo6U3Vi
c2NyaXB0OgogICAgICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgQ1NTVmFsdWVTdWIpOwotICAgICAgICBlbHNlIGlmICgqbV92ZXJ0aWNhbEFsaWdu
ID09IFZlcnRpY2FsQWxpZ246OkJhc2VsaW5lKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgVmVydGljYWxBbGlnbkNoYW5nZTo6QmFzZWxpbmU6CiAgICAgICAgICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZUJhc2VsaW5lKTsK
LSAgICAgICAgZWxzZQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGF1
dG8gZWRpdGluZ1N0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoc3R5bGUucHRyKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb250QXR0cmlidXRlQ2hhbmdlcy5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb250QXR0cmlidXRlQ2hhbmdlcy5oCmluZGV4IGI5N2Zk
ZTgwOWFmNTM5Y2MwNGNkYzI3MThjNTE5YWM0ZGE5YTIyNDUuLmNiNjY3YjVjNTBlY2UwMDVlYmUw
OTRkNWIxYjFlOGU2ZTFjNjEwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Rm9udEF0dHJpYnV0ZUNoYW5nZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZvbnRB
dHRyaWJ1dGVDaGFuZ2VzLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMzUsNiArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogCitl
bnVtIGNsYXNzIFZlcnRpY2FsQWxpZ25DaGFuZ2UgOiB1aW50OF90IHsgU3VwZXJzY3JpcHQsIEJh
c2VsaW5lLCBTdWJzY3JpcHQgfTsKKwogY2xhc3MgRm9udENoYW5nZXMgewogcHVibGljOgogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAg
LTYyLDYgKzY0LDkgQEAgcHJpdmF0ZToKIH07CiAKIHN0cnVjdCBGb250U2hhZG93IHsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBGb250
U2hhZG93Jik7CisKICAgICBDb2xvciBjb2xvcjsKICAgICBkb3VibGUgd2lkdGggeyAwIH07CiAg
ICAgZG91YmxlIGhlaWdodCB7IDAgfTsKQEAgLTcwLDcgKzc1LDEwIEBAIHN0cnVjdCBGb250U2hh
ZG93IHsKIAogY2xhc3MgRm9udEF0dHJpYnV0ZUNoYW5nZXMgewogcHVibGljOgotICAgIHZvaWQg
c2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIGFsaWduKSB7IG1fdmVydGljYWxBbGlnbiA9
IGFsaWduOyB9CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgRm9udEF0dHJpYnV0ZUNoYW5nZXMmKTsKKworICAgIHZvaWQgc2V0VmVydGlj
YWxBbGlnbihWZXJ0aWNhbEFsaWduQ2hhbmdlIGFsaWduKSB7IG1fdmVydGljYWxBbGlnbiA9IGFs
aWduOyB9CiAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7
IG1fYmFja2dyb3VuZENvbG9yID0gY29sb3I7IH0KICAgICB2b2lkIHNldEZvcmVncm91bmRDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9mb3JlZ3JvdW5kQ29sb3IgPSBjb2xvcjsgfQogICAg
IHZvaWQgc2V0U2hhZG93KGNvbnN0IEZvbnRTaGFkb3cmIHNoYWRvdykgeyBtX3NoYWRvdyA9IHNo
YWRvdzsgfQpAQCAtODEsNyArODksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVm
PEVkaXRpbmdTdHlsZT4gY3JlYXRlRWRpdGluZ1N0eWxlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0g
ICAgc3RkOjpvcHRpb25hbDxWZXJ0aWNhbEFsaWduPiBtX3ZlcnRpY2FsQWxpZ247CisgICAgc3Rk
OjpvcHRpb25hbDxWZXJ0aWNhbEFsaWduQ2hhbmdlPiBtX3ZlcnRpY2FsQWxpZ247CiAgICAgc3Rk
OjpvcHRpb25hbDxDb2xvcj4gbV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgc3RkOjpvcHRpb25hbDxD
b2xvcj4gbV9mb3JlZ3JvdW5kQ29sb3I7CiAgICAgc3RkOjpvcHRpb25hbDxGb250U2hhZG93PiBt
X3NoYWRvdzsKQEAgLTEyMiw0ICsxMzAsNzIgQEAgYm9vbCBGb250Q2hhbmdlczo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEZvbnRDaGFuZ2VzJiBjaGFuZ2VzKQogICAgIHJldHVybiB0cnVlOwog
fQogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGb250U2hhZG93OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGNvbG9yIDw8IHdpZHRoIDw8
IGhlaWdodCA8PCBibHVyUmFkaXVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9v
bCBGb250U2hhZG93OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRm9udFNoYWRvdyYgc2hhZG93
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hhZG93LmNvbG9yKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGFkb3cud2lkdGgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoYWRvdy5oZWln
aHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNo
YWRvdy5ibHVyUmFkaXVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZvbnRBdHRyaWJ1dGVDaGFu
Z2VzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1f
dmVydGljYWxBbGlnbiA8PCBtX2JhY2tncm91bmRDb2xvciA8PCBtX2ZvcmVncm91bmRDb2xvciA8
PCBtX3NoYWRvdyA8PCBtX3N0cmlrZVRocm91Z2ggPDwgbV91bmRlcmxpbmUgPDwgbV9mb250Q2hh
bmdlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgRm9udEF0dHJpYnV0ZUNo
YW5nZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGb250QXR0cmlidXRlQ2hhbmdlcyYgY2hh
bmdlcykKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNoYW5nZXMubV92ZXJ0aWNhbEFsaWdu
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjaGFu
Z2VzLm1fYmFja2dyb3VuZENvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShjaGFuZ2VzLm1fZm9yZWdyb3VuZENvbG9yKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjaGFuZ2VzLm1fc2hhZG93KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjaGFuZ2Vz
Lm1fc3RyaWtlVGhyb3VnaCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoY2hhbmdlcy5tX3VuZGVybGluZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2hhbmdlcy5tX2ZvbnRDaGFuZ2VzKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlZlcnRpY2FsQWxpZ25DaGFuZ2U+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpWZXJ0aWNhbEFsaWduQ2hhbmdlLAorICAgICAgICBX
ZWJDb3JlOjpWZXJ0aWNhbEFsaWduQ2hhbmdlOjpTdXBlcnNjcmlwdCwKKyAgICAgICAgV2ViQ29y
ZTo6VmVydGljYWxBbGlnbkNoYW5nZTo6QmFzZWxpbmUsCisgICAgICAgIFdlYkNvcmU6OlZlcnRp
Y2FsQWxpZ25DaGFuZ2U6OlN1YnNjcmlwdAorICAgID47Cit9OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmgKaW5kZXggNDJlNDU3MWE0ZTMzODk2MDM4Zjdj
MzM2MTYxMzZmZjVjZWUzZTc4OS4uNzliZWRhZDE3ZTBlNjRjODI1ODIwMTZkNTJlOWI5ZTk2ZjI0
MjFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oCkBA
IC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGZvcm1hdFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgZW5kT2ZTZWxlY3Rpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgZm9ybWF0UmFuZ2UoY29uc3Qg
UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25zdCBQb3NpdGlvbiYgZW5k
T2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYpIG92ZXJyaWRlOwotICAgIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rpb25Gb3JtYXRC
bG9jazsgfQorICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEVkaXRBY3Rpb246OkZvcm1hdEJsb2NrOyB9CiAKICAgICBib29sIG1fZGlkQXBwbHk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCmlu
ZGV4IGMzMGY3NDM5NjIzMjFhZGUxZWM2ZGM2NDQyNzBiOTUxZjc3NmE5ODYuLjkwNzU5YWMxZmVj
MTRhMTI0MTlmNjYzNGU0ZWYzYmE1YWY2OTdmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBJbmRlbnRPdXRkZW50Q29tbWFuZChEb2N1bWVudCYsIEVJbmRlbnRUeXBlKTsK
IAotICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fdHlwZU9mQWN0aW9uID09IEluZGVudCA/IEVkaXRBY3Rpb25JbmRlbnQgOiBFZGl0QWN0aW9u
T3V0ZGVudDsgfQorICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fdHlwZU9mQWN0aW9uID09IEluZGVudCA/IEVkaXRBY3Rpb246OkluZGVudCA6
IEVkaXRBY3Rpb246Ok91dGRlbnQ7IH0KIAogICAgIHZvaWQgaW5kZW50UmVnaW9uKGNvbnN0IFZp
c2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIHZvaWQgb3V0ZGVu
dFJlZ2lvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggMGQxOTA1ZmU4NzI2ZDNkN2E3OWI5ODQzZDcyYzU4Yzc5M2ZmOGVkZC4uMTE5NmU2
MGY2ZDJkOTMyYjQyYjY5YWUxYmJkZWNkMTlkYzNiMjFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTMzLDcgKzMzLDcg
QEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1Ymxp
YyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVh
dGUoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb246Okluc2VydCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RG
TW92ZShub2RlKSwgb2Zmc2V0LCB0ZXh0LCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAppbmRleCA5NzcxMGJlNDBk
ZmY5ZGY5MDE5NzdkNmRiZTA5YjdkNWU5YzNhNTAxLi5jNTcxYmUxZjM0M2I2YmFkMTdiOGVjMTkz
MDNlM2YxNjRiNzg2NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dExpc3RDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RD
b21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHZvaWQgSW5zZXJ0TGlzdENvbW1hbmQ6OmRv
QXBwbHkoKQogCiBFZGl0QWN0aW9uIEluc2VydExpc3RDb21tYW5kOjplZGl0aW5nQWN0aW9uKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV90eXBlID09IE9yZGVyZWRMaXN0ID8gRWRpdEFjdGlvbklu
c2VydE9yZGVyZWRMaXN0IDogRWRpdEFjdGlvbkluc2VydFVub3JkZXJlZExpc3Q7CisgICAgcmV0
dXJuIG1fdHlwZSA9PSBPcmRlcmVkTGlzdCA/IEVkaXRBY3Rpb246Okluc2VydE9yZGVyZWRMaXN0
IDogRWRpdEFjdGlvbjo6SW5zZXJ0VW5vcmRlcmVkTGlzdDsKIH0KIAogdm9pZCBJbnNlcnRMaXN0
Q29tbWFuZDo6ZG9BcHBseUZvclNpbmdsZVBhcmFncmFwaChib29sIGZvcmNlQ3JlYXRlTGlzdCwg
Y29uc3QgSFRNTFF1YWxpZmllZE5hbWUmIGxpc3RUYWcsIFJhbmdlKiBjdXJyZW50U2VsZWN0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
CmluZGV4IGM0MjA1OTYxYzIyZTk0M2E5YTZiYjY2MmVkOThlNWU4YzFiNDk5OTUuLjI1ZDM0M2M4
ZTEzMzE2NDE4ZTc0MDBhZGM4MjVhMGY4Y2U1MTY2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMg
U2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ+IGNyZWF0ZShSZWY8Tm9kZT4mJiBjaGlsZFRvSW5zZXJ0LCBOb2RlJiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLAotICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb246Okluc2VydCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFdURk1vdmUo
Y2hpbGRUb0luc2VydCksIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaApp
bmRleCAwMjg1YWU3Njk2MGM2NmE5MzM1MDVmZDVjMDAyNzZmYWI0YTA1NmMxLi42ODliMjgzNmRj
M2QwODliYjRlNTljMGYwOTI5ZmJlNWI0MWIxNjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaApAQCAtMzMs
NyArMzMsNyBAQCBjbGFzcyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIEluc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4gY3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNl
LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKKyAgICBzdGF0aWMgUmVmPEluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJv
b2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVk
aXRBY3Rpb246Okluc2VydCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9u
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmlu
ZGV4IDc4Yzk1ZGE1NWQ2ZGE1MzhiMWQwZGEwMWU2ZTRjZThiNWM1NzFmZjguLjJjM2JjYzRmMzBm
MGM2OGYzNTY3OWVlYTBkMmZhZjA1YjNiNTk4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmgKQEAgLTQ4LDEyICs0OCwxMiBAQCBwdWJsaWM6CiAgICAgfTsK
IAogICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxz
ZSwKLSAgICAgICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGlu
Z0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRB
Y3Rpb25JbnNlcnQpCisgICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFs
YW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24gPSBFZGl0QWN0aW9uOjpJbnNlcnQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCByZWJhbGFuY2VUeXBlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBSZWY8VGV4dEluc2VydGlvbk1hcmtlclN1cHBs
aWVyPiYmIG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhN
YXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUmVm
PFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4mJiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbjo6SW5zZXJ0KQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIFdURk1v
dmUobWFya2VyU3VwcGxpZXIpLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCA0ODZkODVhYTU5
NjY4YWM5OTBlNjJmM2VlMGNjNWU2MjFmMmY1OTE0Li41ZTUwMzczMzZhMzQxOGEwMzgyNzU1NjAw
NDQwNzZhYWM2Nzk3ODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxl
Y3Rpb25Db21tYW5kLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIE1vdmVTZWxlY3Rpb25Db21t
YW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICB7Ci0gICAgICAgIGF1dG8gZGVsZXRlU2VsZWN0
aW9uID0gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIG1fc21hcnRE
ZWxldGUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBFZGl0QWN0aW9uRGVsZXRlQnlEcmFnKTsK
KyAgICAgICAgYXV0byBkZWxldGVTZWxlY3Rpb24gPSBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgbV9zbWFydERlbGV0ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUs
IEVkaXRBY3Rpb246OkRlbGV0ZUJ5RHJhZyk7CiAgICAgICAgIGRlbGV0ZVNlbGVjdGlvbi0+c2V0
UGFyZW50KHRoaXMpOwogICAgICAgICBkZWxldGVTZWxlY3Rpb24tPmFwcGx5KCk7CiAgICAgICAg
IG1fY29tbWFuZHMuYXBwZW5kKFdURk1vdmUoZGVsZXRlU2VsZWN0aW9uKSk7CkBAIC04Nyw3ICs4
Nyw3IEBAIHZvaWQgTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICBvcHRp
b25zLmFkZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U21hcnRSZXBsYWNlKTsKIAogICAgIHsK
LSAgICAgICAgYXV0byByZXBsYWNlU2VsZWN0aW9uID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBXVEZNb3ZlKG1fZnJhZ21lbnQpLCBvcHRpb25zLCBFZGl0QWN0
aW9uSW5zZXJ0RnJvbURyb3ApOworICAgICAgICBhdXRvIHJlcGxhY2VTZWxlY3Rpb24gPSBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIFdURk1vdmUobV9mcmFnbWVu
dCksIG9wdGlvbnMsIEVkaXRBY3Rpb246Okluc2VydEZyb21Ecm9wKTsKICAgICAgICAgcmVwbGFj
ZVNlbGVjdGlvbi0+c2V0UGFyZW50KHRoaXMpOwogICAgICAgICByZXBsYWNlU2VsZWN0aW9uLT5h
cHBseSgpOwogICAgICAgICBtX2NvbW1hbmRzLmFwcGVuZChXVEZNb3ZlKHJlcGxhY2VTZWxlY3Rp
b24pKTsKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBs
eSgpCiAKIEVkaXRBY3Rpb24gTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBj
b25zdAogewotICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRlQnlEcmFnOworICAgIHJldHVybiBF
ZGl0QWN0aW9uOjpEZWxldGVCeURyYWc7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmgKaW5kZXggYTQ5M2Iz
YWJmNzMzOTI3YTVkY2IyOTUyN2U1NDEyOTE2ZmVlYWI4Ni4uNjkxMjAzODdmNGUxN2U5MTBmZWE2
NzdjMzUwNWM3ZTRhMGFjM2EzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVGb3JtYXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVG
b3JtYXRDb21tYW5kLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBS
ZW1vdmVGb3JtYXRDb21tYW5kKERvY3VtZW50Jik7CiAKICAgICB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKLSAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7IH0KKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZDsgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1v
dmVOb2RlQ29tbWFuZC5oCmluZGV4IDBjNzQwNzJkMDU3MzFkZjA0ODA4MzdlNWQ0M2RkMTJmZGZj
MmM5NmMuLjMxNmUyYTQ5Nzc2NzA1OTQ4ZTE1NjQyNTlkNWQyYjE2M2VkZDE3MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKQEAgLTMxLDcgKzMxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1vdmVOb2RlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlQ29t
bWFuZD4gY3JlYXRlKFJlZjxOb2RlPiYmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpCisgICAgc3RhdGljIFJlZjxS
ZW1vdmVOb2RlQ29tbWFuZD4gY3JlYXRlKFJlZjxOb2RlPiYmIG5vZGUsIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVDb21tYW5kKFdURk1v
dmUobm9kZSksIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0
aW9uKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
UmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
UmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwCmluZGV4IDViMzRkMDY0MzZhOThiNWM5YmY3MmRlYzJl
ZDc0YmVkNjAxMjhjZWUuLjczYThjZTNhYzRmMmMxMjI5ZjU5ZjUyZDEzZjJhNGNkODY1MzQwOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVJhbmdlV2l0aFRleHRD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VSYW5nZVdpdGhU
ZXh0Q29tbWFuZC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kOjpSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQo
UmVmUHRyPFJhbmdlPiByYW5nZVRvQmVSZXBsYWNlZCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQocmFuZ2VUb0JlUmVwbGFjZWQtPnN0YXJ0Q29udGFpbmVy
KCkuZG9jdW1lbnQoKSwgRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50KQorICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQocmFuZ2VUb0JlUmVwbGFjZWQtPnN0YXJ0Q29udGFpbmVyKCkuZG9jdW1l
bnQoKSwgRWRpdEFjdGlvbjo6SW5zZXJ0UmVwbGFjZW1lbnQpCiAgICAgLCBtX3JhbmdlVG9CZVJl
cGxhY2VkKHJhbmdlVG9CZVJlcGxhY2VkKQogICAgICwgbV90ZXh0KHRleHQpCiB7CkBAIC02OCw3
ICs2OCw3IEBAIHZvaWQgUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kOjpkb0FwcGx5KCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoU2V0U2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKHNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkpKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIFdURk1vdmUobV90ZXh0RnJhZ21lbnQp
LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZSwgRWRpdEFjdGlvblBhc3RlKSk7
CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBXVEZNb3ZlKG1fdGV4dEZyYWdtZW50KSwgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6Ok1hdGNoU3R5bGUsIEVkaXRBY3Rpb246OlBhc3RlKSk7CiB9CiAKIFN0cmluZyBS
ZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQ6OmlucHV0RXZlbnREYXRhKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggNjZkODZhYzE1Y2ViMTIxNDg5NjBlNjkxY2M4YWVjNGViMzkxNDIwMy4uMTI1ZWIzZWE0M2Jl
ZDNjNzg3YzY3OTg5NWYxZTM5ZWIwMWMyNGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTE0MTIsNyArMTQxMiw3IEBA
IHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNvbXBsZXRlSFRNTFJlcGxhY2VtZW50KGNv
bnN0IFBvc2l0aW9uICZsYXN0UG9zaXRpCiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBlZGl0aW5nQWN0
aW9uKCkgPT0gRWRpdEFjdGlvblBhc3RlKQorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpICYmIGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uOjpQYXN0ZSkK
ICAgICAgICAgbV92aXNpYmxlU2VsZWN0aW9uRm9ySW5zZXJ0ZWRUZXh0ID0gVmlzaWJsZVNlbGVj
dGlvbihzdGFydCwgZW5kKTsKIAogICAgIGlmIChtX3NlbGVjdFJlcGxhY2VtZW50KQpAQCAtMTU4
NCw3ICsxNTg0LDcgQEAgYm9vbCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cGVyZm9ybVRyaXZp
YWxSZXBsYWNlKGNvbnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmIGYKIAogICAgIFZpc2libGVTZWxl
Y3Rpb24gc2VsZWN0aW9uQWZ0ZXJSZXBsYWNlKG1fc2VsZWN0UmVwbGFjZW1lbnQgPyBzdGFydCA6
IGVuZCwgZW5kKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpICYmIGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uUGFzdGUpCisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgZWRpdGluZ0FjdGlvbigpID09IEVk
aXRBY3Rpb246OlBhc3RlKQogICAgICAgICBtX3Zpc2libGVTZWxlY3Rpb25Gb3JJbnNlcnRlZFRl
eHQgPSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0LCBlbmQpOwogCiAgICAgc2V0RW5kaW5nU2VsZWN0
aW9uKHNlbGVjdGlvbkFmdGVyUmVwbGFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggNThjN2U5NGE0OGI5ZDdjZTQ1ZjgzZjBj
YzlhYmE0OGVlMzEwMDJkZi4uYTI1ODFjYmEwNmI3ZjQwYTY5NDQ5Y2JmYjc1ZmNkOGE4NTMwY2Ey
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIElnbm9yZU1haWxCbG9ja3F1
b3RlID0gMSA8PCA2LAogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4mJiBmcmFnbWVudCwgT3B0aW9uU2V0PENvbW1hbmRPcHRpb24+IG9wdGlvbnMsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCisgICAgc3RhdGljIFJlZjxSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIE9wdGlvblNldDxDb21tYW5kT3B0aW9uPiBvcHRp
b25zLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uOjpJbnNlcnQpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChk
b2N1bWVudCwgV1RGTW92ZShmcmFnbWVudCksIG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25D
b21tYW5kLmNwcAppbmRleCAzMzU3ZTBhMjc2ZGJlMDljOWNkZmE3YmU5NTc5OTEyOGU3Njk0NDgw
Li44NzBkNDQ1MmY2MTJjNDY1MDg1MDY4YTVjODMyOTE3NjY1ZTAyNDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiBTcGVsbGluZ0NvcnJlY3Rpb25Db21t
YW5kOjpTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kKFJhbmdlJiByYW5nZVRvQmVDb3JyZWN0ZWQs
IGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKHJh
bmdlVG9CZUNvcnJlY3RlZC5zdGFydENvbnRhaW5lcigpLmRvY3VtZW50KCksIEVkaXRBY3Rpb25J
bnNlcnRSZXBsYWNlbWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKHJhbmdlVG9CZUNv
cnJlY3RlZC5zdGFydENvbnRhaW5lcigpLmRvY3VtZW50KCksIEVkaXRBY3Rpb246Okluc2VydFJl
cGxhY2VtZW50KQogICAgICwgbV9yYW5nZVRvQmVDb3JyZWN0ZWQocmFuZ2VUb0JlQ29ycmVjdGVk
KQogICAgICwgbV9zZWxlY3Rpb25Ub0JlQ29ycmVjdGVkKG1fcmFuZ2VUb0JlQ29ycmVjdGVkKQog
ICAgICwgbV9jb3JyZWN0aW9uKGNvcnJlY3Rpb24pCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBT
cGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShTcGVsbGluZ0NvcnJlY3Rpb25SZWNvcmRVbmRvQ29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIG1fY29ycmVjdGVkLCBtX2NvcnJlY3Rpb24pKTsKICNlbmRpZgogCi0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCBXVEZNb3ZlKG1fY29ycmVjdGlvbkZyYWdtZW50KSwgUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Ok1hdGNoU3R5bGUsIEVkaXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGTW92
ZShtX2NvcnJlY3Rpb25GcmFnbWVudCksIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpNYXRjaFN0
eWxlLCBFZGl0QWN0aW9uOjpQYXN0ZSkpOwogfQogCiBTdHJpbmcgU3BlbGxpbmdDb3JyZWN0aW9u
Q29tbWFuZDo6aW5wdXRFdmVudERhdGEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmgKaW5kZXggMTBkOWFkYjA4M2ZjM2E3N2Q4
N2EzZjJjYzM0MTNhNGJjMmQyMjZlNS4uNjc0NDVmMGY0MGFjMTM5NzQ1NTJmYWY4YjAwNDg4NDYx
YWNmMTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SW5zZXJ0aW9u
QmFzZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJbnNlcnRpb25C
YXNlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0
SW5zZXJ0aW9uQmFzZUNvbW1hbmQoKSB7IH07CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBU
ZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlv
blVuc3BlY2lmaWVkKTsKKyAgICBleHBsaWNpdCBUZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQoRG9j
dW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQpOwogICAgIHN0YXRp
YyB2b2lkIGFwcGx5VGV4dEluc2VydGlvbkNvbW1hbmQoRnJhbWUqLCBUZXh0SW5zZXJ0aW9uQmFz
ZUNvbW1hbmQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb25Gb3JJbnNlcnRpb24s
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbik7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCBiOTRkZjVhMWI2OTIzN2U3NGIx
ZDA1ZTI0MDQyNjg1ZTA5MTY1ZWFmLi42YjE0ZmQ5MGQ1ZGYyZmM4ZjRhMzdiNzZmZjkxYmQyYjU3
MzUzZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTgz
LDU4ICs4Myw1OCBAQCBzdGF0aWMgaW5saW5lIEVkaXRBY3Rpb24gZWRpdEFjdGlvbkZvclR5cGlu
Z0NvbW1hbmQoVHlwaW5nQ29tbWFuZDo6RVR5cGluZ0NvbW1hbgogewogICAgIGlmIChjb21wb3Np
dGlvblR5cGUgPT0gVHlwaW5nQ29tbWFuZDo6VGV4dENvbXBvc2l0aW9uUGVuZGluZykgewogICAg
ICAgICBpZiAoY29tbWFuZCA9PSBUeXBpbmdDb21tYW5kOjpJbnNlcnRUZXh0KQotICAgICAgICAg
ICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9zaXRpb247CisgICAg
ICAgICAgICByZXR1cm4gRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9u
OwogICAgICAgICBpZiAoY29tbWFuZCA9PSBUeXBpbmdDb21tYW5kOjpEZWxldGVTZWxlY3Rpb24p
Ci0gICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3Np
dGlvbjsKKyAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVQZW5kaW5n
Q29tcG9zaXRpb247CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAogICAg
IGlmIChjb21wb3NpdGlvblR5cGUgPT0gVHlwaW5nQ29tbWFuZDo6VGV4dENvbXBvc2l0aW9uRmlu
YWwpIHsKICAgICAgICAgaWYgKGNvbW1hbmQgPT0gVHlwaW5nQ29tbWFuZDo6SW5zZXJ0VGV4dCkK
LSAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlv
bjsKKyAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRGaW5hbENvbXBv
c2l0aW9uOwogICAgICAgICBpZiAoY29tbWFuZCA9PSBUeXBpbmdDb21tYW5kOjpEZWxldGVTZWxl
Y3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUZpbmFsQ29t
cG9zaXRpb247CisgICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRmlu
YWxDb21wb3NpdGlvbjsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAg
ICAgc3dpdGNoIChjb21tYW5kKSB7CiAgICAgY2FzZSBUeXBpbmdDb21tYW5kOjpEZWxldGVTZWxl
Y3Rpb246Ci0gICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlU2VsZWN0aW9uOwor
ICAgICAgICByZXR1cm4gRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlU2VsZWN0aW9uOwogICAgIGNh
c2UgVHlwaW5nQ29tbWFuZDo6RGVsZXRlS2V5OiB7CiAgICAgICAgIGlmIChncmFudWxhcml0eSA9
PSBXb3JkR3JhbnVsYXJpdHkpCi0gICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZ0Rl
bGV0ZVdvcmRCYWNrd2FyZDsKKyAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdE
ZWxldGVXb3JkQmFja3dhcmQ7CiAgICAgICAgIGlmIChncmFudWxhcml0eSA9PSBMaW5lQm91bmRh
cnkpCi0gICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVCYWNrd2Fy
ZDsKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVCYWNrd2FyZDsKKyAgICAg
ICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lQmFja3dhcmQ7CisgICAg
ICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVCYWNrd2FyZDsKICAgICB9CiAgICAg
Y2FzZSBUeXBpbmdDb21tYW5kOjpGb3J3YXJkRGVsZXRlS2V5OgogICAgICAgICBpZiAoZ3JhbnVs
YXJpdHkgPT0gV29yZEdyYW51bGFyaXR5KQotICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25U
eXBpbmdEZWxldGVXb3JkRm9yd2FyZDsKKyAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpU
eXBpbmdEZWxldGVXb3JkRm9yd2FyZDsKICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09IExpbmVC
b3VuZGFyeSkKLSAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUZv
cndhcmQ7Ci0gICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRm9yd2FyZDsKKyAg
ICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lRm9yd2FyZDsKKyAg
ICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZvcndhcmQ7CiAgICAgY2FzZSBU
eXBpbmdDb21tYW5kOjpJbnNlcnRUZXh0OgotICAgICAgICByZXR1cm4gaXNBdXRvY29tcGxldGlv
biA/IEVkaXRBY3Rpb25JbnNlcnRSZXBsYWNlbWVudCA6IEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRU
ZXh0OworICAgICAgICByZXR1cm4gaXNBdXRvY29tcGxldGlvbiA/IEVkaXRBY3Rpb246Okluc2Vy
dFJlcGxhY2VtZW50IDogRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0VGV4dDsKICAgICBjYXNlIFR5
cGluZ0NvbW1hbmQ6Okluc2VydExpbmVCcmVhazoKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25U
eXBpbmdJbnNlcnRMaW5lQnJlYWs7CisgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdJ
bnNlcnRMaW5lQnJlYWs7CiAgICAgY2FzZSBUeXBpbmdDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3I6CiAgICAgY2FzZSBUeXBpbmdDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JJblF1b3RlZENvbnRlbnQ6Ci0gICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0
UGFyYWdyYXBoOworICAgICAgICByZXR1cm4gRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGFyYWdy
YXBoOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7
CisgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZDsKICAgICB9CiB9CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBlZGl0QWN0aW9uSXNEZWxldGVCeVR5cGluZyhFZGl0QWN0aW9uIGFj
dGlvbikKIHsKICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2UgRWRpdEFjdGlvblR5cGlu
Z0RlbGV0ZVNlbGVjdGlvbjoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVCYWNrd2Fy
ZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVXb3JkQmFja3dhcmQ6Ci0gICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJkOgotICAgIGNhc2UgRWRpdEFjdGlv
blR5cGluZ0RlbGV0ZUZvcndhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29y
ZEZvcndhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVTZWxlY3Rpb246CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpUeXBpbmdEZWxldGVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZVdvcmRCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUxp
bmVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZvcndhcmQ6Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKKyAgICBjYXNlIEVk
aXRBY3Rpb246OlR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkOgogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MDEsMTcgKzQwMSwxNyBA
QCBTdHJpbmcgVHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudFR5cGVOYW1lKCkgY29uc3QKIAogYm9v
bCBUeXBpbmdDb21tYW5kOjppc0JlZm9yZUlucHV0RXZlbnRDYW5jZWxhYmxlKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9jdXJyZW50VHlwaW5nRWRpdEFjdGlvbiAhPSBFZGl0QWN0aW9uVHlwaW5n
SW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uICYmIG1fY3VycmVudFR5cGluZ0VkaXRBY3Rpb24gIT0g
RWRpdEFjdGlvblR5cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjsKKyAgICByZXR1cm4gbV9j
dXJyZW50VHlwaW5nRWRpdEFjdGlvbiAhPSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQZW5kaW5n
Q29tcG9zaXRpb24gJiYgbV9jdXJyZW50VHlwaW5nRWRpdEFjdGlvbiAhPSBFZGl0QWN0aW9uOjpU
eXBpbmdEZWxldGVQZW5kaW5nQ29tcG9zaXRpb247CiB9CiAKIFN0cmluZyBUeXBpbmdDb21tYW5k
OjppbnB1dEV2ZW50RGF0YSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX2N1cnJlbnRUeXBpbmdF
ZGl0QWN0aW9uKSB7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0VGV4dDoKLSAgICBj
YXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9zaXRpb246Ci0gICAgY2FzZSBF
ZGl0QWN0aW9uVHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlR5cGluZ0luc2VydFRleHQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQ
ZW5kaW5nQ29tcG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRGaW5h
bENvbXBvc2l0aW9uOgogICAgICAgICByZXR1cm4gbV9jdXJyZW50VGV4dFRvSW5zZXJ0OwotICAg
IGNhc2UgRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
SW5zZXJ0UmVwbGFjZW1lbnQ6CiAgICAgICAgIHJldHVybiBpc0VkaXRpbmdUZXh0QXJlYU9yVGV4
dElucHV0KCkgPyBtX2N1cnJlbnRUZXh0VG9JbnNlcnQgOiBTdHJpbmcoKTsKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0RXZlbnREYXRhKCk7
CkBAIC00MjAsNyArNDIwLDcgQEAgU3RyaW5nIFR5cGluZ0NvbW1hbmQ6OmlucHV0RXZlbnREYXRh
KCkgY29uc3QKIAogUmVmUHRyPERhdGFUcmFuc2Zlcj4gVHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVu
dERhdGFUcmFuc2ZlcigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fY3VycmVudFR5cGluZ0VkaXRBY3Rp
b24gIT0gRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50IHx8IGlzRWRpdGluZ1RleHRBcmVhT3JU
ZXh0SW5wdXQoKSkKKyAgICBpZiAobV9jdXJyZW50VHlwaW5nRWRpdEFjdGlvbiAhPSBFZGl0QWN0
aW9uOjpJbnNlcnRSZXBsYWNlbWVudCB8fCBpc0VkaXRpbmdUZXh0QXJlYU9yVGV4dElucHV0KCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgU3RyaW5nQnVpbGRlciBodG1sVGV4dDsK
QEAgLTU0OCw3ICs1NDgsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRo
b3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdAogICAgICAgICByZXR1
cm47CiAKICAgICBhdXRvIGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9jb21wb3NpdGlvblR5
cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VM
ZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFu
Y2VBbGxXaGl0ZXNwYWNlcywgRWRpdEFjdGlvblR5cGluZ0luc2VydFRleHQpOworICAgICAgICBt
X2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1h
bmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENv
bW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzLCBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRU
ZXh0KTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFdURk1vdmUoY29tbWFuZCksIGVu
ZGluZ1NlbGVjdGlvbigpKTsKIApAQCAtNTgzLDcgKzU4Myw3IEBAIHZvaWQgVHlwaW5nQ29tbWFu
ZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkKICAgICBpZiAoIXdpbGxBZGRUeXBpbmdUb09w
ZW5Db21tYW5kKEluc2VydFBhcmFncmFwaFNlcGFyYXRvciwgUGFyYWdyYXBoR3JhbnVsYXJpdHkp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2UsIGZhbHNl
LCBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0UGFyYWdyYXBoKSk7CisgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGFyYWdyYXBoKSk7CiAg
ICAgdHlwaW5nQWRkZWRUb09wZW5Db21tYW5kKEluc2VydFBhcmFncmFwaFNlcGFyYXRvcik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5saW5rQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKaW5kZXggMTdjNTBhOWEzNDVj
NWVkOWNjYTRlY2JjYjlkNTIwMTJiNDk5Mzc2My4uMTg4YTUzMTY0YzdhOGQ5NGQyYmI1NjcxMTk1
NzMyZjdhZjU1NjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKQEAg
LTQwLDcgKzQwLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBVbmxpbmtDb21tYW5kKERvY3Vt
ZW50Jik7CiAKICAgICB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFZGl0QWN0aW9uVW5saW5rOyB9
CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
RWRpdEFjdGlvbjo6VW5saW5rOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCmlu
ZGV4IDYzMmZkYWJlYzJmNTc5ODVhMzI4OTExOWQ0MTgxOGQ5YTNiYjFmOGUuLjgzZWYxOWQ4M2Fl
NzlhMjk2Mjc1YTM2YzE3NzlhYWJmYTNkMzFjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCkBAIC00MCw3ICs0MCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpY3RhdGlvbkNvbW1hbmRJT1M6OkRpY3RhdGlvbkNvbW1h
bmRJT1MoRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8VmVjdG9yPFN0cmluZz4+JiYgZGljdGF0
aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSkKLSAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKGRvY3VtZW50LCBFZGl0QWN0aW9uRGljdGF0aW9uKQorICAgIDogQ29tcG9zaXRlRWRp
dENvbW1hbmQoZG9jdW1lbnQsIEVkaXRBY3Rpb246OkRpY3RhdGlvbikKICAgICAsIG1fZGljdGF0
aW9uUGhyYXNlcyhXVEZNb3ZlKGRpY3RhdGlvblBocmFzZXMpKQogICAgICwgbV9tZXRhZGF0YShX
VEZNb3ZlKG1ldGFkYXRhKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aW9zL0VkaXRvcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5t
bQppbmRleCBjOTliMWU0NzBhMTZiYTVhNmI5ZmE0NGM0Y2QzNTZhNTBmNjBhMTc5Li5hMTc4OTJi
NTVhNmQ0YWZjNWVjMGNjNTNlYzMzZDIwODQ4MTMzNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9pb3MvRWRpdG9ySU9TLm1tCkBAIC0xNjMsOCArMTYzLDggQEAgdm9pZCBFZGl0b3I6OnJlbW92
ZVVuY2hhbmdlYWJsZVN0eWxlcygpCiAgICAgZGVmYXVsdFN0eWxlLT5yZW1vdmVQcm9wZXJ0eShD
U1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKTsKICAgICBkZWZhdWx0U3R5bGUtPnJlbW92ZVByb3Bl
cnR5KENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QpOyAvLyBpbXBsZW1l
bnRzIHVuZGVybGluZQogCi0gICAgLy8gRklYTUUgYWRkIEVkaXRBY3Rpb25NYXRjaFN0bHllIDxy
ZGFyOi8vcHJvYmxlbS85MTU2NTA3PiBVbmRvIHJpY2ggdGV4dCdzIHBhc3RlICYgbWF0Y2ggc3R5
bGUgc2hvdWxkIHNheSAiVW5kbyBNYXRjaCBTdHlsZSIKLSAgICBhcHBseVN0eWxlVG9TZWxlY3Rp
b24oZGVmYXVsdFN0eWxlLmdldCgpLCBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcyk7CisgICAg
Ly8gRklYTUUgYWRkIEVkaXRBY3Rpb246Ok1hdGNoU3RseWUgPHJkYXI6Ly9wcm9ibGVtLzkxNTY1
MDc+IFVuZG8gcmljaCB0ZXh0J3MgcGFzdGUgJiBtYXRjaCBzdHlsZSBzaG91bGQgc2F5ICJVbmRv
IE1hdGNoIFN0eWxlIgorICAgIGFwcGx5U3R5bGVUb1NlbGVjdGlvbihkZWZhdWx0U3R5bGUuZ2V0
KCksIEVkaXRBY3Rpb246OkNoYW5nZUF0dHJpYnV0ZXMpOwogfQogCiBzdGF0aWMgdm9pZCBnZXRJ
bWFnZShFbGVtZW50JiBpbWFnZUVsZW1lbnQsIFJlZlB0cjxJbWFnZT4mIGltYWdlLCBDYWNoZWRJ
bWFnZSomIGNhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApp
bmRleCA1ZDkyNzQ2ZWFhNmRiNmI1ZGI1NDE0ODViMDhhZGQxM2RhNDY5ZDlmLi5mNDQwNzA1MDFm
MzdkOGY3YzQ5MzczOGNkNWY4MTc1NzA3OWRmMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcApAQCAtNTY5LDcgKzU2OSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNv
bmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICBpZiAoIWlu
bmVyRnJhbWUtPmVkaXRvcigpLnNob3VsZEFwcGx5U3R5bGUoc3R5bGUucHRyKCksIGlubmVyUmFu
Z2UuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBtX2NsaWVudC53
aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0
LCBkcmFnRGF0YSk7Ci0gICAgICAgIGlubmVyRnJhbWUtPmVkaXRvcigpLmFwcGx5U3R5bGUoc3R5
bGUucHRyKCksIEVkaXRBY3Rpb25TZXRDb2xvcik7CisgICAgICAgIGlubmVyRnJhbWUtPmVkaXRv
cigpLmFwcGx5U3R5bGUoc3R5bGUucHRyKCksIEVkaXRBY3Rpb246OlNldENvbG9yKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC02MjIsNyArNjIyLDcgQEAgYm9vbCBEcmFnQ29u
dHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTbWFy
dFJlcGxhY2UpOwogICAgICAgICAgICAgICAgIGlmIChjaG9zZVBsYWluVGV4dCkKICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9ucy5hZGQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5
bGUpOwotICAgICAgICAgICAgICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKm1f
ZG9jdW1lbnRVbmRlck1vdXNlLCBmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBvcHRpb25zLCBF
ZGl0QWN0aW9uSW5zZXJ0RnJvbURyb3ApLT5hcHBseSgpOworICAgICAgICAgICAgICAgIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBmcmFnbWVu
dC5yZWxlYXNlTm9uTnVsbCgpLCBvcHRpb25zLCBFZGl0QWN0aW9uOjpJbnNlcnRGcm9tRHJvcCkt
PmFwcGx5KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpAQCAtNjM5
LDcgKzYzOSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3Qg
RHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAg
aWYgKHNldFNlbGVjdGlvblRvRHJhZ0NhcmV0KGlubmVyRnJhbWUuZ2V0KCksIGRyYWdDYXJldCwg
cmFuZ2UsIHBvaW50KSkKLSAgICAgICAgICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBmcmFnbWVudC5nZXQoKSwgeyBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6U2VsZWN0UmVwbGFjZW1lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpN
YXRjaFN0eWxlLCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcgfSwgRWRp
dEFjdGlvbkluc2VydEZyb21Ecm9wKS0+YXBwbHkoKTsKKyAgICAgICAgICAgIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBmcmFnbWVudC5nZXQo
KSwgeyBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U2VsZWN0UmVwbGFjZW1lbnQsIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpNYXRjaFN0eWxlLCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJl
dmVudE5lc3RpbmcgfSwgRWRpdEFjdGlvbjo6SW5zZXJ0RnJvbURyb3ApLT5hcHBseSgpOwogICAg
IH0KIAogICAgIGlmIChyb290RWRpdGFibGVFbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW0KaW5k
ZXggOTUxZWIzYTBiNDBkOTE5OWM1YTJhZWFkZTZiZTdkMTk3NjU4OWUwMS4uMjYwNDdhYjliOTk2
ZGRmNzJkZjM0ZjEyYTEwZjQzNjU1NGQ3MzhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5tbQpAQCAtMTQ0
LDExICsxNDQsMTEgQEAgRm9udEF0dHJpYnV0ZUNoYW5nZXMgY29tcHV0ZWRGb250QXR0cmlidXRl
Q2hhbmdlcyhOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciwgaWQKICAgICBpbnQgY29udmVydGVk
U3VwZXJzY3JpcHRBID0gW1tjb252ZXJ0ZWRBdHRyaWJ1dGVzQSBvYmplY3RGb3JLZXk6TlNTdXBl
cnNjcmlwdEF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKICAgICBpZiAoY29udmVydGVkU3VwZXJz
Y3JpcHRBID09IFtbY29udmVydGVkQXR0cmlidXRlc0Igb2JqZWN0Rm9yS2V5Ok5TU3VwZXJzY3Jp
cHRBdHRyaWJ1dGVOYW1lXSBpbnRWYWx1ZV0pIHsKICAgICAgICAgaWYgKGNvbnZlcnRlZFN1cGVy
c2NyaXB0QSA+IDApCi0gICAgICAgICAgICBjaGFuZ2VzLnNldFZlcnRpY2FsQWxpZ24oVmVydGlj
YWxBbGlnbjo6U3VwZXIpOworICAgICAgICAgICAgY2hhbmdlcy5zZXRWZXJ0aWNhbEFsaWduKFZl
cnRpY2FsQWxpZ25DaGFuZ2U6OlN1cGVyc2NyaXB0KTsKICAgICAgICAgZWxzZSBpZiAoY29udmVy
dGVkU3VwZXJzY3JpcHRBIDwgMCkKLSAgICAgICAgICAgIGNoYW5nZXMuc2V0VmVydGljYWxBbGln
bihWZXJ0aWNhbEFsaWduOjpTdWIpOworICAgICAgICAgICAgY2hhbmdlcy5zZXRWZXJ0aWNhbEFs
aWduKFZlcnRpY2FsQWxpZ25DaGFuZ2U6OlN1YnNjcmlwdCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGNoYW5nZXMuc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduOjpCYXNlbGluZSk7
CisgICAgICAgICAgICBjaGFuZ2VzLnNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbkNoYW5n
ZTo6QmFzZWxpbmUpOwogICAgIH0KIAogICAgIGludCBjb252ZXJ0ZWRTdHJpa2VUaHJvdWdoQSA9
IFtbY29udmVydGVkQXR0cmlidXRlc0Egb2JqZWN0Rm9yS2V5Ok5TU3RyaWtldGhyb3VnaFN0eWxl
QXR0cmlidXRlTmFtZV0gaW50VmFsdWVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDlmNTE4MGVkMzM2MDNhNDU0YzUxZjQwMWE3ZWI3
NTRmMmY2N2QwYy4uNjZjMjhlYmZmY2Q1MjNiNzA0NWMxNWFkYjI3NTRmNDJhMGNkODI0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0z
MzU5LDYgKzMzNTksMTEgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAgICAgX2lt
cGwtPmNoYW5nZUZvbnRGcm9tRm9udE1hbmFnZXIoKTsKIH0KIAorLSAodm9pZCljaGFuZ2VBdHRy
aWJ1dGVzOihpZClzZW5kZXIKK3sKKyAgICBfaW1wbC0+Y2hhbmdlRm9udEF0dHJpYnV0ZXNGcm9t
U2VuZGVyKHNlbmRlcik7Cit9CisKIC0gKElCQWN0aW9uKXN0YXJ0U3BlYWtpbmc6KGlkKXNlbmRl
cgogewogICAgIF9pbXBsLT5zdGFydFNwZWFraW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGZlOTcwMTAzNzU1MDdiN2Q3MTExOWE0ZGFmYjBkNTI4
YTcyZTQ5NzYuLmZhZjY3NmRiMWJmNjg3YTgzYjgwMjZiY2QzYjEzY2ZjY2ZmNGRkMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zMTksNiArMzE5LDEx
IEBAIFdFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQogICAgIF9kYXRhLT5faW1wbC0+Y2hh
bmdlRm9udEZyb21Gb250TWFuYWdlcigpOwogfQogCistICh2b2lkKWNoYW5nZUF0dHJpYnV0ZXM6
KGlkKXNlbmRlcgoreworICAgIF9kYXRhLT5faW1wbC0+Y2hhbmdlRm9udEF0dHJpYnV0ZXNGcm9t
U2VuZGVyKHNlbmRlcik7Cit9CisKIC8qCiAKIFdoZW4gcG9zc2libGUsIGVkaXRpbmctcmVsYXRl
ZCBtZXRob2RzIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBXZWJDb3JlIHdpdGggdGhlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBjOWYzYjg5NWM3
YmE4ZTc3ZjBkYTYzOWZhZDJlYjk3MWJmNzM0N2RkLi43OTZjOTI4ZDA5MWMwYTY2Yjk4YjRjZTI3
MjE5NTVjNGIwM2YzMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmgKQEAgLTMxNiw2ICszMTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRCZWNvbWVF
ZGl0YWJsZSgpOwogICAgIHZvaWQgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKICAgICB2b2lk
IGNoYW5nZUZvbnRGcm9tRm9udE1hbmFnZXIoKTsKKyAgICB2b2lkIGNoYW5nZUZvbnRBdHRyaWJ1
dGVzRnJvbVNlbmRlcihpZCk7CiAgICAgYm9vbCB2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtKGlk
IDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPik7CiAgICAgdm9pZCBzZXRFZGl0YWJsZUVs
ZW1lbnRJc0ZvY3VzZWQoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggYzI1ZWRmMzRmNjUwYWJlZWNjNTI5NDg1YjYzNmEzOTljNjU5
ZDU5My4uNTUyZDY1MDVkMjUzOGI4NmM1ZmNlZWU3N2Q5NTBiYThjMjVhNDAwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI3MzQsNiArMjcz
NCwxNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpCiAgICAg
fQogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpjaGFuZ2VGb250QXR0cmlidXRlc0Zyb21TZW5kZXIo
aWQgc2VuZGVyKQoreworICAgIGF1dG8mIGVkaXRvclN0YXRlID0gbV9wYWdlLT5lZGl0b3JTdGF0
ZSgpOworICAgIGlmICghZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUgfHwgZWRpdG9yU3Rh
dGUuc2VsZWN0aW9uSXNOb25lKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UtPmNoYW5n
ZUZvbnRBdHRyaWJ1dGVzKFdlYkNvcmU6OmNvbXB1dGVkRm9udEF0dHJpYnV0ZUNoYW5nZXMoTlNG
b250TWFuYWdlci5zaGFyZWRGb250TWFuYWdlciwgc2VuZGVyKSk7CisgICAgdXBkYXRlRm9udFBh
bmVsSWZOZWVkZWQoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6Y2hhbmdlRm9udEZyb21Gb250
TWFuYWdlcigpCiB7CiAgICAgYXV0byYgZWRpdG9yU3RhdGUgPSBtX3BhZ2UtPmVkaXRvclN0YXRl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3Bw
CmluZGV4IGRmYjExZDc1Y2JmZDg5ZTIxYTNmY2JjZjhhNzc3NDM2NzhkMzA1ZTkuLjZmZDhkZjVk
MWE2NTUzZmNmMTQ3OGY5NGFiZTI3NDQ2MmI5YjdjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC03MiwxMDQgKzcyLDEwNCBAQCBT
dHJpbmcgV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBl
ZGl0QWN0aW9uKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGlu
IFdlYktpdCdzIFdlYkVkaXRvckNsaWVudCBjbGFzczsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0
aGUgc3RyaW5ncyBpbnN0ZWFkIG9mIGhhdmluZyB0d28gY29waWVzLgogICAgIHN3aXRjaCAoZWRp
dEFjdGlvbikgewotICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgotICAgIGNhc2UgRWRp
dEFjdGlvbkluc2VydDoKLSAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRSZXBsYWNlbWVudDoKLSAg
ICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRGcm9tRHJvcDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVu
c3BlY2lmaWVkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0OgorICAgIGNhc2UgRWRpdEFj
dGlvbjo6SW5zZXJ0UmVwbGFjZW1lbnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRGcm9t
RHJvcDoKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIGNhc2UgRWRpdEFjdGlvblNldENv
bG9yOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0Q29sb3I6CiAgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblNldEJhY2tncm91bmRD
b2xvcjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldEJhY2tncm91bmRDb2xvcjoKICAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFj
a2dyb3VuZCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHVybk9mZktlcm5pbmc6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVHVybiBP
ZmYgS2VybmluZyIsICJUdXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVGlnaHRlbktlcm5pbmc6CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpUaWdodGVuS2VybmluZzoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJUaWdodGVuIEtlcm5pbmciLCAiVGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uTG9vc2Vu
S2VybmluZzoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okxvb3Nlbktlcm5pbmc6CiAgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiTG9vc2VuIEtlcm5pbmciLCAiTG9vc2VuIEtlcm5pbmcg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25Vc2VTdGFuZGFyZEtlcm5pbmc6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVc2VTdGFuZGFy
ZEtlcm5pbmc6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIFN0YW5kYXJk
IEtlcm5pbmciLCAiVXNlIFN0YW5kYXJkIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25UdXJuT2ZmTGlnYXR1cmVzOgor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6VHVybk9mZkxpZ2F0dXJlczoKICAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJUdXJuIE9mZiBMaWdhdHVyZXMiLCAiVHVybiBPZmYgTGlnYXR1cmVz
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0
QWN0aW9uVXNlU3RhbmRhcmRMaWdhdHVyZXM6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVc2VTdGFu
ZGFyZExpZ2F0dXJlczoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgU3Rh
bmRhcmQgTGlnYXR1cmVzIiwgIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5h
bWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Vc2VBbGxMaWdh
dHVyZXM6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVc2VBbGxMaWdhdHVyZXM6CiAgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIEFsbCBMaWdhdHVyZXMiLCAiVXNlIEFsbCBMaWdh
dHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNl
IEVkaXRBY3Rpb25SYWlzZUJhc2VsaW5lOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6UmFpc2VCYXNl
bGluZToKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJSYWlzZSBCYXNlbGluZSIs
ICJSYWlzZSBCYXNlbGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgIGNhc2UgRWRpdEFjdGlvbkxvd2VyQmFzZWxpbmU6CisgICAgY2FzZSBFZGl0QWN0aW9u
OjpMb3dlckJhc2VsaW5lOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkxvd2Vy
IEJhc2VsaW5lIiwgIkxvd2VyIEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJT
aGFwZToKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldFRyYWRpdGlvbmFsQ2hhcmFjdGVyU2hhcGU6
CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IFRyYWRpdGlvbmFsIENoYXJh
Y3RlciBTaGFwZSIsICJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNoYXBlIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU2V0Rm9u
dDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldEZvbnQ6CiAgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiU2V0IEZvbnQiLCAiU2V0IEZvbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzOgor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6Q2hhbmdlQXR0cmlidXRlczoKICAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJDaGFuZ2UgQXR0cmlidXRlcyIsICJDaGFuZ2UgQXR0cmlidXRlcyAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFj
dGlvbkFsaWduTGVmdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OkFsaWduTGVmdDoKICAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJBbGlnbiBMZWZ0IiwgIkFsaWduIExlZnQgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25B
bGlnblJpZ2h0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25SaWdodDoKICAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJBbGlnbiBSaWdodCIsICJBbGlnbiBSaWdodCAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkNl
bnRlcjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OkNlbnRlcjoKICAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkdfS0VZKCJDZW50ZXIiLCAiQ2VudGVyIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uSnVzdGlmeToKKyAgICBjYXNlIEVk
aXRBY3Rpb246Okp1c3RpZnk6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiSnVz
dGlmeSIsICJKdXN0aWZ5IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbjoKKyAgICBjYXNlIEVkaXRB
Y3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb246CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIiwgIlNldCBXcml0aW5nIERpcmVjdGlvbiAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlv
blN1YnNjcmlwdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlN1YnNjcmlwdDoKICAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJzY3JpcHQiLCAiU3Vic2NyaXB0IChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU3VwZXJz
Y3JpcHQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTdXBlcnNjcmlwdDoKICAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJTdXBlcnNjcmlwdCIsICJTdXBlcnNjcmlwdCAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblVuZGVy
bGluZToKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVuZGVybGluZToKICAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uT3V0bGluZToKKyAg
ICBjYXNlIEVkaXRBY3Rpb246Ok91dGxpbmU6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiT3V0bGluZSIsICJPdXRsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVW5zY3JpcHQ6CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpVbnNjcmlwdDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVbnNjcmlw
dCIsICJVbnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZUJ5RHJhZzoKKyAgICBjYXNlIEVkaXRBY3Rpb246OkRl
bGV0ZUJ5RHJhZzoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJEcmFnIiwgIkRy
YWcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVk
aXRBY3Rpb25DdXQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDdXQ6CiAgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiQ3V0IiwgIkN1dCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkJvbGQ6CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpCb2xkOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkJvbGQiLCAiQm9s
ZCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRp
dEFjdGlvbkl0YWxpY3M6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJdGFsaWNzOgogICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkl0YWxpY3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToK
KyAgICBjYXNlIEVkaXRBY3Rpb246OkRlbGV0ZToKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJEZWxldGUiLCAiRGVsZXRlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgIGNhc2UgRWRpdEFj
dGlvbjo6RGljdGF0aW9uOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkRpY3Rh
dGlvbiIsICJEaWN0YXRpb24gKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKLSAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3Rl
OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlBhc3RlIiwgIlBhc3RlIChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9u
UGFzdGVGb250OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGVGb250OgogICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIlBhc3RlIEZvbnQiLCAiUGFzdGUgRm9udCAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblBhc3Rl
UnVsZXI6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZVJ1bGVyOgogICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklOR19LRVkoIlBhc3RlIFJ1bGVyIiwgIlBhc3RlIFJ1bGVyIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5n
RGVsZXRlU2VsZWN0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUJhY2t3YXJk
OgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUZvcndhcmQ6Ci0gICAgY2FzZSBFZGl0
QWN0aW9uVHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGlu
Z0RlbGV0ZVdvcmRGb3J3YXJkOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVC
YWNrd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKLSAg
ICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVQZW5kaW5nQ29tcG9zaXRpb246Ci0gICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRmluYWxDb21wb3NpdGlvbjoKLSAgICBjYXNlIEVkaXRB
Y3Rpb25UeXBpbmdJbnNlcnRUZXh0OgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydExp
bmVCcmVhazoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQYXJhZ3JhcGg6Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0UGVuZGluZ0NvbXBvc2l0aW9uOgotICAgIGNhc2Ug
RWRpdEFjdGlvblR5cGluZ0luc2VydEZpbmFsQ29tcG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdEZWxldGVTZWxlY3Rpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdE
ZWxldGVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZvcndhcmQ6
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkQmFja3dhcmQ6CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlR5cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZUxpbmVGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlUGVu
ZGluZ0NvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRmluYWxD
b21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFRleHQ6CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRMaW5lQnJlYWs6CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdJbnNlcnRQYXJhZ3JhcGg6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJ
bnNlcnRQZW5kaW5nQ29tcG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNl
cnRGaW5hbENvbXBvc2l0aW9uOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlR5
cGluZyIsICJUeXBpbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
LSAgICBjYXNlIEVkaXRBY3Rpb25DcmVhdGVMaW5rOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6Q3Jl
YXRlTGluazoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDcmVhdGUgTGluayIs
ICJDcmVhdGUgTGluayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvblVubGluazoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVubGluazoK
ICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVbmxpbmsiLCAiVW5saW5rIChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9u
SW5zZXJ0VW5vcmRlcmVkTGlzdDoKLSAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRPcmRlcmVkTGlz
dDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydFVub3JkZXJlZExpc3Q6CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpJbnNlcnRPcmRlcmVkTGlzdDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJJbnNlcnQgTGlzdCIsICJJbnNlcnQgTGlzdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkZvcm1hdEJsb2NrOgorICAg
IGNhc2UgRWRpdEFjdGlvbjo6Rm9ybWF0QmxvY2s6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiRm9ybWF0dGluZyIsICJGb3JtYXQgQmxvY2sgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25JbmRlbnQ6CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpJbmRlbnQ6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgi
SW5kZW50IiwgIkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgIGNhc2UgRWRpdEFjdGlvbk91dGRlbnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpPdXRk
ZW50OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIk91dGRlbnQiLCAiT3V0ZGVu
dCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIH0KICAgICBy
ZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDk0YjA0MzNmODRmZTAxYmY5M2ViOGEzNmJiMzVjM2FmYjFiNjc5NjAuLmE5OGZkNzJlZWU0YmY3
YTA1MDg2YjU4NWFiYmU3M2ExZDY2MzU1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNjIsNiArMTYyLDcgQEAgY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xh
c3MgQ3Vyc29yOwogY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBGb250
QXR0cmlidXRlQ2hhbmdlczsKIGNsYXNzIEZvbnRDaGFuZ2VzOwogY2xhc3MgR3JhcGhpY3NMYXll
cjsKIGNsYXNzIEludFNpemU7CkBAIC02ODEsNiArNjgyLDcgQEAgcHVibGljOgogI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2b2lkIGluc2VydERpY3RhdGVkVGV4dEFzeW5jKGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudFJhbmdlLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVz
LCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwKTsKICAgICB2b2lkIGF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JDaGFyYWN0ZXJSYW5nZUFzeW5jKGNvbnN0IEVkaXRpbmdSYW5nZSYsIFdURjo6RnVuY3Rpb248
dm9pZCAoY29uc3QgQXR0cmlidXRlZFN0cmluZyYsIGNvbnN0IEVkaXRpbmdSYW5nZSYsIENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGNoYW5nZUZvbnRBdHRyaWJ1dGVzKFdlYkNv
cmU6OkZvbnRBdHRyaWJ1dGVDaGFuZ2VzJiYpOwogICAgIHZvaWQgY2hhbmdlRm9udChXZWJDb3Jl
OjpGb250Q2hhbmdlcyYmKTsKICAgICB2b2lkIGZvbnRBdFNlbGVjdGlvbihXVEY6OkZ1bmN0aW9u
PHZvaWQgKGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgYm9vbCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5t
bQppbmRleCAxNDQ2YWUwZDEyZjEzNWJjZDJmYTI1Mzg3YTBmYmJhYTk3OWRkMzNiLi41ZDBjZWRj
MDg5ZmRmOTEwNjI5ZWU5NjkwMjVhNzNjMGMzZjg1ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTYyNiw2ICs2MjYsMTQgQEAgYm9v
bCBXZWJQYWdlUHJveHk6OmFwcGxlTWFpbExpbmVzQ2xhbXBFbmFibGVkKCkKIHsKICAgICByZXR1
cm4gTWFjQXBwbGljYXRpb246OmlzQXBwbGVNYWlsKCk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpjaGFuZ2VGb250QXR0cmlidXRlcyhXZWJDb3JlOjpGb250QXR0cmlidXRlQ2hhbmdlcyYmIGNo
YW5nZXMpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDaGFuZ2VGb250QXR0cmlidXRlcyhXVEZN
b3ZlKGNoYW5nZXMpKSwgbV9wYWdlSUQpOworfQogICAgIAogdm9pZCBXZWJQYWdlUHJveHk6OmNo
YW5nZUZvbnQoV2ViQ29yZTo6Rm9udENoYW5nZXMmJiBjaGFuZ2VzKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGZiYWY3ODBkYjNmOGNiNzY2OWMy
ODU0ZTI4MTA0ZTJkMjIyOTIzZWQuLjE0NDk5NDgwMjkzYzVlNDJlYWVlODdiNzVhNDM1ZWU4ZDFm
ZTUwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTEzNSw2ICsxMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0dXJlRGV2aWNl
OwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBEcmFnRGF0YTsKK2NsYXNzIEZvbnRBdHRy
aWJ1dGVDaGFuZ2VzOwogY2xhc3MgRm9udENoYW5nZXM7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZy
YW1lU2VsZWN0aW9uOwpAQCAtMTM2Myw2ICsxMzY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlt
bWVkaWF0ZUFjdGlvbkRpZENhbmNlbCgpOwogICAgIHZvaWQgaW1tZWRpYXRlQWN0aW9uRGlkQ29t
cGxldGUoKTsKICAgICB2b2lkIGNoYW5nZUZvbnQoV2ViQ29yZTo6Rm9udENoYW5nZXMmJik7Cisg
ICAgdm9pZCBjaGFuZ2VGb250QXR0cmlidXRlcyhXZWJDb3JlOjpGb250QXR0cmlidXRlQ2hhbmdl
cyYmKTsKIAogICAgIHZvaWQgZGF0YURldGVjdG9yc0RpZFByZXNlbnRVSShXZWJDb3JlOjpQYWdl
T3ZlcmxheTo6UGFnZU92ZXJsYXlJRCk7CiAgICAgdm9pZCBkYXRhRGV0ZWN0b3JzRGlkQ2hhbmdl
VUkoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OlBhZ2VPdmVybGF5SUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzBm
MjIwZGQzNzVhYTk1YThkMjEwZmU4ZTcxMDVkZjIxNTkyZjFjNC4uYzM0YWZlYjFkMDhhOWFlN2Q0
ODc5YjQ0NDdhZTJmN2I4MmIxNTJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTEsNiArMTkxLDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwT2ZDdXJyZW50U2VsZWN0aW9uKCkKICAgICBDaGFuZ2VG
b250KFdlYkNvcmU6OkZvbnRDaGFuZ2VzIGNoYW5nZXMpCisgICAgQ2hhbmdlRm9udEF0dHJpYnV0
ZXMoV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZUNoYW5nZXMgY2hhbmdlcykKICNlbmRpZgogCiAgICAg
UHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBz
dG9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KaW5kZXggOGQyMGQyZWZmMDZiYzQ2YjBjZmM5OTE1OWM4ZTk4OWY1ZGIzZjM4Ny4u
MmJkZDA4ZmRkODNmZGI1ZDUwODU1ZTdjYzU4ZTU5NmUyZWMwYTdmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTExMTUs
MTEgKzExMTUsMTggQEAgdm9pZCBXZWJQYWdlOjpkYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFBhZ2VP
dmVybGF5OjpQYWdlT3ZlcmxheUlEIG92ZXJsYXlJRCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViUGFn
ZTo6Y2hhbmdlRm9udEF0dHJpYnV0ZXMoV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZUNoYW5nZXMmJiBj
aGFuZ2VzKQoreworICAgIGF1dG8mIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5m
b2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuaXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlTdHls
ZVRvU2VsZWN0aW9uKGNoYW5nZXMuY3JlYXRlRWRpdGluZ1N0eWxlKCksIEVkaXRBY3Rpb246OkNo
YW5nZUF0dHJpYnV0ZXMsIEVkaXRvcjo6Q29sb3JGaWx0ZXJNb2RlOjpJbnZlcnRDb2xvcik7Cit9
CisKIHZvaWQgV2ViUGFnZTo6Y2hhbmdlRm9udChXZWJDb3JlOjpGb250Q2hhbmdlcyYmIGNoYW5n
ZXMpCiB7CiAgICAgYXV0byYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpOwogICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5p
c0NvbnRlbnRFZGl0YWJsZSgpKQotICAgICAgICBmcmFtZS5lZGl0b3IoKS5hcHBseVN0eWxlVG9T
ZWxlY3Rpb24oY2hhbmdlcy5jcmVhdGVFZGl0aW5nU3R5bGUoKSwgRWRpdEFjdGlvblNldEZvbnQs
IEVkaXRvcjo6Q29sb3JGaWx0ZXJNb2RlOjpJbnZlcnRDb2xvcik7CisgICAgICAgIGZyYW1lLmVk
aXRvcigpLmFwcGx5U3R5bGVUb1NlbGVjdGlvbihjaGFuZ2VzLmNyZWF0ZUVkaXRpbmdTdHlsZSgp
LCBFZGl0QWN0aW9uOjpTZXRGb250LCBFZGl0b3I6OkNvbG9yRmlsdGVyTW9kZTo6SW52ZXJ0Q29s
b3IpOwogfQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRG
T1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBlMjgxMTJkZWU0MTAwNDJjZWRjNWM2MDI2
YmUyMTk4MjNmMzFmZWI3Li41MDc5ZWMzODA1ODA2YTAyYmMzMmQ0M2NjZmVlZTlhMTlkYjlhYjc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02MDIsNjYgKzYwMiw2NiBAQCBzdGF0aWMgTlNTdHJp
bmcqIHVuZG9OYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiB7CiAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgaWRlbnRpY2FsIHRvIGNvZGUgaW4gV2ViS2l0MidzIFdlYkVkaXRD
b21tYW5kUHJveHkgY2xhc3M7IHdvdWxkIGJlIG5pY2UgdG8gc2hhcmUgdGhlIHN0cmluZ3MgaW5z
dGVhZCBvZiBoYXZpbmcgdHdvIGNvcGllcy4KICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsKLSAg
ICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6IHJldHVybiBuaWw7Ci0gICAgICAgIGNh
c2UgRWRpdEFjdGlvbkluc2VydDogcmV0dXJuIG5pbDsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9u
SW5zZXJ0UmVwbGFjZW1lbnQ6IHJldHVybiBuaWw7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbklu
c2VydEZyb21Ecm9wOiByZXR1cm4gbmlsOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRDb2xv
cjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBDb2xvciIsICJTZXQgQ29sb3Ig
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5B
TCgiU2V0IEJhY2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9u
VHVybk9mZktlcm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUdXJuIE9mZiBL
ZXJuaW5nIiwgIlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVGlnaHRlbktlcm5pbmc6IHJldHVy
biBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUaWdodGVuIEtlcm5pbmciLCAiVGlnaHRlbiBLZXJu
aW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNh
c2UgRWRpdEFjdGlvbkxvb3Nlbktlcm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFM
KCJMb29zZW4gS2VybmluZyIsICJMb29zZW4gS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25Vc2VTdGFuZGFyZEtl
cm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJVc2UgU3RhbmRhcmQgS2Vybmlu
ZyIsICJVc2UgU3RhbmRhcmQgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UdXJuT2ZmTGlnYXR1cmVzOiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgTGlnYXR1cmVzIiwgIlR1cm4gT2Zm
IExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25Vc2VTdGFuZGFyZExpZ2F0dXJlczogcmV0dXJuIFVJX1NUUklO
R19LRVlfSU5URVJOQUwoIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMiLCAiVXNlIFN0YW5kYXJkIExp
Z2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25Vc2VBbGxMaWdhdHVyZXM6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lO
VEVSTkFMKCJVc2UgQWxsIExpZ2F0dXJlcyIsICJVc2UgQWxsIExpZ2F0dXJlcyAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25S
YWlzZUJhc2VsaW5lOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiUmFpc2UgQmFzZWxp
bmUiLCAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uTG93ZXJCYXNlbGluZTogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIkxvd2VyIEJhc2VsaW5lIiwgIkxvd2VyIEJhc2VsaW5lIChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFj
dGlvblNldFRyYWRpdGlvbmFsQ2hhcmFjdGVyU2hhcGU6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lO
VEVSTkFMKCJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNoYXBlIiwgIlNldCBUcmFkaXRpb25h
bCBDaGFyYWN0ZXIgU2hhcGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Rm9udDogcmV0dXJuIFVJX1NUUklOR19LRVlf
SU5URVJOQUwoIlNldCBGb250IiwgIlNldCBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXM6
IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDaGFuZ2UgQXR0cmlidXRlcyIsICJDaGFu
Z2UgQXR0cmlidXRlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgICAgICBjYXNlIEVkaXRBY3Rpb25BbGlnbkxlZnQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lO
VEVSTkFMKCJBbGlnbiBMZWZ0IiwgIkFsaWduIExlZnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uQWxpZ25SaWdodDogcmV0
dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkFsaWduIFJpZ2h0IiwgIkFsaWduIFJpZ2h0IChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRp
dEFjdGlvbkNlbnRlcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkNlbnRlciIsICJD
ZW50ZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAg
Y2FzZSBFZGl0QWN0aW9uSnVzdGlmeTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkp1
c3RpZnkiLCAiSnVzdGlmeSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uOiByZXR1cm4gVUlf
U1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIiwgIlNldCBXcml0aW5n
IERpcmVjdGlvbiAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25TdWJzY3JpcHQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVS
TkFMKCJTdWJzY3JpcHQiLCAiU3Vic2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblN1cGVyc2NyaXB0OiByZXR1cm4g
VUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU3VwZXJzY3JpcHQiLCAiU3VwZXJzY3JpcHQgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVW5kZXJsaW5lOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVW5kZXJsaW5lIiwg
IlVuZGVybGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25PdXRsaW5lOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5B
TCgiT3V0bGluZSIsICJPdXRsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblVuc2NyaXB0OiByZXR1cm4gVUlfU1RSSU5H
X0tFWV9JTlRFUk5BTCgiVW5zY3JpcHQiLCAiVW5zY3JpcHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlQnlEcmFn
OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiRHJhZyIsICJEcmFnIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkN1
dDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkN1dCIsICJDdXQgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uUGFz
dGU6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJQYXN0ZSIsICJQYXN0ZSAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rp
b25QYXN0ZUZvbnQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJQYXN0ZSBGb250Iiwg
IlBhc3RlIEZvbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAg
ICAgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGVSdWxlcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5U
RVJOQUwoIlBhc3RlIFJ1bGVyIiwgIlBhc3RlIFJ1bGVyIChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVNl
bGVjdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlQmFja3dhcmQ6Ci0g
ICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUZvcndhcmQ6Ci0gICAgICAgIGNhc2Ug
RWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRCYWNrd2FyZDoKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGlu
Z0RlbGV0ZUxpbmVCYWNrd2FyZDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRl
TGluZUZvcndhcmQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVBlbmRpbmdD
b21wb3NpdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRmluYWxDb21w
b3NpdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0VGV4dDoKLSAgICAg
ICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0TGluZUJyZWFrOgotICAgICAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmdJbnNlcnRQYXJhZ3JhcGg6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5
cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbjoKLSAgICAgICAgICAgIHJldHVybiBVSV9TVFJJTkdf
S0VZX0lOVEVSTkFMKCJUeXBpbmciLCAiVHlwaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkNyZWF0ZUxpbms6IHJldHVy
biBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDcmVhdGUgTGluayIsICJDcmVhdGUgTGluayAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25Vbmxpbms6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJVbmxpbmsiLCAiVW5s
aW5rIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNh
c2UgRWRpdEFjdGlvbkluc2VydE9yZGVyZWRMaXN0OgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25J
bnNlcnRVbm9yZGVyZWRMaXN0OgotICAgICAgICAgICAgcmV0dXJuIFVJX1NUUklOR19LRVlfSU5U
RVJOQUwoIkluc2VydCBMaXN0IiwgIkluc2VydCBMaXN0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkZvcm1hdEJsb2NrOiBy
ZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiRm9ybWF0dGluZyIsICJGb3JtYXQgQmxvY2sg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uSW5kZW50OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiSW5kZW50Iiwg
IkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25PdXRkZW50OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgi
T3V0ZGVudCIsICJPdXRkZW50IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkJvbGQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lO
VEVSTkFMKCJCb2xkIiwgIkJvbGQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uSXRhbGljczogcmV0dXJuIFVJX1NUUklOR19L
RVlfSU5URVJOQUwoIkl0YWxpY3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6IHJldHVybiBV
SV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJEZWxldGUiLCAiRGVsZXRlIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlv
bjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkRpY3RhdGlvbiIsICJEaWN0YXRpb24g
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRB
Y3Rpb246OlVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5z
ZXJ0OiByZXR1cm4gbmlsOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0UmVwbGFjZW1lbnQ6
IHJldHVybiBuaWw7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRGcm9tRHJvcDogcmV0dXJu
IG5pbDsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tF
WV9JTlRFUk5BTCgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0QmFja2dyb3VuZENv
bG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IEJhY2tncm91bmQgQ29sb3Ii
LCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR1cm5PZmZLZXJuaW5nOiByZXR1cm4gVUlf
U1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9mZiBLZXJuaW5n
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpUaWdodGVuS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlRp
Z2h0ZW4gS2VybmluZyIsICJUaWdodGVuIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okxvb3Nlbktlcm5pbmc6IHJl
dHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJMb29zZW4gS2VybmluZyIsICJMb29zZW4gS2Vy
bmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6VXNlU3RhbmRhcmRLZXJuaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRF
Uk5BTCgiVXNlIFN0YW5kYXJkIEtlcm5pbmciLCAiVXNlIFN0YW5kYXJkIEtlcm5pbmcgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246
OlR1cm5PZmZMaWdhdHVyZXM6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUdXJuIE9m
ZiBMaWdhdHVyZXMiLCAiVHVybiBPZmYgTGlnYXR1cmVzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVc2VTdGFuZGFyZExpZ2F0
dXJlczogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlVzZSBTdGFuZGFyZCBMaWdhdHVy
ZXMiLCAiVXNlIFN0YW5kYXJkIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VXNlQWxsTGlnYXR1cmVzOiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVXNlIEFsbCBMaWdhdHVyZXMiLCAiVXNlIEFsbCBM
aWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246OlJhaXNlQmFzZWxpbmU6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVS
TkFMKCJSYWlzZSBCYXNlbGluZSIsICJSYWlzZSBCYXNlbGluZSAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6TG93ZXJCYXNlbGlu
ZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkxvd2VyIEJhc2VsaW5lIiwgIkxvd2Vy
IEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpTZXRUcmFkaXRpb25hbENoYXJhY3RlclNoYXBlOiByZXR1cm4gVUlf
U1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IFRyYWRpdGlvbmFsIENoYXJhY3RlciBTaGFwZSIsICJT
ZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNoYXBlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRGb250OiByZXR1cm4gVUlf
U1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IEZvbnQiLCAiU2V0IEZvbnQgKFVuZG8gYWN0aW9uIG5h
bWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkNoYW5nZUF0
dHJpYnV0ZXM6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDaGFuZ2UgQXR0cmlidXRl
cyIsICJDaGFuZ2UgQXR0cmlidXRlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25MZWZ0OiByZXR1cm4gVUlfU1RSSU5H
X0tFWV9JTlRFUk5BTCgiQWxpZ24gTGVmdCIsICJBbGlnbiBMZWZ0IChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpBbGlnblJpZ2h0
OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiQWxpZ24gUmlnaHQiLCAiQWxpZ24gUmln
aHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVk
aXRBY3Rpb246OkNlbnRlcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkNlbnRlciIs
ICJDZW50ZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246Okp1c3RpZnk6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJK
dXN0aWZ5IiwgIkp1c3RpZnkgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb246IHJldHVybiBVSV9T
VFJJTkdfS0VZX0lOVEVSTkFMKCJTZXQgV3JpdGluZyBEaXJlY3Rpb24iLCAiU2V0IFdyaXRpbmcg
RGlyZWN0aW9uIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpTdWJzY3JpcHQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFM
KCJTdWJzY3JpcHQiLCAiU3Vic2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTdXBlcnNjcmlwdDogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIlN1cGVyc2NyaXB0IiwgIlN1cGVyc2NyaXB0IChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVbmRl
cmxpbmU6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJVbmRlcmxpbmUiLCAiVW5kZXJs
aW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpPdXRsaW5lOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiT3V0bGlu
ZSIsICJPdXRsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpVbnNjcmlwdDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJO
QUwoIlVuc2NyaXB0IiwgIlVuc2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpEZWxldGVCeURyYWc6IHJldHVybiBVSV9T
VFJJTkdfS0VZX0lOVEVSTkFMKCJEcmFnIiwgIkRyYWcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkN1dDogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIkN1dCIsICJDdXQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3RlOiByZXR1cm4gVUlfU1RS
SU5HX0tFWV9JTlRFUk5BTCgiUGFzdGUiLCAiUGFzdGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3RlRm9udDogcmV0dXJu
IFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlBhc3RlIEZvbnQiLCAiUGFzdGUgRm9udCAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
UGFzdGVSdWxlcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlBhc3RlIFJ1bGVyIiwg
IlBhc3RlIFJ1bGVyIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVTZWxlY3Rpb246CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpUeXBpbmdEZWxldGVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZUZvcndhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkQmFj
a3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDoKKyAgICBjYXNlIEVk
aXRBY3Rpb246OlR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHlwaW5nRGVsZXRlUGVuZGluZ0NvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlw
aW5nRGVsZXRlRmluYWxDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0lu
c2VydFRleHQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRMaW5lQnJlYWs6Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQYXJhZ3JhcGg6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpUeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9uOgorICAgICAgICByZXR1cm4gVUlfU1RS
SU5HX0tFWV9JTlRFUk5BTCgiVHlwaW5nIiwgIlR5cGluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Q3JlYXRlTGluazogcmV0
dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkNyZWF0ZSBMaW5rIiwgIkNyZWF0ZSBMaW5rIChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0
aW9uOjpVbmxpbms6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJVbmxpbmsiLCAiVW5s
aW5rIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpJbnNlcnRPcmRlcmVkTGlzdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2Vy
dFVub3JkZXJlZExpc3Q6CisgICAgICAgIHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJJ
bnNlcnQgTGlzdCIsICJJbnNlcnQgTGlzdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Rm9ybWF0QmxvY2s6IHJldHVybiBVSV9T
VFJJTkdfS0VZX0lOVEVSTkFMKCJGb3JtYXR0aW5nIiwgIkZvcm1hdCBCbG9jayAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5k
ZW50OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiSW5kZW50IiwgIkluZGVudCAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlv
bjo6T3V0ZGVudDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIk91dGRlbnQiLCAiT3V0
ZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6Qm9sZDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkJvbGQiLCAi
Qm9sZCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6SXRhbGljczogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkl0YWxp
Y3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5B
TCgiRGVsZXRlIiwgIkRlbGV0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6RGljdGF0aW9uOiByZXR1cm4gVUlfU1RSSU5HX0tF
WV9JTlRFUk5BTCgiRGljdGF0aW9uIiwgIkRpY3RhdGlvbiAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIH0KICAgICByZXR1cm4gbmlsOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggZmI4NTUwMDVh
MTZmNTVhNTJjY2Y5MWVkZjQxYWY1ZjI3YzdhMGUxMi4uMTkyZTE4MzUxM2MwYmVkODc0YzQ5OWYw
NjVlY2MzYTI0M2VhMzFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCkBAIC01Mjk3LDcgKzUyOTcsNyBAQCBzdGF0aWMgUmVmUHRyPEtleWJv
YXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKICAgICAv
LyBSZWFkIFJURiB3aXRoIGZvbnQgYXR0cmlidXRlcyBmcm9tIHRoZSBwYXN0ZWJvYXJkLgogICAg
IC8vIE1heWJlIGxhdGVyIHdlIHNob3VsZCBhZGQgYSBwYXN0ZWJvYXJkIHR5cGUgdGhhdCBjb250
YWlucyBDU1MgdGV4dCBmb3IgIm5hdGl2ZSIgY29weSBhbmQgcGFzdGUgZm9udC4KLSAgICBbc2Vs
ZiBfYXBwbHlTdHlsZVRvU2VsZWN0aW9uOltzZWxmIF9zdHlsZUZyb21Gb250QXR0cmlidXRlczpb
c2VsZiBfZm9udEF0dHJpYnV0ZXNGcm9tRm9udFBhc3RlYm9hcmRdXSB3aXRoVW5kb0FjdGlvbjpF
ZGl0QWN0aW9uUGFzdGVGb250XTsKKyAgICBbc2VsZiBfYXBwbHlTdHlsZVRvU2VsZWN0aW9uOltz
ZWxmIF9zdHlsZUZyb21Gb250QXR0cmlidXRlczpbc2VsZiBfZm9udEF0dHJpYnV0ZXNGcm9tRm9u
dFBhc3RlYm9hcmRdXSB3aXRoVW5kb0FjdGlvbjpFZGl0QWN0aW9uOjpQYXN0ZUZvbnRdOwogfQog
CiAtICh2b2lkKXBhc3RlQXNSaWNoVGV4dDooaWQpc2VuZGVyCkBAIC01MzEzLDE0ICs1MzEzLDE0
IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJh
bWUqIGNvcmVGcmFtZSkKIHsKICAgICBDT01NQU5EX1BST0xPR1VFCiAKLSAgICBbc2VsZiBfYXBw
bHlFZGl0aW5nU3R5bGVUb1NlbGVjdGlvbjpjb21wdXRlZEZvbnRDaGFuZ2VzKE5TRm9udE1hbmFn
ZXIuc2hhcmVkRm9udE1hbmFnZXIpLmNyZWF0ZUVkaXRpbmdTdHlsZSgpIHdpdGhVbmRvQWN0aW9u
OkVkaXRBY3Rpb25TZXRGb250XTsKKyAgICBbc2VsZiBfYXBwbHlFZGl0aW5nU3R5bGVUb1NlbGVj
dGlvbjpjb21wdXRlZEZvbnRDaGFuZ2VzKE5TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIp
LmNyZWF0ZUVkaXRpbmdTdHlsZSgpIHdpdGhVbmRvQWN0aW9uOkVkaXRBY3Rpb246OlNldEZvbnRd
OwogfQogCiAtICh2b2lkKWNoYW5nZUF0dHJpYnV0ZXM6KGlkKXNlbmRlcgogewogICAgIENPTU1B
TkRfUFJPTE9HVUUKIAotICAgIFtzZWxmIF9hcHBseUVkaXRpbmdTdHlsZVRvU2VsZWN0aW9uOmNv
bXB1dGVkRm9udEF0dHJpYnV0ZUNoYW5nZXMoTlNGb250TWFuYWdlci5zaGFyZWRGb250TWFuYWdl
ciwgc2VuZGVyKS5jcmVhdGVFZGl0aW5nU3R5bGUoKSB3aXRoVW5kb0FjdGlvbjpFZGl0QWN0aW9u
Q2hhbmdlQXR0cmlidXRlc107CisgICAgW3NlbGYgX2FwcGx5RWRpdGluZ1N0eWxlVG9TZWxlY3Rp
b246Y29tcHV0ZWRGb250QXR0cmlidXRlQ2hhbmdlcyhOU0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRN
YW5hZ2VyLCBzZW5kZXIpLmNyZWF0ZUVkaXRpbmdTdHlsZSgpIHdpdGhVbmRvQWN0aW9uOkVkaXRB
Y3Rpb246OkNoYW5nZUF0dHJpYnV0ZXNdOwogfQogCiAtIChET01DU1NTdHlsZURlY2xhcmF0aW9u
ICopX3N0eWxlRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0b3I6KFNFTClzZWxlY3RvcgpAQCAtNTMz
Niw4ICs1MzM2LDggQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9h
cmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogLSAoRWRpdEFjdGlvbilfdW5kb0FjdGlvbkZyb21D
b2xvclBhbmVsV2l0aFNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKICAgICBpZiAoc2VsZWN0b3Ig
PT0gQHNlbGVjdG9yKHNldEJhY2tncm91bmRDb2xvcjopKQotICAgICAgICByZXR1cm4gRWRpdEFj
dGlvblNldEJhY2tncm91bmRDb2xvcjsgICAgCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25TZXRDb2xv
cjsKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlNldEJhY2tncm91bmRDb2xvcjsKKyAgICBy
ZXR1cm4gRWRpdEFjdGlvbjo6U2V0Q29sb3I7CiB9CiAKIC0gKHZvaWQpX2NoYW5nZUNTU0NvbG9y
VXNpbmdTZWxlY3RvcjooU0VMKXNlbGVjdG9yIGluUmFuZ2U6KERPTVJhbmdlICopcmFuZ2UKQEAg
LTUzODEsOCArNTM4MSw3IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtl
eWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAvLyBBcHBLaXQgd2lsbCBoYXZlIHRv
IGJlIHJldmlzZWQgdG8gYWxsb3cgdGhpcyB0byB3b3JrIHdpdGggYW55dGhpbmcgdGhhdCBpc24n
dCBhbiAKICAgICAvLyBOU1RleHRWaWV3LiBIb3dldmVyLCB0aGlzIG1pZ2h0IG5vdCBiZSByZXF1
aXJlZCBmb3IgVGlnZXIsIHNpbmNlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIAogICAgIC8vIGNoYW5n
aW5nIGJveCBpbiB0aGUgZm9udCBwYW5lbCBkb2Vzbid0IHdvcmsgaW4gTWFpbCAoMzY3NDQ4MSks
IHRob3VnaCBpdCBkb2VzIGluIFRleHRFZGl0LgotICAgIFtzZWxmIF9hcHBseVN0eWxlVG9TZWxl
Y3Rpb246W3NlbGYgX3N0eWxlRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0b3I6QHNlbGVjdG9yKHNl
dENvbG9yOildIAotICAgICAgICAgICAgICAgICAgd2l0aFVuZG9BY3Rpb246RWRpdEFjdGlvblNl
dENvbG9yXTsKKyAgICBbc2VsZiBfYXBwbHlTdHlsZVRvU2VsZWN0aW9uOltzZWxmIF9zdHlsZUZy
b21Db2xvclBhbmVsV2l0aFNlbGVjdG9yOkBzZWxlY3RvcihzZXRDb2xvcjopXSB3aXRoVW5kb0Fj
dGlvbjpFZGl0QWN0aW9uOjpTZXRDb2xvcl07CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMDlkOWE2
OWJkNTY4ODYzZDFhYjg3MTAxNjU4NWM1OTdhN2QzNGE3Zi4uZjI0ZWE3MjcwMjNkMWI0NjAyM2I0
NGY0ODE3ZTg2M2U1NDZjOTBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtODI1NCw3ICs4MjU0LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2Ny
aXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGoK
IHsKICAgICAvLyBXZSBkb24ndCBrbm93IGVub3VnaCBhdCB0aGxzIGxldmVsIHRvIHBhc3MgaW4g
YSByZWxldmFudCBXZWJVbmRvQWN0aW9uOyB3ZSdkIGhhdmUgdG8KICAgICAvLyBjaGFuZ2UgdGhl
IEFQSSB0byBhbGxvdyB0aGlzLgotICAgIFtbc2VsZiBfc2VsZWN0ZWRPck1haW5GcmFtZV0gX3Nl
dFR5cGluZ1N0eWxlOnN0eWxlIHdpdGhVbmRvQWN0aW9uOkVkaXRBY3Rpb25VbnNwZWNpZmllZF07
CisgICAgW1tzZWxmIF9zZWxlY3RlZE9yTWFpbkZyYW1lXSBfc2V0VHlwaW5nU3R5bGU6c3R5bGUg
d2l0aFVuZG9BY3Rpb246RWRpdEFjdGlvbjo6VW5zcGVjaWZpZWRdOwogfQogCiAtIChET01DU1NT
dHlsZURlY2xhcmF0aW9uICopdHlwaW5nU3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDU2
ZTdjZjBiNDhjOWE1NDIyZmYwYWRkNjc0NjhmZThkZWM0ZGFjMGUuLmI1OGRlNWIxMzhjMmNmYzcw
NTkwNTc3YTI4MWFmOTViMTAzMDgxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNTczLDU5
ICs1NzMsNTkgQEAgVUxPTkcgV2ViRWRpdG9yVW5kb0NvbW1hbmQ6OlJlbGVhc2UoKQogc3RhdGlj
IFN0cmluZyB1bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogewog
ICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewotICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVk
OgotICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50OgorICAgIGNhc2UgRWRpdEFj
dGlvbjo6VW5zcGVjaWZpZWQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRSZXBsYWNlbWVu
dDoKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9y
OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25T
ZXRCYWNrZ3JvdW5kQ29sb3I6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IEJhY2tncm91
bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25UdXJuT2ZmS2VybmluZzogcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUdXJuIE9mZiBLZXJuaW5nIiwgIlR1cm4gT2ZmIEtlcm5p
bmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVk
aXRBY3Rpb25UaWdodGVuS2VybmluZzogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUaWdodGVu
IEtlcm5pbmciLCAiVGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uTG9vc2VuS2VybmluZzogcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJMb29zZW4gS2VybmluZyIsICJMb29zZW4gS2VybmluZyAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblVz
ZVN0YW5kYXJkS2VybmluZzogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgU3RhbmRhcmQg
S2VybmluZyIsICJVc2UgU3RhbmRhcmQgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblR1cm5PZmZMaWdhdHVyZXM6IHJl
dHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVHVybiBPZmYgTGlnYXR1cmVzIiwgIlR1cm4gT2ZmIExp
Z2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNh
c2UgRWRpdEFjdGlvblVzZVN0YW5kYXJkTGlnYXR1cmVzOiByZXR1cm4gV0VCX1VJX1NUUklOR19L
RVkoIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMiLCAiVXNlIFN0YW5kYXJkIExpZ2F0dXJlcyAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlv
blVzZUFsbExpZ2F0dXJlczogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgQWxsIExpZ2F0
dXJlcyIsICJVc2UgQWxsIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblJhaXNlQmFzZWxpbmU6IHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiUmFpc2UgQmFzZWxpbmUiLCAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Mb3dl
ckJhc2VsaW5lOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkxvd2VyIEJhc2VsaW5lIiwgIkxv
d2VyIEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uU2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJTaGFwZTogcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNoYXBlIiwgIlNldCBU
cmFkaXRpb25hbCBDaGFyYWN0ZXIgU2hhcGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25TZXRGb250OiByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlNldCBGb250IiwgIlNldCBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlczogcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDaGFuZ2UgQXR0cmlidXRlcyIsICJDaGFuZ2UgQXR0cmli
dXRlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2Ug
RWRpdEFjdGlvbkFsaWduTGVmdDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJBbGlnbiBMZWZ0
IiwgIkFsaWduIExlZnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
LSAgICBjYXNlIEVkaXRBY3Rpb25BbGlnblJpZ2h0OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IkFsaWduIFJpZ2h0IiwgIkFsaWduIFJpZ2h0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQ2VudGVyOiByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIkNlbnRlciIsICJDZW50ZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25KdXN0aWZ5OiByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIkp1c3RpZnkiLCAiSnVzdGlmeSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246IHJl
dHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIiwgIlNldCBXcml0
aW5nIERpcmVjdGlvbiAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvblN1YnNjcmlwdDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJT
dWJzY3JpcHQiLCAiU3Vic2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU3VwZXJzY3JpcHQ6IHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiU3VwZXJzY3JpcHQiLCAiU3VwZXJzY3JpcHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Cb2xkOiByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIkJvbGQiLCAiQm9sZCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkl0YWxpY3M6IHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiSXRhbGljcyIsICJJdGFsaWNzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVW5kZXJsaW5lOiByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlVuZGVybGluZSIsICJVbmRlcmxpbmUgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25PdXRsaW5lOiByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIk91dGxpbmUiLCAiT3V0bGluZSAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblVuc2NyaXB0OiBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVuc2NyaXB0IiwgIlVuc2NyaXB0IChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRl
QnlEcmFnOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkRyYWciLCAiRHJhZyAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkN1dDog
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDdXQiLCAiQ3V0IChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6IHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiUGFzdGUiLCAiUGFzdGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZUZvbnQ6IHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiUGFzdGUgRm9udCIsICJQYXN0ZSBGb250IChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uUGFzdGVSdWxl
cjogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQYXN0ZSBSdWxlciIsICJQYXN0ZSBSdWxlciAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFj
dGlvblR5cGluZ0RlbGV0ZVNlbGVjdGlvbjoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxl
dGVCYWNrd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVGb3J3YXJkOgotICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRCYWNrd2FyZDoKLSAgICBjYXNlIEVkaXRB
Y3Rpb25UeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdE
ZWxldGVMaW5lQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUZv
cndhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0VGV4dDoKLSAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmdJbnNlcnRMaW5lQnJlYWs6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5n
SW5zZXJ0UGFyYWdyYXBoOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0Q29sb3I6IHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0QmFja2dy
b3VuZENvbG9yOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBCYWNrZ3JvdW5kIENvbG9y
IiwgIlNldCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJuT2ZmS2VybmluZzogcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJUdXJuIE9mZiBLZXJuaW5nIiwgIlR1cm4gT2ZmIEtlcm5pbmcgKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlRpZ2h0ZW5LZXJuaW5nOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRpZ2h0ZW4gS2Vy
bmluZyIsICJUaWdodGVuIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okxvb3Nlbktlcm5pbmc6IHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiTG9vc2VuIEtlcm5pbmciLCAiTG9vc2VuIEtlcm5pbmcgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVz
ZVN0YW5kYXJkS2VybmluZzogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgU3RhbmRhcmQg
S2VybmluZyIsICJVc2UgU3RhbmRhcmQgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VHVybk9mZkxpZ2F0dXJlczog
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUdXJuIE9mZiBMaWdhdHVyZXMiLCAiVHVybiBPZmYg
TGlnYXR1cmVzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpVc2VTdGFuZGFyZExpZ2F0dXJlczogcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJVc2UgU3RhbmRhcmQgTGlnYXR1cmVzIiwgIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRB
Y3Rpb246OlVzZUFsbExpZ2F0dXJlczogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgQWxs
IExpZ2F0dXJlcyIsICJVc2UgQWxsIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6UmFpc2VCYXNlbGluZTogcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJSYWlzZSBCYXNlbGluZSIsICJSYWlzZSBCYXNlbGluZSAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFj
dGlvbjo6TG93ZXJCYXNlbGluZTogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJMb3dlciBCYXNl
bGluZSIsICJMb3dlciBCYXNlbGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJTaGFw
ZTogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNo
YXBlIiwgIlNldCBUcmFkaXRpb25hbCBDaGFyYWN0ZXIgU2hhcGUgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldEZvbnQ6IHJl
dHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IEZvbnQiLCAiU2V0IEZvbnQgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkNoYW5n
ZUF0dHJpYnV0ZXM6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQ2hhbmdlIEF0dHJpYnV0ZXMi
LCAiQ2hhbmdlIEF0dHJpYnV0ZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkFsaWduTGVmdDogcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJBbGlnbiBMZWZ0IiwgIkFsaWduIExlZnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkFsaWduUmlnaHQ6IHJldHVy
biBXRUJfVUlfU1RSSU5HX0tFWSgiQWxpZ24gUmlnaHQiLCAiQWxpZ24gUmlnaHQgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkNl
bnRlcjogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDZW50ZXIiLCAiQ2VudGVyIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpK
dXN0aWZ5OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkp1c3RpZnkiLCAiSnVzdGlmeSAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlv
bjo6U2V0V3JpdGluZ0RpcmVjdGlvbjogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgV3Jp
dGluZyBEaXJlY3Rpb24iLCAiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTdWJzY3JpcHQ6
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU3Vic2NyaXB0IiwgIlN1YnNjcmlwdCAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
U3VwZXJzY3JpcHQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU3VwZXJzY3JpcHQiLCAiU3Vw
ZXJzY3JpcHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246OkJvbGQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQm9sZCIsICJC
b2xkIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpJdGFsaWNzOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkl0YWxpY3MiLCAi
SXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNh
c2UgRWRpdEFjdGlvbjo6VW5kZXJsaW5lOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVuZGVy
bGluZSIsICJVbmRlcmxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Ok91dGxpbmU6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tF
WSgiT3V0bGluZSIsICJPdXRsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVbnNjcmlwdDogcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJVbnNjcmlwdCIsICJVbnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnOiByZXR1cm4g
V0VCX1VJX1NUUklOR19LRVkoIkRyYWciLCAiRHJhZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Q3V0OiByZXR1cm4gV0VCX1VJ
X1NUUklOR19LRVkoIkN1dCIsICJDdXQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3RlOiByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIlBhc3RlIiwgIlBhc3RlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZUZvbnQ6IHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiUGFzdGUgRm9udCIsICJQYXN0ZSBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZVJ1bGVyOiByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIlBhc3RlIFJ1bGVyIiwgIlBhc3RlIFJ1bGVyIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpU
eXBpbmdEZWxldGVTZWxlY3Rpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVC
YWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZvcndhcmQ6CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5
cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0
ZUxpbmVGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0VGV4dDoKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydExpbmVCcmVhazoKKyAgICBjYXNlIEVkaXRB
Y3Rpb246OlR5cGluZ0luc2VydFBhcmFncmFwaDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJUeXBpbmciLCAiVHlwaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQ3JlYXRlTGluazogcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJDcmVhdGUgTGluayIsICJDcmVhdGUgTGluayAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblVubGluazogcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJVbmxpbmsiLCAiVW5saW5rIChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0VW5vcmRlcmVk
TGlzdDoKLSAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRPcmRlcmVkTGlzdDoKKyAgICBjYXNlIEVk
aXRBY3Rpb246OkNyZWF0ZUxpbms6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQ3JlYXRlIExp
bmsiLCAiQ3JlYXRlIExpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVubGluazogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJVbmxpbmsiLCAiVW5saW5rIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRVbm9yZGVyZWRMaXN0OgorICAgIGNhc2Ug
RWRpdEFjdGlvbjo6SW5zZXJ0T3JkZXJlZExpc3Q6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiSW5zZXJ0IExpc3QiLCAiSW5zZXJ0IExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Gb3JtYXRCbG9jazogcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJGb3JtYXR0aW5nIiwgIkZvcm1hdCBCbG9jayAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbklu
ZGVudDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJJbmRlbnQiLCAiSW5kZW50IChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uT3V0
ZGVudDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJPdXRkZW50IiwgIk91dGRlbnQgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246
OkZvcm1hdEJsb2NrOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkZvcm1hdHRpbmciLCAiRm9y
bWF0IEJsb2NrIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpJbmRlbnQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiSW5kZW50
IiwgIkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAg
IGNhc2UgRWRpdEFjdGlvbjo6T3V0ZGVudDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJPdXRk
ZW50IiwgIk91dGRlbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
ICAgICB9CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEyZDNkYzA5MTI0MWQ0NjFiMDM3ZWZjMjk1ZWNl
YTcxZGNmMzM4Y2MuLmVjMDEyZDcwYjM5ZDE3ZjliMzg4MmUyYWUxNmFkYzYwMTJmMjAzY2EgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1NCBAQAorMjAxOC0wOS0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBbbWFjT1NdIFtXSzJdIFN1cHBvcnQgY2hhbmdpbmcgYXR0cmlidXRlcyBm
b3Igc2VsZWN0ZWQgdGV4dCAodGV4dCBzaGFkb3csIHVuZGVybGluZSwgc3RyaWtlLXRocm91Z2gp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzNTYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0MTg1Njc0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBuZXcgQVBJIHRlc3QgdG8gdmVyaWZ5
IHRoYXQgc29tZSBmb250IGF0dHJpYnV0ZXMgKHRleHQgc2hhZG93LCB1bmRlcmxpbmUsIGFuZCBz
dHJpa2UtdGhyb3VnaCkgY2FuIGJlCisgICAgICAgIGFkZGVkIGFuZCByZW1vdmVkIHVzaW5nIE5T
Rm9udFBhbmVsLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rm9udE1hbmFnZXJUZXN0cy5tbToKKworICAgICAgICBBZGQgdGhlIG5ldyBBUEkgdGVzdC4KKwor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvTlNGb250
UGFuZWxUZXN0aW5nLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL05TRm9u
dFBhbmVsVGVzdGluZy5tbTogQWRkZWQuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IGZpbGUg
dGhhdCBleHRlbmRzIE5TRm9udFBhbmVsIHdpdGggc29tZSBhZGRpdGlvbmFsIHRlc3RpbmcgZnVu
Y3Rpb25hbGl0eS4gVGhpcyBpbmNsdWRlcyB0aGUKKyAgICAgICAgYWJpbGl0eSB0byBpbnRlcmFj
dCB3aXRoIHRoZSB0ZXh0IHNoYWRvdyB0b2dnbGUgYnV0dG9uLCBjaG9vc2UgdGhlIHRleHQgc2hh
ZG93IGJsdXIgcmFkaXVzIGFuZCBvcGFjaXR5LCBhbmQKKyAgICAgICAgY2hhbmdlIHVuZGVybGlu
ZSBhbmQgc3RyaWtlLXRocm91Z2ggc3R5bGVzLgorCisgICAgICAgIChmaW5kU3Vidmlld09mQ2xh
c3MpOgorICAgICAgICAoZmluZE1lbnVJdGVtV2l0aFRpdGxlKToKKyAgICAgICAgKC1bTlNGb250
UGFuZWwgZm9udEVmZmVjdHNCb3hdKToKKworICAgICAgICBOU0ZvbnRFZmZlY3RzQm94IChhbiBp
bnRlcm5hbCBBcHBLaXQgY2xhc3MpIGlzIHRoZSBzZW5kZXIgaW4gdGhlIGNhc2Ugd2hlcmUgLWNo
YW5nZUF0dHJpYnV0ZXM6IGlzIGludm9rZWQKKyAgICAgICAgdGhyb3VnaCBpbnRlcmFjdGlvbiB3
aXRoIHRoZSBmb250IHBhbmVsLiBUbyBzaW11bGF0ZSB0aGlzIGZvciB0ZXN0aW5nLCBncmFiIHRo
aXMgZm9udCBlZmZlY3RzIGJveCBhbmQgcGFzcyBpdAorICAgICAgICBkaXJlY3RvcnkgdG8gLWNo
YW5nZUF0dHJpYnV0ZXM6LgorCisgICAgICAgICgtW05TRm9udFBhbmVsIGNob29zZVVuZGVybGlu
ZU1lbnVJdGVtV2l0aFRpdGxlOl0pOgorICAgICAgICAoLVtOU0ZvbnRQYW5lbCBjaG9vc2VTdHJp
a2VUaHJvdWdoTWVudUl0ZW1XaXRoVGl0bGU6XSk6CisKKyAgICAgICAgVGhlIHN1cHBvcnRlZCB2
YWx1ZXMgZm9yIHRoZXNlIG1lbnUgaXRlbXMgYXJlICJub25lIiBhbmQgInNpbmdsZSIsIHdoaWNo
IGFkZHMgYSBzaW5nbGUgdW5kZXJsaW5lIG9yCisgICAgICAgIHN0cmlrZS10aHJvdWdoIHRvIHNl
bGVjdGVkIHRleHQuIFdlIGdyYWIgdGhlc2UgbWVudSBpdGVtcyBieSBhc2tpbmcgZm9yIHRoZSBm
b250IHBhbmVsJ3MgTlNUb29sYmFyLCBhbmQgZmluZGluZworICAgICAgICB0aGUgcmVsZXZhbnQg
bWVudSBpdGVtcyB2aWEgdG9vbGJhciBpdGVtIGlkZW50aWZpZXJzLgorCisgICAgICAgICgtW05T
Rm9udFBhbmVsIF9kaWRDaGFuZ2VBdHRyaWJ1dGVzXSk6CisgICAgICAgICgtW05TRm9udFBhbmVs
IHNoYWRvd0JsdXJTbGlkZXJdKToKKyAgICAgICAgKC1bTlNGb250UGFuZWwgc2hhZG93T3BhY2l0
eVNsaWRlcl0pOgorICAgICAgICAoLVtOU0ZvbnRQYW5lbCBzaGFkb3dUb2dnbGVCdXR0b25dKToK
KyAgICAgICAgKC1bTlNGb250UGFuZWwgdG9nZ2xlU2hhZG93XSk6CisgICAgICAgICgtW05TRm9u
dFBhbmVsIHNoYWRvd09wYWNpdHldKToKKyAgICAgICAgKC1bTlNGb250UGFuZWwgc2V0U2hhZG93
T3BhY2l0eTpdKToKKyAgICAgICAgKC1bTlNGb250UGFuZWwgc2hhZG93Qmx1cl0pOgorICAgICAg
ICAoLVtOU0ZvbnRQYW5lbCBzZXRTaGFkb3dCbHVyOl0pOgorICAgICAgICAoLVtOU0ZvbnRQYW5l
bCBfdG9vbGJhckl0ZW1XaXRoSWRlbnRpZmllcjpdKToKKwogMjAxOC0wOS0wNiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIENhbm5vdCBj
aGFuZ2UgZm9udCBzaXplIGF0IHNlbGVjdGlvbiB1bnRpbCBmb250IHBhbmVsIGlzIHNob3duCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzNjc3N2E4MzU4ZWNlMzI3NjExYjdjZTViNjUyZjky
Y2MxYzAzNzkuLjRjYjVlY2NhNGM0YTcxOTBjZDFlMzRlYWM2ZjE0NDFjOWI3ZDE1YzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTQsNiArNzk0LDcgQEAKIAkJRjQyREE1MTYxRDhDRUZF
NDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MkRBNTE1MUQ4
Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLzsg
fTsKIAkJRjQzRTNCQkYyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzRTNCQkUyMERB
REExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovOyB9OwogCQlGNDNFM0JDMTIw
REFEQkM1MDBBNEU3RUQgLyogZml4ZWQtbmF2LWJhci5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0M0UzQkMwMjBEQURCODAwMEE0RTdF
RCAvKiBmaXhlZC1uYXYtYmFyLmh0bWwgKi87IH07CisJCUY0NDI4NTFEMjE0MERGMjkwMENDREEy
MiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDQyODUxQzIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxU
ZXN0aW5nLm1tICovOyB9OwogCQlGNDQ1MUM3NjFFQjhGRDg5MDAyMEM1REEgLyogdHdvLXBhcmFn
cmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBh
cmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKIAkJRjQ0Qzc5RkYyMEY5RTg3MTAw
MTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEM3OUZFMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJz
ZXJZaWVsZFRva2VuVGVzdHMubW0gKi87IH07CiAJCUY0NEM3QTAwMjBGOUVFQkYwMDE0NDc4QyAv
KiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllpZWxk
VG9rZW5QbHVnSW4ubW0gKi87IH07CkBAIC0yMDM1LDYgKzIwMzYsOCBAQAogCQlGNDJEQTUxNTFE
OENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2Fk
Lmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdENvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3Vz
LW9ubG9hZC5odG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNDNFM0JCRTIw
REFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1Njcm9sbFZpZXdUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQzRTNCQzAyMERBREI4MDAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJmaXhlZC1uYXYtYmFyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDQy
ODUxQjIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5TRm9udFBhbmVsVGVzdGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NDQyODUxQzIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTlNGb250UGFuZWxUZXN0aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDQ1MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250
ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0d28tcGFyYWdy
YXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDRDNzlGRDIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWll
bGRUb2tlblRlc3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE0OSw2ICszMTUyLDggQEAKIAkJCQkxQUVE
RTIyNDEzRTVFN0EwMDBFNjJGRTggLyogSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tICov
LAogCQkJCUMwODEyMjQwMTNGQzE3MjQwMERDMzlBRSAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSAq
LywKIAkJCQkyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLywKKwkJCQlG
NDQyODUxQjIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLmggKi8sCisJCQkJ
RjQ0Mjg1MUMyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9udFBhbmVsVGVzdGluZy5tbSAqLywKIAkJ
CQlCQzEzMTg4NDExNzExNEI2MDBCNjk3MjcgLyogUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0gKi8s
CiAJCQkJQkM5MDk1NUMxMjU1NDhBQTAwMDgzNzU2IC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSAq
LywKIAkJCQlDMDgxMjI0MzEzRkMxOUVDMDBEQzM5QUUgLyogU3ludGhldGljQmFja2luZ1NjYWxl
RmFjdG9yV2luZG93LmggKi8sCkBAIC0zODgwLDYgKzM4ODUsNyBAQAogCQkJCUNEMkQwRDFBMjEz
NDY1NTYwMDE4Qzc4NCAvKiBOb3dQbGF5aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRkY1
NTUxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTEwRjA0N0UxRTNBRDI5QzAwQzk1RTE5IC8qIE5TRmlsZU1hbmFnZXJFeHRy
YXMubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNDQyODUxRDIxNDBERjI5MDBDQ0RBMjIgLyogTlNG
b250UGFuZWxUZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdBMjJBQTcxRENBQTI3MjAw
QUZCRkM0IC8qIE9ic2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNBZnRlckNyYXNoLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjUxQTQxMUFGNjAwNDQ3QzRDIC8qIE9wZW5BbmRDbG9z
ZVdpbmRvdy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFQkNBMTJGMUUzQTY2MDEwMEM3MzI5MyAv
KiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0KaW5kZXgg
ZDE1YTBjMzVhNjk4ZDFkNjAxNzQ3MzdlYWM2MjkzY2Q5YzgzY2NkOC4uMjJiZjg3YzZhYmU1YjBj
YzAzMzE5MDY2YmIwMWIwY2UxMGE3MThjZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpZiBQ
TEFURk9STShNQUMpICYmIFdLX0FQSV9FTkFCTEVECiAKKyNpbXBvcnQgIkFwcEtpdFNQSS5oIgor
I2ltcG9ydCAiTlNGb250UGFuZWxUZXN0aW5nLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmll
d1ByaXZhdGUuaD4KQEAgLTE3OCw2ICsxODAsNzQgQEAgVEVTVChGb250TWFuYWdlclRlc3RzLCBD
aGFuZ2VGb250V2l0aFBhbmVsKQogICAgIEVYUEVDVF9FUShsYXJnZUl0YWxpY0xpZ2h0QXZlbmly
Rm9udCwgZm9udE1hbmFnZXIuc2VsZWN0ZWRGb250KTsKIH0KIAorVEVTVChGb250TWFuYWdlclRl
c3RzLCBDaGFuZ2VBdHRyaWJ1dGVzV2l0aEZvbnRFZmZlY3RzQm94KQoreworICAgIE5TRm9udE1h
bmFnZXIgKmZvbnRNYW5hZ2VyID0gW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdOwor
ICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JGb250TWFuYWdlclRlc3RpbmcoZm9udE1hbmFn
ZXIpOworCisgICAgTlNGb250UGFuZWwgKmZvbnRQYW5lbCA9IFtmb250TWFuYWdlciBmb250UGFu
ZWw6WUVTXTsKKyAgICBbZm9udFBhbmVsIHNldElzVmlzaWJsZTpZRVNdOworCisgICAgYXV0byB0
ZXh0RGVjb3JhdGlvbnNBcm91bmRTZWxlY3Rpb24gPSBbd2ViVmlld10geworICAgICAgICBOU1N0
cmluZyAqZGVjb3JhdGlvbnNBdFN0YXJ0ID0gW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0
aW9uU3RhcnQ6QCItd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0Il07CisgICAgICAg
IE5TU3RyaW5nICpkZWNvcmF0aW9uc0F0RW5kID0gW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2Vs
ZWN0aW9uRW5kOkAiLXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWluLWVmZmVjdCJdOworICAgICAg
ICBpZiAoW2RlY29yYXRpb25zQXRTdGFydCBpc0VxdWFsVG9TdHJpbmc6ZGVjb3JhdGlvbnNBdEVu
ZF0gfHwgZGVjb3JhdGlvbnNBdFN0YXJ0ID09IGRlY29yYXRpb25zQXRFbmQpCisgICAgICAgICAg
ICByZXR1cm4gZGVjb3JhdGlvbnNBdFN0YXJ0OworICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCIoJUAsICVAKSIsIGRlY29yYXRpb25zQXRTdGFydCwgZGVjb3JhdGlv
bnNBdEVuZF07CisgICAgfTsKKworICAgIGF1dG8gdGV4dFNoYWRvd0Fyb3VuZFNlbGVjdGlvbiA9
IFt3ZWJWaWV3XSB7CisgICAgICAgIE5TU3RyaW5nICpzaGFkb3dBdFN0YXJ0ID0gW3dlYlZpZXcg
c3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJ0ZXh0LXNoYWRvdyJdOworICAgICAgICBO
U1N0cmluZyAqc2hhZG93QXRFbmQgPSBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25F
bmQ6QCJ0ZXh0LXNoYWRvdyJdOworICAgICAgICBpZiAoW3NoYWRvd0F0U3RhcnQgaXNFcXVhbFRv
U3RyaW5nOnNoYWRvd0F0RW5kXSB8fCBzaGFkb3dBdFN0YXJ0ID09IHNoYWRvd0F0RW5kKQorICAg
ICAgICAgICAgcmV0dXJuIHNoYWRvd0F0U3RhcnQ7CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIiglQCwgJUApIiwgc2hhZG93QXRTdGFydCwgc2hhZG93QXRFbmRd
OworICAgIH07CisKKyAgICBbd2ViVmlldyBzZWxlY3RXb3JkOm5pbF07CisgICAgW2ZvbnRQYW5l
bCBjaG9vc2VVbmRlcmxpbmVNZW51SXRlbVdpdGhUaXRsZTpAInNpbmdsZSJdOworICAgIEVYUEVD
VF9XS19TVFJFUSgiZm9vIiwgW3dlYlZpZXcgc2VsZWN0ZWRUZXh0XSk7CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJ1bmRlcmxpbmUiLCB0ZXh0RGVjb3JhdGlvbnNBcm91bmRTZWxlY3Rpb24oKSk7CisK
KyAgICBbZm9udFBhbmVsIGNob29zZVVuZGVybGluZU1lbnVJdGVtV2l0aFRpdGxlOkAibm9uZSJd
OworICAgIEVYUEVDVF9XS19TVFJFUSgibm9uZSIsIHRleHREZWNvcmF0aW9uc0Fyb3VuZFNlbGVj
dGlvbigpKTsKKworICAgIFt3ZWJWaWV3IHNlbGVjdE5leHRXb3JkXTsKKyAgICBbZm9udFBhbmVs
IGNob29zZVN0cmlrZVRocm91Z2hNZW51SXRlbVdpdGhUaXRsZTpAInNpbmdsZSJdOworICAgIEVY
UEVDVF9XS19TVFJFUSgiYmFyIiwgW3dlYlZpZXcgc2VsZWN0ZWRUZXh0XSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJsaW5lLXRocm91Z2giLCB0ZXh0RGVjb3JhdGlvbnNBcm91bmRTZWxlY3Rpb24o
KSk7CisKKyAgICBbZm9udFBhbmVsIGNob29zZVN0cmlrZVRocm91Z2hNZW51SXRlbVdpdGhUaXRs
ZTpAIm5vbmUiXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vbmUiLCB0ZXh0RGVjb3JhdGlvbnNB
cm91bmRTZWxlY3Rpb24oKSk7CisKKyAgICBbd2ViVmlldyBzZWxlY3ROZXh0V29yZF07CisgICAg
Zm9udFBhbmVsLnNoYWRvd0JsdXIgPSA4OworICAgIGZvbnRQYW5lbC5zaGFkb3dPcGFjaXR5ID0g
MTsKKyAgICBbZm9udFBhbmVsIHRvZ2dsZVNoYWRvd107CisgICAgRVhQRUNUX1dLX1NUUkVRKCJi
YXoiLCBbd2ViVmlldyBzZWxlY3RlZFRleHRdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInJnYigw
LCAwLCAwKSAwcHggMXB4IDhweCIsIHRleHRTaGFkb3dBcm91bmRTZWxlY3Rpb24oKSk7CisKKyAg
ICBbZm9udFBhbmVsIHRvZ2dsZVNoYWRvd107CisgICAgRVhQRUNUX1dLX1NUUkVRKCJub25lIiwg
dGV4dFNoYWRvd0Fyb3VuZFNlbGVjdGlvbigpKTsKKworICAgIC8vIE5vdyBjb21iaW5lIGFsbCB0
aHJlZSBhdHRyaWJ1dGVzIHRvZ2V0aGVyLgorICAgIFt3ZWJWaWV3IHNlbGVjdEFsbDpuaWxdOwor
ICAgIGZvbnRQYW5lbC5zaGFkb3dCbHVyID0gNTsKKyAgICBmb250UGFuZWwuc2hhZG93T3BhY2l0
eSA9IDAuMjsKKyAgICBbZm9udFBhbmVsIHRvZ2dsZVNoYWRvd107CisgICAgW2ZvbnRQYW5lbCBj
aG9vc2VVbmRlcmxpbmVNZW51SXRlbVdpdGhUaXRsZTpAInNpbmdsZSJdOworICAgIFtmb250UGFu
ZWwgY2hvb3NlU3RyaWtlVGhyb3VnaE1lbnVJdGVtV2l0aFRpdGxlOkAic2luZ2xlIl07CisgICAg
RVhQRUNUX1dLX1NUUkVRKCJmb28gYmFyIGJheiIsIFt3ZWJWaWV3IHNlbGVjdGVkVGV4dF0pOwor
ICAgIEVYUEVDVF9XS19TVFJFUSgicmdiYSgwLCAwLCAwLCAwLjIpIDBweCAxcHggNXB4IiwgdGV4
dFNoYWRvd0Fyb3VuZFNlbGVjdGlvbigpKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInVuZGVybGlu
ZSBsaW5lLXRocm91Z2giLCB0ZXh0RGVjb3JhdGlvbnNBcm91bmRTZWxlY3Rpb24oKSk7CisKKyAg
ICBbZm9udFBhbmVsIHRvZ2dsZVNoYWRvd107CisgICAgW2ZvbnRQYW5lbCBjaG9vc2VVbmRlcmxp
bmVNZW51SXRlbVdpdGhUaXRsZTpAIm5vbmUiXTsKKyAgICBbZm9udFBhbmVsIGNob29zZVN0cmlr
ZVRocm91Z2hNZW51SXRlbVdpdGhUaXRsZTpAIm5vbmUiXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
Im5vbmUiLCB0ZXh0U2hhZG93QXJvdW5kU2VsZWN0aW9uKCkpOworICAgIEVYUEVDVF9XS19TVFJF
USgibm9uZSIsIHRleHREZWNvcmF0aW9uc0Fyb3VuZFNlbGVjdGlvbigpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBXS19B
UElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRl
eCA2MTNkZmFlOGFhMWRmZjc2NGM3NzNjZmM1MDE0ZTVjM2UxNjM4MTY2Li41ZjE2OWQ5YjRkNzRk
YTU3MTNlM2VhM2M4MTg1YTJhNzJhOGFkNTkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcuaApAQCAtMzcsNiArMzcsNyBAQAogQGludGVyZmFjZSBXS1dlYlZpZXcg
KEFkZGl0aW9uYWxEZWNsYXJhdGlvbnMpCiAjaWYgUExBVEZPUk0oTUFDKQogLSAodm9pZClwYXN0
ZTooaWQpc2VuZGVyOworLSAodm9pZCljaGFuZ2VBdHRyaWJ1dGVzOihpZClzZW5kZXI7CiAjZW5k
aWYKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvTlNGb250UGFu
ZWxUZXN0aW5nLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9OU0ZvbnRQYW5lbFRlc3Rpbmcu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYjA0ZDQ4ZjNlOTg1ZmEyMjFkYTYxYzY5ZGExYmViMjg2MTQxZDliCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvTlNGb250UGFuZWxUZXN0
aW5nLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
UExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0
Lmg+CisKK0BpbnRlcmZhY2UgTlNGb250UGFuZWwgKFRlc3RXZWJLaXRBUEkpCisKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBkb3VibGUgc2hhZG93T3BhY2l0eTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBkb3VibGUgc2hhZG93Qmx1cjsKKworLSAodm9pZCl0b2dnbGVTaGFkb3c7CistICh2b2lkKWNo
b29zZVVuZGVybGluZU1lbnVJdGVtV2l0aFRpdGxlOihOU1N0cmluZyAqKWl0ZW1UaXRsZTsKKy0g
KHZvaWQpY2hvb3NlU3RyaWtlVGhyb3VnaE1lbnVJdGVtV2l0aFRpdGxlOihOU1N0cmluZyAqKWl0
ZW1UaXRsZTsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL05TRm9udFBhbmVsVGVzdGluZy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL05T
Rm9udFBhbmVsVGVzdGluZy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODFkMWQ1NzhiMGEyZmY0NDFmZDE5MGU3
NzkxOWIxN2NiZGRlZDdmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9t
YWMvTlNGb250UGFuZWxUZXN0aW5nLm1tCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5TRm9udFBhbmVsVGVzdGluZy5oIgorCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxvYmpjL3J1bnRp
bWUuaD4KKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTMwMAorc3Rh
dGljIGNvbnN0IE5TQ2VsbFN0YXRlVmFsdWUgTlNDb250cm9sU3RhdGVWYWx1ZU9mZiA9IE5TT2Zm
U3RhdGU7CitzdGF0aWMgY29uc3QgTlNDZWxsU3RhdGVWYWx1ZSBOU0NvbnRyb2xTdGF0ZVZhbHVl
T24gPSBOU09uU3RhdGU7CisjZW5kaWYKKworQGludGVyZmFjZSBOU0JveCAoTlNGb250RWZmZWN0
c0JveCkKKy8vIEludm9rZWQgYWZ0ZXIgYSBmb250IGVmZmVjdCAoZS5nLiBzaW5nbGUgc3RyaWtl
LXRocm91Z2gpIGlzIGNob3Nlbi4KKy0gKHZvaWQpX29wZW5FZmZlY3RzQnV0dG9uOihpZClzZW5k
ZXI7CitAZW5kCisKK3N0YXRpYyBOU1ZpZXcgKmZpbmRTdWJ2aWV3T2ZDbGFzcyhOU1ZpZXcgKnZp
ZXcsIENsYXNzIHRhcmdldENsYXNzKQoreworICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOnRh
cmdldENsYXNzXSkKKyAgICAgICAgcmV0dXJuIHZpZXc7CisKKyAgICBmb3IgKE5TVmlldyAqc3Vi
dmlldyBpbiB2aWV3LnN1YnZpZXdzKSB7CisgICAgICAgIGlmIChOU1ZpZXcgKnRhcmdldFZpZXcg
PSBmaW5kU3Vidmlld09mQ2xhc3Moc3VidmlldywgdGFyZ2V0Q2xhc3MpKQorICAgICAgICAgICAg
cmV0dXJuIHRhcmdldFZpZXc7CisgICAgfQorICAgIHJldHVybiBuaWw7Cit9CisKK3N0YXRpYyBO
U01lbnVJdGVtICpmaW5kTWVudUl0ZW1XaXRoVGl0bGUoTlNQb3BVcEJ1dHRvbiAqYnV0dG9uLCBO
U1N0cmluZyAqdGl0bGUpCit7CisgICAgZm9yIChOU01lbnVJdGVtICppdGVtIGluIGJ1dHRvbi5p
dGVtQXJyYXkpIHsKKyAgICAgICAgaWYgKFtpdGVtLnRpdGxlLmxvd2VyY2FzZVN0cmluZyBpc0Vx
dWFsVG9TdHJpbmc6dGl0bGUubG93ZXJjYXNlU3RyaW5nXSkKKyAgICAgICAgICAgIHJldHVybiBp
dGVtOworICAgIH0KKyAgICByZXR1cm4gbmlsOworfQorCitAaW1wbGVtZW50YXRpb24gTlNGb250
UGFuZWwgKFRlc3RXZWJLaXRBUEkpCisKKy0gKE5TQm94ICopZm9udEVmZmVjdHNCb3gKK3sKKyAg
ICB2b2lkKiByZXN1bHQgPSBudWxscHRyOworICAgIG9iamVjdF9nZXRJbnN0YW5jZVZhcmlhYmxl
KHNlbGYsICJfZm9udEVmZmVjdHNCb3giLCAmcmVzdWx0KTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TlNCb3ggKj4ocmVzdWx0KTsKK30KKworLSAodm9pZCljaG9vc2VVbmRlcmxpbmVNZW51SXRl
bVdpdGhUaXRsZTooTlNTdHJpbmcgKilpdGVtVGl0bGUKK3sKKyAgICBOU1BvcFVwQnV0dG9uICpi
dXR0b24gPSAoTlNQb3BVcEJ1dHRvbiAqKVtzZWxmIF90b29sYmFySXRlbVdpdGhJZGVudGlmaWVy
OkAiTlNGb250UGFuZWxVbmRlcmxpbmVUb29sYmFySXRlbSJdLnZpZXc7CisgICAgW2J1dHRvbiBz
ZWxlY3RJdGVtOmZpbmRNZW51SXRlbVdpdGhUaXRsZShidXR0b24sIGl0ZW1UaXRsZSldOworICAg
IFtzZWxmLmZvbnRFZmZlY3RzQm94IF9vcGVuRWZmZWN0c0J1dHRvbjpidXR0b25dOworICAgIFtz
ZWxmIF9kaWRDaGFuZ2VBdHRyaWJ1dGVzXTsKK30KKworLSAodm9pZCljaG9vc2VTdHJpa2VUaHJv
dWdoTWVudUl0ZW1XaXRoVGl0bGU6KE5TU3RyaW5nICopaXRlbVRpdGxlCit7CisgICAgTlNQb3BV
cEJ1dHRvbiAqYnV0dG9uID0gKE5TUG9wVXBCdXR0b24gKilbc2VsZiBfdG9vbGJhckl0ZW1XaXRo
SWRlbnRpZmllcjpAIk5TRm9udFBhbmVsU3RyaWtldGhyb3VnaFRvb2xiYXJJdGVtIl0udmlldzsK
KyAgICBbYnV0dG9uIHNlbGVjdEl0ZW06ZmluZE1lbnVJdGVtV2l0aFRpdGxlKGJ1dHRvbiwgaXRl
bVRpdGxlKV07CisgICAgW3NlbGYuZm9udEVmZmVjdHNCb3ggX29wZW5FZmZlY3RzQnV0dG9uOmJ1
dHRvbl07CisgICAgW3NlbGYgX2RpZENoYW5nZUF0dHJpYnV0ZXNdOworfQorCistICh2b2lkKV9k
aWRDaGFuZ2VBdHRyaWJ1dGVzCit7CisgICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBO
U0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyOworICAgIGlmIChzZWxmID09IFtmb250TWFu
YWdlciBmb250UGFuZWw6Tk9dKQorICAgICAgICBbZm9udE1hbmFnZXIudGFyZ2V0IGNoYW5nZUF0
dHJpYnV0ZXM6c2VsZi5mb250RWZmZWN0c0JveF07Cit9CisKKy0gKE5TU2xpZGVyICopc2hhZG93
Qmx1clNsaWRlcgoreworICAgIHJldHVybiAoTlNTbGlkZXIgKilmaW5kU3Vidmlld09mQ2xhc3Mo
W3NlbGYgX3Rvb2xiYXJJdGVtV2l0aElkZW50aWZpZXI6QCJOU0ZvbnRQYW5lbFNoYWRvd0JsdXJU
b29sYmFySXRlbSJdLnZpZXcsIE5TU2xpZGVyLmNsYXNzKTsKK30KKworLSAoTlNTbGlkZXIgKilz
aGFkb3dPcGFjaXR5U2xpZGVyCit7CisgICAgcmV0dXJuIChOU1NsaWRlciAqKWZpbmRTdWJ2aWV3
T2ZDbGFzcyhbc2VsZiBfdG9vbGJhckl0ZW1XaXRoSWRlbnRpZmllcjpAIk5TRm9udFBhbmVsU2hh
ZG93T3BhY2l0eVRvb2xiYXJJdGVtIl0udmlldywgTlNTbGlkZXIuY2xhc3MpOworfQorCistIChO
U0J1dHRvbiAqKXNoYWRvd1RvZ2dsZUJ1dHRvbgoreworICAgIHJldHVybiAoTlNCdXR0b24gKilb
c2VsZiBfdG9vbGJhckl0ZW1XaXRoSWRlbnRpZmllcjpAIk5TRm9udFBhbmVsU2hhZG93VG9nZ2xl
VG9vbGJhckl0ZW0iXS52aWV3OworfQorCistICh2b2lkKXRvZ2dsZVNoYWRvdworeworICAgIE5T
QnV0dG9uICpzaGFkb3dUb2dnbGVCdXR0b24gPSBzZWxmLnNoYWRvd1RvZ2dsZUJ1dHRvbjsKKyAg
ICBzaGFkb3dUb2dnbGVCdXR0b24uc3RhdGUgPSBzaGFkb3dUb2dnbGVCdXR0b24uc3RhdGUgPT0g
TlNDb250cm9sU3RhdGVWYWx1ZU9mZiA/IE5TQ29udHJvbFN0YXRlVmFsdWVPbiA6IE5TQ29udHJv
bFN0YXRlVmFsdWVPZmY7CisgICAgW3NlbGYgX2RpZENoYW5nZUF0dHJpYnV0ZXNdOworfQorCist
IChkb3VibGUpc2hhZG93T3BhY2l0eQoreworICAgIHJldHVybiBzZWxmLnNoYWRvd09wYWNpdHlT
bGlkZXIuZG91YmxlVmFsdWU7Cit9CisKKy0gKHZvaWQpc2V0U2hhZG93T3BhY2l0eTooZG91Ymxl
KXNoYWRvd09wYWNpdHkKK3sKKyAgICBzZWxmLnNoYWRvd09wYWNpdHlTbGlkZXIuZG91YmxlVmFs
dWUgPSBzaGFkb3dPcGFjaXR5OworICAgIGlmIChzZWxmLnNoYWRvd1RvZ2dsZUJ1dHRvbi5zdGF0
ZSA9PSBOU0NvbnRyb2xTdGF0ZVZhbHVlT24pCisgICAgICAgIFtzZWxmIF9kaWRDaGFuZ2VBdHRy
aWJ1dGVzXTsKK30KKworLSAoZG91YmxlKXNoYWRvd0JsdXIKK3sKKyAgICByZXR1cm4gc2VsZi5z
aGFkb3dCbHVyU2xpZGVyLmRvdWJsZVZhbHVlOworfQorCistICh2b2lkKXNldFNoYWRvd0JsdXI6
KGRvdWJsZSlzaGFkb3dCbHVyCit7CisgICAgc2VsZi5zaGFkb3dCbHVyU2xpZGVyLmRvdWJsZVZh
bHVlID0gc2hhZG93Qmx1cjsKKyAgICBpZiAoc2VsZi5zaGFkb3dUb2dnbGVCdXR0b24uc3RhdGUg
PT0gTlNDb250cm9sU3RhdGVWYWx1ZU9uKQorICAgICAgICBbc2VsZiBfZGlkQ2hhbmdlQXR0cmli
dXRlc107Cit9CisKKy0gKE5TVG9vbGJhckl0ZW0gKilfdG9vbGJhckl0ZW1XaXRoSWRlbnRpZmll
cjooTlNTdHJpbmcgKilpdGVtSWRlbnRpZmllcgoreworICAgIGZvciAoTlNUb29sYmFySXRlbSAq
aXRlbSBpbiBzZWxmLnRvb2xiYXIuaXRlbXMpIHsKKyAgICAgICAgaWYgKFtpdGVtLml0ZW1JZGVu
dGlmaWVyIGlzRXF1YWxUb1N0cmluZzppdGVtSWRlbnRpZmllcl0pCisgICAgICAgICAgICByZXR1
cm4gaXRlbTsKKyAgICB9CisgICAgcmV0dXJuIG5pbDsKK30KKworQGVuZAorCisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349097</attachid>
            <date>2018-09-06 17:23:09 -0700</date>
            <delta_ts>2018-09-06 20:05:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189383-20180906172308.patch</filename>
            <type>text/plain</type>
            <size>115839</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBiMzNhMmY1NWUyNmRj
MWQ1MTY0YWJjNWUyMzA0ZDJlZGYxODBjNS4uNjgxZTdlYmNhMWE4YmM1MDBmNTgwYTMxOTYzMzlm
ZTJmNGExMTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAxOC0wOS0wNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBX
ZWJDb3JlOjpFZGl0QWN0aW9uIHRvIGJlIGFuIDgtYml0IGVudW0gY2xhc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTM4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgRWRpdEFjdGlv
bi5oIGRlZmluZXMgYW4gRWRpdEFjdGlvbiBhcyBhbiBlbnVtLiBUaGlzIHBhdGNoIGNoYW5nZXMg
RWRpdEFjdGlvbiB0byBpbnN0ZWFkIGJlIGFuIDgtYml0LQorICAgICAgICB3aWRlIGVudW0gY2xh
c3MsIGFuZCByZW5hbWVzIGFsbCBFZGl0QWN0aW9uIHZhbHVlcyBmcm9tIEVkaXRBY3Rpb24oKikg
dG8gRWRpdEFjdGlvbjo6KCopLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZVNlbGVjdGlvbkVkaXRpbmdBY3Rpb25G
b3JFZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp3YXNDcmVhdGVM
aW5rQ29tbWFuZCBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5o
OgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2Vy
dFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29t
bWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRB
Y3Rpb24uaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnB1dFR5cGVOYW1lRm9yRWRpdGluZ0FjdGlv
bik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RXZlbnREYXRhRm9yRWRpdGluZ1N0
eWxlQW5kQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNsZWFyVGV4dENvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpoYW5kbGVUZXh0RXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGx5Q29tbWFuZFRvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUlu
c2VydEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVCYWNrQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUZvbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVGb250U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlRm9udFNpemVEZWx0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpleGVjdXRlRm9yZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmV4
ZWN1dGVKdXN0aWZ5Q2VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVKdXN0aWZ5RnVs
bCk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlSnVzdGlmeUxlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6ZXhlY3V0ZUp1c3RpZnlSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTWFr
ZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhl
Y3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6
ZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdl
YkNvcmU6OmV4ZWN1dGVTdHJpa2V0aHJvdWdoKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVT
dWJzY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVN1cGVyc2NyaXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmV4ZWN1dGVUb2dnbGVCb2xkKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVUb2dnbGVJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVVuZGVybGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpleGVjdXRlVW5zY3JpcHQpOgorICAgICAgICAqIGVkaXRpbmcvRm9y
bWF0QmxvY2tDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydExpc3RDb21tYW5kOjplZGl0aW5nQWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBs
aWVyKToKKyAgICAgICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Jl
bW92ZU5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQ6OlJlcGxh
Y2VSYW5nZVdpdGhUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlUmFuZ2VX
aXRoVGV4dENvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OmNvbXBsZXRlSFRNTFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpwZXJmb3JtVHJpdmlhbFJlcGxhY2UpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxpbmdDb3Jy
ZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbGluZ0NvcnJlY3Rpb25D
b21tYW5kOjpTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVkaXRBY3Rpb25Gb3JUeXBpbmdDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OmVkaXRBY3Rpb25Jc0RlbGV0ZUJ5VHlwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6OmlzQmVmb3JlSW5wdXRFdmVudENhbmNlbGFibGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGEgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGFUcmFuc2Zl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9VbmxpbmtDb21tYW5kLmg6
CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKToKKyAg
ICAgICAgKiBlZGl0aW5nL2lvcy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0
RHJhZyk6CisKIDIwMTgtMDktMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW21hY09TXSBbV0syXSBTdXBwb3J0IGNoYW5naW5nIGF0dHJpYnV0ZXMg
Zm9yIHNlbGVjdGVkIHRleHQgKHRleHQgc2hhZG93LCB1bmRlcmxpbmUsIHN0cmlrZS10aHJvdWdo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBmMDFjZDkzMzk1ZThkZWJlOGZkMDZjZjQyM2YxNTdiNGVkM2IyM2JmLi45
OTQ5MDhmMDJjZjI3YWUyNzI5OGYwMWI4NzJjYzFmOTVjYTljZGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE4LTA5LTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlZmFjdG9yIFdlYkNvcmU6OkVkaXRBY3Rpb24gdG8gYmUgYW4gOC1i
aXQgZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg5MzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmNoYW5nZUZvbnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y2hhbmdlRm9udCk6CisKIDIwMTgtMDktMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBbV0syXSBTdXBwb3J0IGNoYW5naW5nIGF0dHJp
YnV0ZXMgZm9yIHNlbGVjdGVkIHRleHQgKHRleHQgc2hhZG93LCB1bmRlcmxpbmUsIHN0cmlrZS10
aHJvdWdoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGM2ZTI3ZWEwZTMyZDc5ODFk
NjE3MjNiNDY5MGU2ODliMGFjMDU4MTguLjcxZmMyYzQxNjkzN2YzZTM5NDg0MWRhYjMyODk5YzQz
YzI4M2U2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxOC0wOS0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvciBXZWJDb3JlOjpFZGl0QWN0aW9uIHRvIGJlIGFuIDgtYml0IGVudW0gY2xh
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTM4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0
QWN0aW9uKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBwYXN0ZUZvbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNoYW5nZUZv
bnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNoYW5nZUF0dHJpYnV0ZXM6XSk6CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IF91bmRvQWN0aW9uRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0b3I6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNoYW5nZUNvbG9yOl0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBzZXRUeXBpbmdTdHlsZTpdKToK
KwogMjAxOC0wOS0wNiAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgR3JvdXAgb3B0aW9ucyBvZiBzY3JvbGxSZWN0VG9WaXNpYmxlIGludG8gYSBzdHJ1Y3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBlZWJhYjc0MjU1MWRlMzk3YTM4Y2M0MjQwOWMz
OTgyOTVhZjZhYTBmLi44YWY4MWVhZDM2YzkwZTJmM2FhMmIxODJjY2RiNjFlNjkxNGYzM2MzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDktMDYg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0
b3IgV2ViQ29yZTo6RWRpdEFjdGlvbiB0byBiZSBhbiA4LWJpdCBlbnVtIGNsYXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICh1bmRvTmFtZUZvckVkaXRBY3Rpb24pOgor
CiAyMDE4LTA5LTA0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgU2Nyb2xsSW50b1ZpZXdPcHRpb25zCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKaW5kZXggNDA5ZmNjZjBkN2QyMjRkMWM3
NzRkN2E4MzA1YzQzZGY4ZDdhODhkNS4uODY5NDU1MTQyMTQyYmIzODlhN2Q2YWY4OWE2Mjg3NGM0
MjRiOGJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaApA
QCAtNDcsMTkgKzQ3LDE5IEBAIHB1YmxpYzoKICAgICBlbnVtIEVBZGRTdHlsZWRFbGVtZW50IHsg
QWRkU3R5bGVkRWxlbWVudCwgRG9Ob3RBZGRTdHlsZWRFbGVtZW50IH07CiAgICAgdHlwZWRlZiBi
b29sICgqSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbikoY29uc3QgRWxlbWVudCopOwog
Ci0gICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0
QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVByb3BlcnR5TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURl
ZmF1bHQpCisgICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBhY3Rpb24g
PSBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzLCBFUHJvcGVydHlMZXZlbCBsZXZlbCA9IFBy
b3BlcnR5RGVmYXVsdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGx5
U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwgYWN0aW9uLCBsZXZlbCkpOwogICAgIH0KLSAg
ICBzdGF0aWMgUmVmPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0
IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJp
YnV0ZXMsIEVQcm9wZXJ0eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQorICAgIHN0YXRp
YyBSZWY8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IEVkaXRpbmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRp
b24mIGVuZCwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVz
LCBFUHJvcGVydHlMZXZlbCBsZXZlbCA9IFByb3BlcnR5RGVmYXVsdCkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwg
c3RhcnQsIGVuZCwgYWN0aW9uLCBsZXZlbCkpOwogICAgIH0KLSAgICBzdGF0aWMgUmVmPEFwcGx5
U3R5bGVDb21tYW5kPiBjcmVhdGUoUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCwgYm9vbCByZW1vdmVP
bmx5ID0gZmFsc2UsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0
ZXMpCisgICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKFJlZjxFbGVtZW50
PiYmIGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSA9IGZhbHNlLCBFZGl0QWN0aW9uIGFjdGlvbiA9
IEVkaXRBY3Rpb246OkNoYW5nZUF0dHJpYnV0ZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBcHBseVN0eWxlQ29tbWFuZChXVEZNb3ZlKGVsZW1lbnQpLCByZW1vdmVPbmx5
LCBhY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgSXNJbmxp
bmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBpc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9u
LCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKQorICAgIHN0
YXRpYyBSZWY8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24g
aXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0
QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZG9jdW1lbnQsIHN0eWxlLCBpc0lubGluZUVsZW1lbnRU
b1JlbW92ZUZ1bmN0aW9uLCBhY3Rpb24pKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IGI0NTIyN2I3Y2IyNmE3NmJjMzk5
ZmMyMGIxOWVjYjU2YzY0ZTViZjUuLmU1ZjMzOTI1M2VlN2RhYWE4NjllMmY2YWJjN2IyZTUyNmQy
NGU2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwCkBAIC0zMjEsMzAgKzMyMSwzMCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBseSgpCiB7CiAgICAgaWYgKCFlbmRpbmdTZWxlY3Rpb24oKS5pc0NvbnRlbnRSaWNobHlFZGl0
YWJsZSgpKSB7CiAgICAgICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbigpKSB7Ci0gICAgICAgIGNh
c2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVNlbGVjdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVHlwaW5nRGVsZXRlQmFja3dhcmQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0Rl
bGV0ZUZvcndhcmQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRCYWNr
d2FyZDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6Ci0g
ICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDoKLSAgICAgICAg
Y2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6Ci0gICAgICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0
QWN0aW9uVHlwaW5nRGVsZXRlRmluYWxDb21wb3NpdGlvbjoKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVHlwaW5nSW5zZXJ0VGV4dDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0
TGluZUJyZWFrOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQYXJhZ3JhcGg6
Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbjoK
LSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbjoKLSAg
ICAgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0
ZUJ5RHJhZzoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbjoKLSAg
ICAgICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNp
ZmllZDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgotICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25JbnNlcnRSZXBsYWNlbWVudDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0RnJv
bURyb3A6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKLSAgICAgICAgY2FzZSBFZGl0
QWN0aW9uRGljdGF0aW9uOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVNl
bGVjdGlvbjoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVCYWNrd2FyZDoK
KyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVGb3J3YXJkOgorICAgICAgICBj
YXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVdvcmRCYWNrd2FyZDoKKyAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVXb3JkRm9yd2FyZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0
aW9uOjpUeXBpbmdEZWxldGVMaW5lQmFja3dhcmQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5n
RGVsZXRlUGVuZGluZ0NvbXBvc2l0aW9uOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZUZpbmFsQ29tcG9zaXRpb246CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5n
SW5zZXJ0VGV4dDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRMaW5lQnJl
YWs6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGFyYWdyYXBoOgorICAg
ICAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbjoKKyAg
ICAgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9uOgorICAg
ICAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3RlOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OkRl
bGV0ZUJ5RHJhZzoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9u
OgorICAgICAgICBjYXNlIEVkaXRBY3Rpb246OkN1dDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9u
OjpVbnNwZWNpZmllZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnQ6CisgICAgICAg
IGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0UmVwbGFjZW1lbnQ6CisgICAgICAgIGNhc2UgRWRpdEFj
dGlvbjo6SW5zZXJ0RnJvbURyb3A6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlOgor
ICAgICAgICBjYXNlIEVkaXRBY3Rpb246OkRpY3RhdGlvbjoKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04
MTksMTAgKzgxOSwxMCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXRU
YWJTcGFuUG9zaXRpb24oUmVmPE5vZGU+JiYgbm9kZSwgY29uc3QgUAogc3RhdGljIEVkaXRBY3Rp
b24gZGVsZXRlU2VsZWN0aW9uRWRpdGluZ0FjdGlvbkZvckVkaXRpbmdBY3Rpb24oRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQogewogICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbikgewotICAgIGNh
c2UgRWRpdEFjdGlvbkN1dDoKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpDdXQ6CisgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpDdXQ7CiAgICAg
ZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CisgICAgICAgIHJldHVy
biBFZGl0QWN0aW9uOjpEZWxldGU7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggZDQ2N2JmMTU4OTczYjgxMTY4YmJkZmM5
OTM0MTQzOGYzZWUwNGIyYy4uNGE0MjRhMTkyNGZjYWE5YzY2NGM4Yzc1ZTViNzlmZWFjMWY2NGQw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApA
QCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWFwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9l
ZGl0QWN0aW9uOyB9CiAgICAgdm9pZCBhcHBlbmQoU2ltcGxlRWRpdENvbW1hbmQqKTsKLSAgICBi
b29sIHdhc0NyZWF0ZUxpbmtDb21tYW5kKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0QWN0aW9uID09
IEVkaXRBY3Rpb25DcmVhdGVMaW5rOyB9CisgICAgYm9vbCB3YXNDcmVhdGVMaW5rQ29tbWFuZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZWRpdEFjdGlvbiA9PSBFZGl0QWN0aW9uOjpDcmVhdGVMaW5rOyB9
CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhcnRpbmdTZWxlY3Rpb247IH0KICAgICBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBlbmRpbmdTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2VuZGluZ1NlbGVjdGlvbjsg
fQpAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxEYXRhVHJh
bnNmZXI+IGlucHV0RXZlbnREYXRhVHJhbnNmZXIoKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAg
IGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlvbiA9IEVk
aXRBY3Rpb25VbnNwZWNpZmllZCk7CisgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQo
RG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQpOwogCiAgICAg
Ly8gSWYgd2lsbEFwcGx5Q29tbWFuZCByZXR1cm5zIGZhbHNlLCB3ZSB3b24ndCBwcm9jZWVkIHdp
dGggYXBwbHlpbmcgdGhlIGNvbW1hbmQuCiAgICAgdmlydHVhbCBib29sIHdpbGxBcHBseUNvbW1h
bmQoKTsKQEAgLTEzNiw4ICsxMzYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhcHBlbmROb2Rl
KFJlZjxOb2RlPiYmLCBSZWY8Q29udGFpbmVyTm9kZT4mJiBwYXJlbnQpOwogICAgIHZvaWQgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoUmVmPEVkaXRDb21tYW5kPiYmKTsKICAgICB2b2lkIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKFJlZjxDb21wb3NpdGVFZGl0Q29tbWFuZD4mJiwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpOwotICAgIHZvaWQgYXBwbHlTdHlsZShjb25zdCBFZGl0aW5nU3R5bGUq
LCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMpOwotICAgIHZvaWQgYXBw
bHlTdHlsZShjb25zdCBFZGl0aW5nU3R5bGUqLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0
IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcyk7
CisgICAgdm9pZCBhcHBseVN0eWxlKGNvbnN0IEVkaXRpbmdTdHlsZSosIEVkaXRBY3Rpb24gPSBF
ZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzKTsKKyAgICB2b2lkIGFwcGx5U3R5bGUoY29uc3Qg
RWRpdGluZ1N0eWxlKiwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5k
LCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbjo6Q2hhbmdlQXR0cmlidXRlcyk7CiAgICAgdm9pZCBh
cHBseVN0eWxlZEVsZW1lbnQoUmVmPEVsZW1lbnQ+JiYpOwogICAgIHZvaWQgcmVtb3ZlU3R5bGVk
RWxlbWVudChSZWY8RWxlbWVudD4mJik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBz
bWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBi
b29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVl
LCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Ny
ZWF0ZUxpbmtDb21tYW5kLmgKaW5kZXggMzliOThkMGRjZjJiZDVlY2M2MTAzYjE4ZWRkMDJhZDBi
MmRmODc1MS4uYjE3ZjIzMTdlYjU1MjNkN2JhOTY1OGIxMTI3NGQwOWEzMTFiYWI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaApAQCAtNDIsNyArNDIsNyBA
QCBwcml2YXRlOgogICAgIENyZWF0ZUxpbmtDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiBsaW5rVVJMKTsKIAogICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rpb25DcmVh
dGVMaW5rOyB9CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gRWRpdEFjdGlvbjo6Q3JlYXRlTGluazsgfQogCiAgICAgU3RyaW5nIG1fdXJsOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggYjgxYzYyZDM3ZWU1YjhlZTFkMWU5OTUzMGM0MTExYzFmN2VlOWZhOC4uZGEx
ZGY2YjEwMjkwMmIyMmIzMDE3OGM2MjBiMzkwZGZkYzYwMjQyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTMzLDcgKzMz
LDcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1
YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlv
bkRlbGV0ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0
ZShSZWY8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uOjpEZWxldGUpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFdURk1vdmUo
bm9kZSksIG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IDgyY2ZlMmE5
MjgwOTY5ZDhlNDJiMGFjOTAxZjE5YWY4NDhhZDkzNDQuLjIzMzY4OGI2N2M1ZjEyZDg2MmM2NDhk
MWE0MGVkMjhlMTU5MGZjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zMywxNyArMzMsMTcgQEAgY2xhc3MgRWRpdGluZ1N0eWxl
OwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRD
b21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3Vw
ID0gdHJ1ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKKyAg
ICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uOjpEZWxldGUpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0
ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KLSAgICBzdGF0aWMg
UmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQorICAgIHN0YXRpYyBSZWY8RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbiA9IEVkaXRBY3Rpb246OkRlbGV0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0
ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiA9IEVkaXRB
Y3Rpb25EZWxldGUpOworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29s
IHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwg
Ym9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCwgRWRpdEFj
dGlvbiA9IEVkaXRBY3Rpb246OkRlbGV0ZSk7CiAKIHByaXZhdGU6CiAgICAgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSwgYm9v
bCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4IDI4MmJkYzllMzE1Yjcy
YzI1YWQ1YmU4MmM2YmYwNzE0ZDVjMTdhYjkuLjk3NWQ0MWI0NWE5Yjc2YzYyMmIyZGI5ZWVjNmFi
NDZkYzI2NDlmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4
dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7CiAgICAg
VmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAgICAgY29s
bGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVuZ3RoLCBh
bHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIGF1dG8gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5k
OjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vi
c3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpj
cmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlvbik7CisgICAgYXV0
byBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihk
b2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3Ro
KSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpLCBF
ZGl0QWN0aW9uOjpEaWN0YXRpb24pOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFdURk1v
dmUoY29tbWFuZCksIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApAQCAtMTI2LDcgKzEyNiw3IEBA
IHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkKICAgICBp
ZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxlY3Rpb24oZW5kaW5nU2VsZWN0aW9uKCkpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2UsIGZhbHNlLCBF
ZGl0QWN0aW9uRGljdGF0aW9uKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxz
ZSwgRWRpdEFjdGlvbjo6RGljdGF0aW9uKSk7CiB9CiAKIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6
Y29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2Uoc2l6ZV90IHJhbmdlU3RhcnQsIHNp
emVfdCByYW5nZUxlbmd0aCwgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJuYXRp
dmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAppbmRleCAwYWJhNGE1YWFkMjBlMGE0
NDlkNWYzZWRjMGI1MTBmN2U4ODY4NjE4Li5lODEyMjg4NGVhMGE3ZjAxOTgxNzk0ZGJjZGVlOTc5
YjlmNTAxNWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDY0ICsyNiw2
NiBAQAogI3ByYWdtYSBvbmNlCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICB0eXBlZGVmIGVu
dW0gewotICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZpZWQsCi0gICAgICAgIEVkaXRBY3Rpb25J
bnNlcnQsCi0gICAgICAgIEVkaXRBY3Rpb25JbnNlcnRSZXBsYWNlbWVudCwKLSAgICAgICAgRWRp
dEFjdGlvbkluc2VydEZyb21Ecm9wLAotICAgICAgICBFZGl0QWN0aW9uU2V0Q29sb3IsCi0gICAg
ICAgIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3IsCi0gICAgICAgIEVkaXRBY3Rpb25UdXJu
T2ZmS2VybmluZywKLSAgICAgICAgRWRpdEFjdGlvblRpZ2h0ZW5LZXJuaW5nLAotICAgICAgICBF
ZGl0QWN0aW9uTG9vc2VuS2VybmluZywKLSAgICAgICAgRWRpdEFjdGlvblVzZVN0YW5kYXJkS2Vy
bmluZywKLSAgICAgICAgRWRpdEFjdGlvblR1cm5PZmZMaWdhdHVyZXMsCi0gICAgICAgIEVkaXRB
Y3Rpb25Vc2VTdGFuZGFyZExpZ2F0dXJlcywKLSAgICAgICAgRWRpdEFjdGlvblVzZUFsbExpZ2F0
dXJlcywKLSAgICAgICAgRWRpdEFjdGlvblJhaXNlQmFzZWxpbmUsCi0gICAgICAgIEVkaXRBY3Rp
b25Mb3dlckJhc2VsaW5lLAotICAgICAgICBFZGl0QWN0aW9uU2V0VHJhZGl0aW9uYWxDaGFyYWN0
ZXJTaGFwZSwKLSAgICAgICAgRWRpdEFjdGlvblNldEZvbnQsCi0gICAgICAgIEVkaXRBY3Rpb25D
aGFuZ2VBdHRyaWJ1dGVzLAotICAgICAgICBFZGl0QWN0aW9uQWxpZ25MZWZ0LAotICAgICAgICBF
ZGl0QWN0aW9uQWxpZ25SaWdodCwKLSAgICAgICAgRWRpdEFjdGlvbkNlbnRlciwKLSAgICAgICAg
RWRpdEFjdGlvbkp1c3RpZnksCi0gICAgICAgIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9u
LAotICAgICAgICBFZGl0QWN0aW9uU3Vic2NyaXB0LAotICAgICAgICBFZGl0QWN0aW9uU3VwZXJz
Y3JpcHQsCi0gICAgICAgIEVkaXRBY3Rpb25VbmRlcmxpbmUsCi0gICAgICAgIEVkaXRBY3Rpb25P
dXRsaW5lLAotICAgICAgICBFZGl0QWN0aW9uVW5zY3JpcHQsCi0gICAgICAgIEVkaXRBY3Rpb25E
ZWxldGVCeURyYWcsCi0gICAgICAgIEVkaXRBY3Rpb25DdXQsCi0gICAgICAgIEVkaXRBY3Rpb25C
b2xkLAotICAgICAgICBFZGl0QWN0aW9uSXRhbGljcywKLSAgICAgICAgRWRpdEFjdGlvbkRlbGV0
ZSwKLSAgICAgICAgRWRpdEFjdGlvbkRpY3RhdGlvbiwKLSAgICAgICAgRWRpdEFjdGlvblBhc3Rl
LAotICAgICAgICBFZGl0QWN0aW9uUGFzdGVGb250LAotICAgICAgICBFZGl0QWN0aW9uUGFzdGVS
dWxlciwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVNlbGVjdGlvbiwKLSAgICAgICAg
RWRpdEFjdGlvblR5cGluZ0RlbGV0ZUJhY2t3YXJkLAotICAgICAgICBFZGl0QWN0aW9uVHlwaW5n
RGVsZXRlRm9yd2FyZCwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRCYWNrd2Fy
ZCwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRGb3J3YXJkLAotICAgICAgICBF
ZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJkLAotICAgICAgICBFZGl0QWN0aW9uVHlw
aW5nRGVsZXRlTGluZUZvcndhcmQsCi0gICAgICAgIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVQZW5k
aW5nQ29tcG9zaXRpb24sCi0gICAgICAgIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVGaW5hbENvbXBv
c2l0aW9uLAotICAgICAgICBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0VGV4dCwKLSAgICAgICAgRWRp
dEFjdGlvblR5cGluZ0luc2VydExpbmVCcmVhaywKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0lu
c2VydFBhcmFncmFwaCwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0luc2VydFBlbmRpbmdDb21w
b3NpdGlvbiwKLSAgICAgICAgRWRpdEFjdGlvblR5cGluZ0luc2VydEZpbmFsQ29tcG9zaXRpb24s
Ci0gICAgICAgIEVkaXRBY3Rpb25DcmVhdGVMaW5rLAotICAgICAgICBFZGl0QWN0aW9uVW5saW5r
LAotICAgICAgICBFZGl0QWN0aW9uRm9ybWF0QmxvY2ssCi0gICAgICAgIEVkaXRBY3Rpb25JbnNl
cnRPcmRlcmVkTGlzdCwKLSAgICAgICAgRWRpdEFjdGlvbkluc2VydFVub3JkZXJlZExpc3QsCi0g
ICAgICAgIEVkaXRBY3Rpb25JbmRlbnQsCi0gICAgICAgIEVkaXRBY3Rpb25PdXRkZW50Ci0gICAg
fSBFZGl0QWN0aW9uOyAgICAKKworZW51bSBjbGFzcyBFZGl0QWN0aW9uIDogdWludDhfdCB7Cisg
ICAgVW5zcGVjaWZpZWQsCisgICAgSW5zZXJ0LAorICAgIEluc2VydFJlcGxhY2VtZW50LAorICAg
IEluc2VydEZyb21Ecm9wLAorICAgIFNldENvbG9yLAorICAgIFNldEJhY2tncm91bmRDb2xvciwK
KyAgICBUdXJuT2ZmS2VybmluZywKKyAgICBUaWdodGVuS2VybmluZywKKyAgICBMb29zZW5LZXJu
aW5nLAorICAgIFVzZVN0YW5kYXJkS2VybmluZywKKyAgICBUdXJuT2ZmTGlnYXR1cmVzLAorICAg
IFVzZVN0YW5kYXJkTGlnYXR1cmVzLAorICAgIFVzZUFsbExpZ2F0dXJlcywKKyAgICBSYWlzZUJh
c2VsaW5lLAorICAgIExvd2VyQmFzZWxpbmUsCisgICAgU2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJT
aGFwZSwKKyAgICBTZXRGb250LAorICAgIENoYW5nZUF0dHJpYnV0ZXMsCisgICAgQWxpZ25MZWZ0
LAorICAgIEFsaWduUmlnaHQsCisgICAgQ2VudGVyLAorICAgIEp1c3RpZnksCisgICAgU2V0V3Jp
dGluZ0RpcmVjdGlvbiwKKyAgICBTdWJzY3JpcHQsCisgICAgU3VwZXJzY3JpcHQsCisgICAgVW5k
ZXJsaW5lLAorICAgIE91dGxpbmUsCisgICAgVW5zY3JpcHQsCisgICAgRGVsZXRlQnlEcmFnLAor
ICAgIEN1dCwKKyAgICBCb2xkLAorICAgIEl0YWxpY3MsCisgICAgRGVsZXRlLAorICAgIERpY3Rh
dGlvbiwKKyAgICBQYXN0ZSwKKyAgICBQYXN0ZUZvbnQsCisgICAgUGFzdGVSdWxlciwKKyAgICBU
eXBpbmdEZWxldGVTZWxlY3Rpb24sCisgICAgVHlwaW5nRGVsZXRlQmFja3dhcmQsCisgICAgVHlw
aW5nRGVsZXRlRm9yd2FyZCwKKyAgICBUeXBpbmdEZWxldGVXb3JkQmFja3dhcmQsCisgICAgVHlw
aW5nRGVsZXRlV29yZEZvcndhcmQsCisgICAgVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJkLAorICAg
IFR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkLAorICAgIFR5cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3Np
dGlvbiwKKyAgICBUeXBpbmdEZWxldGVGaW5hbENvbXBvc2l0aW9uLAorICAgIFR5cGluZ0luc2Vy
dFRleHQsCisgICAgVHlwaW5nSW5zZXJ0TGluZUJyZWFrLAorICAgIFR5cGluZ0luc2VydFBhcmFn
cmFwaCwKKyAgICBUeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9zaXRpb24sCisgICAgVHlwaW5nSW5z
ZXJ0RmluYWxDb21wb3NpdGlvbiwKKyAgICBDcmVhdGVMaW5rLAorICAgIFVubGluaywKKyAgICBG
b3JtYXRCbG9jaywKKyAgICBJbnNlcnRPcmRlcmVkTGlzdCwKKyAgICBJbnNlcnRVbm9yZGVyZWRM
aXN0LAorICAgIEluZGVudCwKKyAgICBPdXRkZW50Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IGRiMWY0MDg0NTA5
NmIxYTkyNDQ0OTU2Y2JmNmJkZGY4MTFiMzBiMTYuLjM0Yzc5YzlhN2Q5OWE1OGFiMDMwZTkzODMz
Yjg0NWNiYTgxMzJlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBA
IC00Miw3NSArNDIsNzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU3RyaW5nIGlucHV0VHlwZU5h
bWVGb3JFZGl0aW5nQWN0aW9uKEVkaXRBY3Rpb24gYWN0aW9uKQogewogICAgIHN3aXRjaCAoYWN0
aW9uKSB7Ci0gICAgY2FzZSBFZGl0QWN0aW9uSnVzdGlmeToKKyAgICBjYXNlIEVkaXRBY3Rpb246
Okp1c3RpZnk6CiAgICAgICAgIHJldHVybiAiZm9ybWF0SnVzdGlmeUZ1bGwiX3M7Ci0gICAgY2Fz
ZSBFZGl0QWN0aW9uQWxpZ25MZWZ0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25MZWZ0Ogog
ICAgICAgICByZXR1cm4gImZvcm1hdEp1c3RpZnlMZWZ0Il9zOwotICAgIGNhc2UgRWRpdEFjdGlv
bkFsaWduUmlnaHQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpBbGlnblJpZ2h0OgogICAgICAgICBy
ZXR1cm4gImZvcm1hdEp1c3RpZnlSaWdodCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25DZW50ZXI6
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDZW50ZXI6CiAgICAgICAgIHJldHVybiAiZm9ybWF0SnVz
dGlmeUNlbnRlciJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25TdWJzY3JpcHQ6CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpTdWJzY3JpcHQ6CiAgICAgICAgIHJldHVybiAiZm9ybWF0U3Vic2NyaXB0Il9z
OwotICAgIGNhc2UgRWRpdEFjdGlvblN1cGVyc2NyaXB0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
U3VwZXJzY3JpcHQ6CiAgICAgICAgIHJldHVybiAiZm9ybWF0U3VwZXJzY3JpcHQiX3M7Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uVW5kZXJsaW5lOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5kZXJsaW5l
OgogICAgICAgICByZXR1cm4gImZvcm1hdFVuZGVybGluZSJfczsKLSAgICBjYXNlIEVkaXRBY3Rp
b25TZXRDb2xvcjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldENvbG9yOgogICAgICAgICByZXR1
cm4gImZvcm1hdEZvbnRDb2xvciJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGVCeURyYWc6
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpEZWxldGVCeURyYWc6CiAgICAgICAgIHJldHVybiAiZGVs
ZXRlQnlEcmFnIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OkN1dDoKICAgICAgICAgcmV0dXJuICJkZWxldGVCeUN1dCJfczsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25Cb2xkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6Qm9sZDoKICAgICAgICAgcmV0dXJuICJm
b3JtYXRCb2xkIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkl0YWxpY3M6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpJdGFsaWNzOgogICAgICAgICByZXR1cm4gImZvcm1hdEl0YWxpYyJfczsKLSAgICBj
YXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3RlOgogICAgICAg
ICByZXR1cm4gImluc2VydEZyb21QYXN0ZSJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6
Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlU2VsZWN0aW9uOgorICAgIGNhc2UgRWRp
dEFjdGlvbjo6RGVsZXRlOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlU2VsZWN0
aW9uOgogICAgICAgICByZXR1cm4gImRlbGV0ZUNvbnRlbnQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0
aW9uVHlwaW5nRGVsZXRlQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxl
dGVCYWNrd2FyZDoKICAgICAgICAgcmV0dXJuICJkZWxldGVDb250ZW50QmFja3dhcmQiX3M7Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlR5cGluZ0RlbGV0ZUZvcndhcmQ6CiAgICAgICAgIHJldHVybiAiZGVsZXRlQ29udGVudEZv
cndhcmQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgogICAgICAgICBy
ZXR1cm4gImRlbGV0ZVdvcmRCYWNrd2FyZCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdE
ZWxldGVXb3JkRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVdvcmRG
b3J3YXJkOgogICAgICAgICByZXR1cm4gImRlbGV0ZVdvcmRGb3J3YXJkIl9zOwotICAgIGNhc2Ug
RWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246
OlR5cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDoKICAgICAgICAgcmV0dXJuICJkZWxldGVIYXJkTGlu
ZUJhY2t3YXJkIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJk
OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6CiAgICAgICAg
IHJldHVybiAiZGVsZXRlSGFyZExpbmVGb3J3YXJkIl9zOwotICAgIGNhc2UgRWRpdEFjdGlvblR5
cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoKICAgICAgICAgcmV0dXJuICJkZWxldGVDb21wb3Np
dGlvblRleHQiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRmluYWxDb21wb3Np
dGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZpbmFsQ29tcG9zaXRpb246
CiAgICAgICAgIHJldHVybiAiZGVsZXRlQnlDb21wb3NpdGlvbiJfczsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25JbnNlcnQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0VGV4dDoKKyAgICBj
YXNlIEVkaXRBY3Rpb246Okluc2VydDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2Vy
dFRleHQ6CiAgICAgICAgIHJldHVybiAiaW5zZXJ0VGV4dCJfczsKLSAgICBjYXNlIEVkaXRBY3Rp
b25JbnNlcnRSZXBsYWNlbWVudDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydFJlcGxhY2Vt
ZW50OgogICAgICAgICByZXR1cm4gImluc2VydFJlcGxhY2VtZW50VGV4dCJfczsKLSAgICBjYXNl
IEVkaXRBY3Rpb25JbnNlcnRGcm9tRHJvcDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydEZy
b21Ecm9wOgogICAgICAgICByZXR1cm4gImluc2VydEZyb21Ecm9wIl9zOwotICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZ0luc2VydExpbmVCcmVhazoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGlu
Z0luc2VydExpbmVCcmVhazoKICAgICAgICAgcmV0dXJuICJpbnNlcnRMaW5lQnJlYWsiX3M7Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0UGFyYWdyYXBoOgorICAgIGNhc2UgRWRpdEFj
dGlvbjo6VHlwaW5nSW5zZXJ0UGFyYWdyYXBoOgogICAgICAgICByZXR1cm4gImluc2VydFBhcmFn
cmFwaCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRPcmRlcmVkTGlzdDoKKyAgICBjYXNl
IEVkaXRBY3Rpb246Okluc2VydE9yZGVyZWRMaXN0OgogICAgICAgICByZXR1cm4gImluc2VydE9y
ZGVyZWRMaXN0Il9zOwotICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydFVub3JkZXJlZExpc3Q6Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRVbm9yZGVyZWRMaXN0OgogICAgICAgICByZXR1cm4g
Imluc2VydFVub3JkZXJlZExpc3QiX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0
UGVuZGluZ0NvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0UGVu
ZGluZ0NvbXBvc2l0aW9uOgogICAgICAgICByZXR1cm4gImluc2VydENvbXBvc2l0aW9uVGV4dCJf
czsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9uOgorICAg
IGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0RmluYWxDb21wb3NpdGlvbjoKICAgICAgICAg
cmV0dXJuICJpbnNlcnRGcm9tQ29tcG9zaXRpb24iX3M7Ci0gICAgY2FzZSBFZGl0QWN0aW9uSW5k
ZW50OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5kZW50OgogICAgICAgICByZXR1cm4gImZvcm1h
dEluZGVudCJfczsKLSAgICBjYXNlIEVkaXRBY3Rpb25PdXRkZW50OgorICAgIGNhc2UgRWRpdEFj
dGlvbjo6T3V0ZGVudDoKICAgICAgICAgcmV0dXJuICJmb3JtYXRPdXRkZW50Il9zOwotICAgIGNh
c2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpT
ZXRXcml0aW5nRGlyZWN0aW9uOgogICAgICAgICByZXR1cm4gImZvcm1hdFNldElubGluZVRleHRE
aXJlY3Rpb24iX3M7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggNGZjMGNiN2M3YTM4YjFmNDc0
NDE5NTA5ZGQwZThiNDY1NjhkZTI1MS4uZGViY2ZmMDI0NWVkZjBkZWU3ZGZiZWZlZDVmNjQwODFi
NTEyYTM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtNjEsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKIHByb3RlY3Rl
ZDoKLSAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQpOworICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jiwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFuZChE
b2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
Jik7CiAKICAgICBjb25zdCBGcmFtZSYgZnJhbWUoKSBjb25zdDsKQEAgLTgyLDcgKzgyLDcgQEAg
cHJpdmF0ZToKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAg
VmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKICAgICBDb21wb3NpdGVFZGl0Q29t
bWFuZCogbV9wYXJlbnQgeyBudWxscHRyIH07Ci0gICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rp
b24geyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKKyAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0Fj
dGlvbiB7IEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkIH07CiB9OwogCiBlbnVtIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHsKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CisgICAgZXhwbGljaXQg
U2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbjo6VW5z
cGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRh
bnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IGViOGY1ZDIzM2IzZjM2OWVhZWQ2OWUwMjI0YmU5ZDE1ZDhkZmUzNzcuLmNmNWRhNzkyMTU0
YzJmOTAxOThjOGZkYmQxMjlhMmJkMzkzZGU4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTEzOSw5ICsxMzksOSBAQCBzdGF0aWMgU3RyaW5nIGlucHV0RXZlbnREYXRhRm9yRWRp
dGluZ1N0eWxlQW5kQWN0aW9uKGNvbnN0IFN0eWxlUHJvcGVydGllcyogc3R5bAogICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKLSAgICBjYXNlIEVkaXRBY3Rpb25T
ZXRDb2xvcjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldENvbG9yOgogICAgICAgICByZXR1cm4g
c3R5bGUtPmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlDb2xvcik7Ci0gICAgY2FzZSBFZGl0
QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldFdyaXRp
bmdEaXJlY3Rpb246CiAgICAgICAgIHJldHVybiBzdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eURpcmVjdGlvbik7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTE2OSw3ICsxNjksNyBAQCBDbGVhclRleHRDb21tYW5kOjpDbGVhclRleHRDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCkKIAogRWRpdEFjdGlvbiBDbGVhclRleHRDb21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKKyAgICByZXR1cm4g
RWRpdEFjdGlvbjo6RGVsZXRlOwogfQogCiB2b2lkIENsZWFyVGV4dENvbW1hbmQ6OkNyZWF0ZUFu
ZEFwcGx5KGNvbnN0IFJlZlB0cjxGcmFtZT4gZnJhbWUpCkBAIC0yOTYsOSArMjk2LDkgQEAgYm9v
bCBFZGl0b3I6OmhhbmRsZVRleHRFdmVudChUZXh0RXZlbnQmIGV2ZW50KQogICAgICAgICAgICAg
aWYgKGNsaWVudCgpLT5wZXJmb3Jtc1R3b1N0ZXBQYXN0ZShldmVudC5wYXN0aW5nRnJhZ21lbnQo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJl
cGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoKmV2ZW50LnBhc3RpbmdGcmFnbWVudCgpLCBmYWxz
ZSwgZXZlbnQuc2hvdWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LnNob3VsZE1hdGNoU3R5bGUoKSwg
RWRpdEFjdGlvblBhc3RlLCBldmVudC5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOworICAgICAg
ICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudCgqZXZlbnQucGFzdGluZ0ZyYWdtZW50
KCksIGZhbHNlLCBldmVudC5zaG91bGRTbWFydFJlcGxhY2UoKSwgZXZlbnQuc2hvdWxkTWF0Y2hT
dHlsZSgpLCBFZGl0QWN0aW9uOjpQYXN0ZSwgZXZlbnQubWFpbEJsb2NrcXVvdGVIYW5kbGluZygp
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQo
ZXZlbnQuZGF0YSgpLCBmYWxzZSwgZXZlbnQuc2hvdWxkU21hcnRSZXBsYWNlKCksIEVkaXRBY3Rp
b25QYXN0ZSk7CisgICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQuZGF0
YSgpLCBmYWxzZSwgZXZlbnQuc2hvdWxkU21hcnRSZXBsYWNlKCksIEVkaXRBY3Rpb246OlBhc3Rl
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC02MjksNyArNjI5LDcgQEAgdm9p
ZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoRG9jdW1lbnRGcmFnbWVudCYg
ZnJhZ21lbnQsIGJvb2wgc2VsZWMKICAgICAgICAgcmV0dXJuOwogCiAgICAgQWNjZXNzaWJpbGl0
eVJlcGxhY2VkVGV4dCByZXBsYWNlZFRleHQ7Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkgJiYgZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uUGFzdGUpCisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgZWRpdGluZ0Fj
dGlvbiA9PSBFZGl0QWN0aW9uOjpQYXN0ZSkKICAgICAgICAgcmVwbGFjZWRUZXh0ID0gQWNjZXNz
aWJpbGl0eVJlcGxhY2VkVGV4dChzZWxlY3Rpb24pOwogCiAgICAgT3B0aW9uU2V0PFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0aW9uPiBvcHRpb25zIHsgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U2FuaXRp
emVGcmFnbWVudCB9OwpAQCAtNjUwLDcgKzY1MCw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2Vs
ZWN0aW9uV2l0aEZyYWdtZW50KERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBib29sIHNlbGVj
CiAgICAgaWYgKHNlbGVjdGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBlZGl0
aW5nQWN0aW9uID09IEVkaXRBY3Rpb25QYXN0ZSkgeworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpICYmIGVkaXRpbmdBY3Rpb24gPT0gRWRpdEFjdGlvbjo6UGFz
dGUpIHsKICAgICAgICAgU3RyaW5nIHRleHQgPSBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdG
b3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb21tYW5kLT52aXNpYmxlU2VsZWN0aW9uRm9ySW5zZXJ0
ZWRUZXh0KCkpOwogICAgICAgICByZXBsYWNlZFRleHQucG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpLCBBWFRleHRFZGl0VHlw
ZVBhc3RlLCB0ZXh0LCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsKICAgICAgICAg
Y29tbWFuZC0+Y29tcG9zaXRpb24oKS0+c2V0UmFuZ2VEZWxldGVkQnlVbmFwcGx5KHJlcGxhY2Vk
VGV4dC5yZXBsYWNlZFJhbmdlKCkpOwpAQCAtMTM4NCw3ICsxMzg0LDcgQEAgdm9pZCBFZGl0b3I6
OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKICAgICAgICAg
U3RyaW5nIHRleHQ7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQogICAgICAgICAgICAgdGV4dCA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0Zv
clZpc2libGVQb3NpdGlvblJhbmdlKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwot
ICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxl
dGUoKSwgRWRpdEFjdGlvbkN1dCk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uOjpDdXQpOwogICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb25Gb3JDdXQodGV4dCwgbV9mcmFtZS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb24oKSk7CiAgICAgfQpAQCAtMTcyNyw3ICsxNzI3LDcgQEAgdm9pZCBFZGl0
b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQog
CiAgICAgICAgIGF1dG8mIGZvY3VzZWRGb3JtRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50PigqZm9jdXNlZEVsZW1lbnQpOwogICAgICAgICBhdXRvIGRpcmVjdGlv
blZhbHVlID0gZGlyZWN0aW9uID09IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA/ICJsdHIi
IDogInJ0bCI7Ci0gICAgICAgIGF1dG8gd3JpdGluZ0RpcmVjdGlvbklucHV0VHlwZU5hbWUgPSBp
bnB1dFR5cGVOYW1lRm9yRWRpdGluZ0FjdGlvbihFZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlv
bik7CisgICAgICAgIGF1dG8gd3JpdGluZ0RpcmVjdGlvbklucHV0VHlwZU5hbWUgPSBpbnB1dFR5
cGVOYW1lRm9yRWRpdGluZ0FjdGlvbihFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uKTsK
ICAgICAgICAgaWYgKCFkaXNwYXRjaEJlZm9yZUlucHV0RXZlbnQoZm9jdXNlZEZvcm1FbGVtZW50
LCB3cml0aW5nRGlyZWN0aW9uSW5wdXRUeXBlTmFtZSwgZGlyZWN0aW9uVmFsdWUpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC0xNzM5LDcgKzE3MzksNyBAQCB2b2lkIEVkaXRvcjo6c2V0QmFz
ZVdyaXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKICAgICBSZWZQ
dHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24s
IGRpcmVjdGlvbiA9PSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gPyAibHRyIiA6IGRpcmVj
dGlvbiA9PSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24gPyAicnRsIiA6ICJpbmhlcml0Iiwg
ZmFsc2UpOwotICAgIGFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbihzdHlsZS5nZXQoKSwg
RWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24pOworICAgIGFwcGx5UGFyYWdyYXBoU3R5bGVU
b1NlbGVjdGlvbihzdHlsZS5nZXQoKSwgRWRpdEFjdGlvbjo6U2V0V3JpdGluZ0RpcmVjdGlvbik7
CiB9CiAKIFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9yOjpiYXNlV3JpdGluZ0RpcmVjdGlvbkZvclNl
bGVjdGlvblN0YXJ0KCkgY29uc3QKQEAgLTI0NjAsNyArMjQ2MCw3IEBAIHZvaWQgRWRpdG9yOjpt
YXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZ3
b3JkU3RhcnQsCiAKICAgICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRl
eHQoYXV0b2NvcnJlY3RlZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9ySW5z
ZXJ0QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fZnJhbWUu
ZWRpdG9yKCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIGZh
bHNlLCBmYWxzZSwgRWRpdEFjdGlvbkluc2VydCk7CisgICAgICAgIG1fZnJhbWUuZWRpdG9yKCku
cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxz
ZSwgRWRpdEFjdGlvbjo6SW5zZXJ0KTsKIAogICAgICAgICAvLyBSZXNldCB0aGUgY2hhcmV0IG9u
ZSBjaGFyYWN0ZXIgZnVydGhlci4KICAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5tb3ZlVG8o
bV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5lbmQoKSk7CkBAIC0yODE4LDcgKzI4MTgs
NyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZykKICAgICAKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIt
PnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoQXV0b2NvcnJlY3Rpb25SZXNwb25zZTo6UmV2
ZXJ0ZWQsIHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24uZ2V0KCkpOwogICAgIFRleHRDaGVja2lu
Z1BhcmFncmFwaCBwYXJhZ3JhcGgoKnNlbGVjdGlvbik7Ci0gICAgcmVwbGFjZVNlbGVjdGlvbldp
dGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwor
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNl
LCBFZGl0QWN0aW9uOjpJbnNlcnQpOwogICAgIGF1dG8gY2hhbmdlZFJhbmdlID0gcGFyYWdyYXBo
LnN1YnJhbmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCksIHJlcGxhY2VkU3RyaW5nLmxlbmd0
aCgpKTsKICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKS5tYXJr
ZXJzKCkuYWRkTWFya2VyKGNoYW5nZWRSYW5nZS5wdHIoKSwgRG9jdW1lbnRNYXJrZXI6OlJlcGxh
Y2VtZW50LCBTdHJpbmcoKSk7CiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5tYXJr
UmV2ZXJzZWQoY2hhbmdlZFJhbmdlKTsKQEAgLTMwNjQsNyArMzA2NCw3IEBAIHZvaWQgRWRpdG9y
Ojp0cmFuc3Bvc2UoKQogICAgIC8vIEluc2VydCB0aGUgdHJhbnNwb3NlZCBjaGFyYWN0ZXJzLgog
ICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCh0cmFuc3Bvc2VkLCByYW5nZS5nZXQoKSwgRWRpdG9y
SW5zZXJ0QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsK
KyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBF
ZGl0QWN0aW9uOjpJbnNlcnQpOwogfQogCiB2b2lkIEVkaXRvcjo6YWRkUmFuZ2VUb0tpbGxSaW5n
KGNvbnN0IFJhbmdlJiByYW5nZSwgS2lsbFJpbmdJbnNlcnRpb25Nb2RlIG1vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAppbmRleCBhYjc3NjQ2NGFkYmE3NGUzN2U5MGNhNDM2NzZmYjQ3ZDI2NDUx
ZmY0Li4yMGNiYmI2ODc2NmFiZGM0NzEzYmUzZDM2MTdiMWFkOTU3N2JlZGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKQEAgLTIwMywxNiArMjAzLDE2IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9u
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb246OkRlbGV0ZSk7CiAgICAgdm9pZCBj
bGVhclRleHQoKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsKICNlbmRpZgogCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyosIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9u
VW5zcGVjaWZpZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlTdHlsZShTdHlsZVBy
b3BlcnRpZXMqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQpOwogICAgIGVu
dW0gY2xhc3MgQ29sb3JGaWx0ZXJNb2RlIHsgSW52ZXJ0Q29sb3IsIFVzZU9yaWdpbmFsQ29sb3Ig
fTsKICAgICB2b2lkIGFwcGx5U3R5bGUoUmVmUHRyPEVkaXRpbmdTdHlsZT4mJiwgRWRpdEFjdGlv
biwgQ29sb3JGaWx0ZXJNb2RlKTsKLSAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGUoU3R5bGVQ
cm9wZXJ0aWVzKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CisgICAgdm9p
ZCBhcHBseVBhcmFncmFwaFN0eWxlKFN0eWxlUHJvcGVydGllcyosIEVkaXRBY3Rpb24gPSBFZGl0
QWN0aW9uOjpVbnNwZWNpZmllZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseVN0eWxl
VG9TZWxlY3Rpb24oU3R5bGVQcm9wZXJ0aWVzKiwgRWRpdEFjdGlvbik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBhcHBseVN0eWxlVG9TZWxlY3Rpb24oUmVmPEVkaXRpbmdTdHlsZT4mJiwgRWRp
dEFjdGlvbiwgQ29sb3JGaWx0ZXJNb2RlKTsKICAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGVU
b1NlbGVjdGlvbihTdHlsZVByb3BlcnRpZXMqLCBFZGl0QWN0aW9uKTsKQEAgLTQwMCw4ICs0MDAs
OCBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbWFyaygpIGNvbnN0OyAv
LyBNYXJrLCB0byBiZSB1c2VkIGFzIGVtYWNzIHVzZXMgaXQuCiAgICAgdm9pZCBzZXRNYXJrKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAotICAgIHZvaWQgY29tcHV0ZUFuZFNldFR5cGluZ1N0
eWxlKEVkaXRpbmdTdHlsZSYgLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShTdHlsZVBy
b3BlcnRpZXMmICwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CisgICAgdm9p
ZCBjb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUoRWRpdGluZ1N0eWxlJiAsIEVkaXRBY3Rpb24gPSBF
ZGl0QWN0aW9uOjpVbnNwZWNpZmllZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21wdXRl
QW5kU2V0VHlwaW5nU3R5bGUoU3R5bGVQcm9wZXJ0aWVzJiAsIEVkaXRBY3Rpb24gPSBFZGl0QWN0
aW9uOjpVbnNwZWNpZmllZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseUVkaXRpbmdT
dHlsZVRvQm9keUVsZW1lbnQoKSBjb25zdDsKICAgICB2b2lkIGFwcGx5RWRpdGluZ1N0eWxlVG9F
bGVtZW50KEVsZW1lbnQqKSBjb25zdDsKIApAQCAtNDIzLDggKzQyMyw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBXcml0aW5nRGlyZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3Rh
cnQoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldp
dGhGcmFnbWVudChEb2N1bWVudEZyYWdtZW50JiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9v
bCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25J
bnNlcnQsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpS
ZXNwZWN0QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoRG9jdW1lbnRGcmFnbWVu
dCYsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNo
U3R5bGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uOjpJbnNlcnQsIE1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5n
JiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uOjpJbnNlcnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9u
U3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBp
bnQgbGVuZ3RoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVk
QnlFZGl0aW5nKGJvb2wgb25seUhhbmRsZVdvcmRzQ29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAg
dm9pZCBkZWxldGVkQXV0b2NvcnJlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29u
c3QgU3RyaW5nJiBvcmlnaW5hbFN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcAppbmRleCA0YzkzZDRhYjQ0MjY3YTBkY2FkMWZjODFhZmQ1OTkwYWU1MTdlMTU5
Li5jZDllZjc2MWFhOWE3OWNlOGQzMzAyZWU3OWRmZjk0OTNjMTc2ZjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMg
Ym9vbCBhcHBseUNvbW1hbmRUb0ZyYW1lKEZyYW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJj
ZSBzb3VyY2UsIEVkaXRBYwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENvbW1hbmRG
cm9tRE9NOgogICAgIGNhc2UgQ29tbWFuZEZyb21ET01XaXRoVXNlckludGVyZmFjZToKLSAgICAg
ICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlTdHlsZShXVEZNb3ZlKHN0eWxlKSwgRWRpdEFjdGlvblVu
c3BlY2lmaWVkLCBFZGl0b3I6OkNvbG9yRmlsdGVyTW9kZTo6VXNlT3JpZ2luYWxDb2xvcik7Cisg
ICAgICAgIGZyYW1lLmVkaXRvcigpLmFwcGx5U3R5bGUoV1RGTW92ZShzdHlsZSksIEVkaXRBY3Rp
b246OlVuc3BlY2lmaWVkLCBFZGl0b3I6OkNvbG9yRmlsdGVyTW9kZTo6VXNlT3JpZ2luYWxDb2xv
cik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhT
dHlsZShGcmFtZSYgZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLAogc3RhdGljIGJv
b2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFtZSwgUmVmPERvY3VtZW50RnJhZ21l
bnQ+JiYgZnJhZ21lbnQpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwotICAgIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIFdURk1vdmUo
ZnJhZ21lbnQpLCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRB
Y3Rpb25JbnNlcnQpLT5hcHBseSgpOworICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCksIFdURk1vdmUoZnJhZ21lbnQpLCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb246Okluc2VydCktPmFwcGx5KCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgUmVmUHRyPFJh
bmdlPiB1bmlvbkRPTVJhbmdlcyhSYW5nZSYgYSwgUmFuZ2UmIGIpCiAKIHN0YXRpYyBib29sIGV4
ZWN1dGVCYWNrQ29sb3IoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ug
c291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIHJldHVybiBleGVjdXRlQXBwbHlT
dHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yLCBDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvciwgdmFsdWUpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHls
ZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpTZXRCYWNrZ3JvdW5kQ29sb3IsIENTU1Byb3Bl
cnR5QmFja2dyb3VuZENvbG9yLCB2YWx1ZSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVDb3B5
KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcm
KQpAQCAtMzgzLDcgKzM4Myw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVGaW5kU3RyaW5nKEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTCiAKIHN0YXRpYyBi
b29sIGV4ZWN1dGVGb250TmFtZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNv
dXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVB
cHBseVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25TZXRGb250LCBDU1NQcm9wZXJ0eUZv
bnRGYW1pbHksIHZhbHVlKTsKKyAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJhbWUsIHNv
dXJjZSwgRWRpdEFjdGlvbjo6U2V0Rm9udCwgQ1NTUHJvcGVydHlGb250RmFtaWx5LCB2YWx1ZSk7
CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVGb250U2l6ZShGcmFtZSYgZnJhbWUsIEV2ZW50Kiwg
RWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0zOTEs
MTcgKzM5MSwxNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlRm9udFNpemUoRnJhbWUmIGZyYW1lLCBF
dmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjbwogICAgIENTU1ZhbHVlSUQgc2l6
ZTsKICAgICBpZiAoIUhUTUxGb250RWxlbWVudDo6Y3NzVmFsdWVGcm9tRm9udFNpemVOdW1iZXIo
dmFsdWUsIHNpemUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGV4ZWN1dGVB
cHBseVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzLCBDU1NQ
cm9wZXJ0eUZvbnRTaXplLCBzaXplKTsKKyAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJh
bWUsIHNvdXJjZSwgRWRpdEFjdGlvbjo6Q2hhbmdlQXR0cmlidXRlcywgQ1NTUHJvcGVydHlGb250
U2l6ZSwgc2l6ZSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVGb250U2l6ZURlbHRhKEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJhbWUsIHNvdXJjZSwg
RWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0
YSwgdmFsdWUpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBF
ZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzLCBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVs
dGEsIHZhbHVlKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZUZvcmVDb2xvcihGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRB
Y3Rpb25TZXRDb2xvciwgQ1NTUHJvcGVydHlDb2xvciwgdmFsdWUpOworICAgIHJldHVybiBleGVj
dXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpTZXRDb2xvciwgQ1NTUHJv
cGVydHlDb2xvciwgdmFsdWUpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlRm9ybWF0QmxvY2so
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYg
dmFsdWUpCkBAIC01MzksMjIgKzUzOSwyMiBAQCBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0VW5v
cmRlcmVkTGlzdChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZQogCiBz
dGF0aWMgYm9vbCBleGVjdXRlSnVzdGlmeUNlbnRlcihGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRp
dG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4
ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25DZW50ZXIs
IENTU1Byb3BlcnR5VGV4dEFsaWduLCAiY2VudGVyIl9zKTsKKyAgICByZXR1cm4gZXhlY3V0ZUFw
cGx5UGFyYWdyYXBoU3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvbjo6Q2VudGVyLCBDU1NQ
cm9wZXJ0eVRleHRBbGlnbiwgImNlbnRlciJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVK
dXN0aWZ5RnVsbChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3Vy
Y2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0
eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25KdXN0aWZ5LCBDU1NQcm9wZXJ0eVRleHRBbGln
biwgImp1c3RpZnkiX3MpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShm
cmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpKdXN0aWZ5LCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwg
Imp1c3RpZnkiX3MpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSnVzdGlmeUxlZnQoRnJhbWUm
IGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcm
KQogewotICAgIHJldHVybiBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShmcmFtZSwgc291cmNl
LCBFZGl0QWN0aW9uQWxpZ25MZWZ0LCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgImxlZnQiX3MpOwor
ICAgIHJldHVybiBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0
QWN0aW9uOjpBbGlnbkxlZnQsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAibGVmdCJfcyk7CiB9CiAK
IHN0YXRpYyBib29sIGV4ZWN1dGVKdXN0aWZ5UmlnaHQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBl
eGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uQWxpZ25S
aWdodCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sICJyaWdodCJfcyk7CisgICAgcmV0dXJuIGV4ZWN1
dGVBcHBseVBhcmFncmFwaFN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OkFsaWduUmln
aHQsIENTU1Byb3BlcnR5VGV4dEFsaWduLCAicmlnaHQiX3MpOwogfQogCiBzdGF0aWMgYm9vbCBl
eGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQoRnJhbWUmIGZyYW1lLCBF
dmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCkBAIC01NjIsNyArNTYy
LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1Jp
Z2h0KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGkKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJv
cGVydGllcz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoKTsKICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCk7
CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NWYWx1ZUx0
cik7Ci0gICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRpdEFjdGlv
blNldFdyaXRpbmdEaXJlY3Rpb24pOworICAgIGZyYW1lLmVkaXRvcigpLmFwcGx5U3R5bGUoc3R5
bGUuZ2V0KCksIEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHJldHVybiB0
cnVlOwogfQogCkBAIC01NzAsNyArNTcwLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0
V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckMKIHsK
ICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzOjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlV
bmljb2RlQmlkaSwgQ1NTVmFsdWVOb3JtYWwpOwotICAgIGZyYW1lLmVkaXRvcigpLmFwcGx5U3R5
bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKKyAgICBmcmFt
ZS5lZGl0b3IoKS5hcHBseVN0eWxlKHN0eWxlLmdldCgpLCBFZGl0QWN0aW9uOjpTZXRXcml0aW5n
RGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTc5LDcgKzU3OSw3IEBAIHN0
YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdChGcmFt
ZSYgZnJhbWUsIEV2ZW50KiwgRWRpCiAgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnRpZXM+
IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlRW1iZWQpOwogICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgQ1NTVmFsdWVSdGwpOwotICAg
IGZyYW1lLmVkaXRvcigpLmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25TZXRXcml0
aW5nRGlyZWN0aW9uKTsKKyAgICBmcmFtZS5lZGl0b3IoKS5hcHBseVN0eWxlKHN0eWxlLmdldCgp
LCBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMTAzMCw3ICsxMDMwLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVN0cmlrZXRocm91Z2go
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmMKICAgICBSZWY8
RWRpdGluZ1N0eWxlPiBzdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCk7CiAgICAgc3R5bGUt
PnNldFN0cmlrZVRocm91Z2hDaGFuZ2UodGV4dERlY29yYXRpb25DaGFuZ2VGb3JUb2dnbGluZyhm
cmFtZS5lZGl0b3IoKSwgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwg
ImxpbmUtdGhyb3VnaCJfcykpOwogICAgIC8vIEZJWE1FOiBOZWVkcyBhIG5ldyBFZGl0QWN0aW9u
IQotICAgIHJldHVybiBhcHBseUNvbW1hbmRUb0ZyYW1lKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rp
b25VbmRlcmxpbmUsIFdURk1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gYXBwbHlDb21tYW5kVG9G
cmFtZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpVbmRlcmxpbmUsIFdURk1vdmUoc3R5bGUp
KTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZVN0eWxlV2l0aENTUyhGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTEwNDcs
MTIgKzEwNDcsMTIgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVVzZUNTUyhGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW4KIAogc3RhdGljIGJvb2wgZXhl
Y3V0ZVN1YnNjcmlwdChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVUb2dnbGVTdHlsZShm
cmFtZSwgc291cmNlLCBFZGl0QWN0aW9uU3Vic2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxp
Z24sICJiYXNlbGluZSJfcywgInN1YiJfcyk7CisgICAgcmV0dXJuIGV4ZWN1dGVUb2dnbGVTdHls
ZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpTdWJzY3JpcHQsIENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgImJhc2VsaW5lIl9zLCAic3ViIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0
ZVN1cGVyc2NyaXB0KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNv
dXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZy
YW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25TdXBlcnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFs
aWduLCAiYmFzZWxpbmUiX3MsICJzdXBlciJfcyk7CisgICAgcmV0dXJuIGV4ZWN1dGVUb2dnbGVT
dHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpTdXBlcnNjcmlwdCwgQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduLCAiYmFzZWxpbmUiX3MsICJzdXBlciJfcyk7CiB9CiAKIHN0YXRpYyBib29s
IGV4ZWN1dGVTd2FwV2l0aE1hcmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2UsIGNvbnN0IFN0cmluZyYpCkBAIC0xMDc5LDEyICsxMDc5LDEyIEBAIHN0YXRpYyBib29s
IGV4ZWN1dGVUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVUb2dnbGVCb2xkKEZyYW1lJiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsK
LSAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25C
b2xkLCBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJub3JtYWwiX3MsICJib2xkIl9zKTsKKyAgICBy
ZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OkJvbGQs
IENTU1Byb3BlcnR5Rm9udFdlaWdodCwgIm5vcm1hbCJfcywgImJvbGQiX3MpOwogfQogCiBzdGF0
aWMgYm9vbCBleGVjdXRlVG9nZ2xlSXRhbGljKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JD
b21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gZXhlY3V0
ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25JdGFsaWNzLCBDU1NQcm9wZXJ0
eUZvbnRTdHlsZSwgIm5vcm1hbCJfcywgIml0YWxpYyJfcyk7CisgICAgcmV0dXJuIGV4ZWN1dGVU
b2dnbGVTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uOjpJdGFsaWNzLCBDU1NQcm9wZXJ0
eUZvbnRTdHlsZSwgIm5vcm1hbCJfcywgIml0YWxpYyJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGV4
ZWN1dGVUcmFuc3Bvc2UoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFN0cmluZyYpCkBAIC0xMDk4LDcgKzEwOTgsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRl
VW5kZXJsaW5lKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJj
ZSwgYwogICAgIFJlZjxFZGl0aW5nU3R5bGU+IHN0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUo
KTsKICAgICBUZXh0RGVjb3JhdGlvbkNoYW5nZSBjaGFuZ2UgPSB0ZXh0RGVjb3JhdGlvbkNoYW5n
ZUZvclRvZ2dsaW5nKGZyYW1lLmVkaXRvcigpLCBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0
aW9uc0luRWZmZWN0LCAidW5kZXJsaW5lIl9zKTsKICAgICBzdHlsZS0+c2V0VW5kZXJsaW5lQ2hh
bmdlKGNoYW5nZSk7Ci0gICAgcmV0dXJuIGFwcGx5Q29tbWFuZFRvRnJhbWUoZnJhbWUsIHNvdXJj
ZSwgRWRpdEFjdGlvblVuZGVybGluZSwgV1RGTW92ZShzdHlsZSkpOworICAgIHJldHVybiBhcHBs
eUNvbW1hbmRUb0ZyYW1lKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb246OlVuZGVybGluZSwgV1RG
TW92ZShzdHlsZSkpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlVW5kbyhGcmFtZSYgZnJhbWUs
IEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKQEAgLTExMTYsNyAr
MTExNiw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVVbmxpbmsoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVV
bnNjcmlwdChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2Us
IGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBz
b3VyY2UsIEVkaXRBY3Rpb25VbnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAiYmFz
ZWxpbmUiX3MpOworICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBF
ZGl0QWN0aW9uOjpVbnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAiYmFzZWxpbmUi
X3MpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlVW5zZWxlY3QoRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuaAppbmRleCA0MmU0NTcxYTRlMzM4OTYwMzhmN2Mz
MzYxNjEzNmZmNWNlZTNlNzg5Li43OWJlZGFkMTdlMGU2NGM4MjU4MjAxNmQ1MmU5YjllOTZmMjQy
MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmgKQEAg
LTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZm9ybWF0U2VsZWN0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgc3RhcnRPZlNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBlbmRPZlNlbGVjdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmb3JtYXRSYW5nZShjb25zdCBQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQsIGNvbnN0IFBvc2l0aW9uJiBlbmRP
ZlNlbGVjdGlvbiwgUmVmUHRyPEVsZW1lbnQ+Jikgb3ZlcnJpZGU7Ci0gICAgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvbkZvcm1hdEJs
b2NrOyB9CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gRWRpdEFjdGlvbjo6Rm9ybWF0QmxvY2s7IH0KIAogICAgIGJvb2wgbV9kaWRBcHBseTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgKaW5k
ZXggYzMwZjc0Mzk2MjMyMWFkZTFlYzZkYzY0NDI3MGI5NTFmNzc2YTk4Ni4uOTA3NTlhYzFmZWMx
NGExMjQxOWY2NjM0ZTRlZjNiYTVhZjY5N2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEluZGVudE91dGRlbnRDb21tYW5kKERvY3VtZW50JiwgRUluZGVudFR5cGUpOwog
Ci0gICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV90eXBlT2ZBY3Rpb24gPT0gSW5kZW50ID8gRWRpdEFjdGlvbkluZGVudCA6IEVkaXRBY3Rpb25P
dXRkZW50OyB9CisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV90eXBlT2ZBY3Rpb24gPT0gSW5kZW50ID8gRWRpdEFjdGlvbjo6SW5kZW50IDog
RWRpdEFjdGlvbjo6T3V0ZGVudDsgfQogCiAgICAgdm9pZCBpbmRlbnRSZWdpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAgICAgdm9pZCBvdXRkZW50
UmVnaW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aAppbmRleCAwZDE5MDVmZTg3MjZkM2Q3YTc5Yjk4NDNkNzJjNThjNzkzZmY4ZWRkLi4xMTk2ZTYw
ZjZkMmQ5MzJiNDJiNjlhZTFiYmRlY2QxOWRjM2IyMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzMsNyArMzMsNyBA
QCBjbGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWY8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlv
bkluc2VydCkKKyAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0
ZShSZWY8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbjo6SW5zZXJ0KQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChXVEZN
b3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCmluZGV4IDk3NzEwYmU0MGRm
ZjlkZjkwMTk3N2Q2ZGJlMDliN2Q1ZTljM2E1MDEuLmM1NzFiZTFmMzQzYjZiYWQxN2I4ZWMxOTMw
M2UzZjE2NGI3ODY1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGlzdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENv
bW1hbmQuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBJbnNlcnRMaXN0Q29tbWFuZDo6ZG9B
cHBseSgpCiAKIEVkaXRBY3Rpb24gSW5zZXJ0TGlzdENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBj
b25zdAogewotICAgIHJldHVybiBtX3R5cGUgPT0gT3JkZXJlZExpc3QgPyBFZGl0QWN0aW9uSW5z
ZXJ0T3JkZXJlZExpc3QgOiBFZGl0QWN0aW9uSW5zZXJ0VW5vcmRlcmVkTGlzdDsKKyAgICByZXR1
cm4gbV90eXBlID09IE9yZGVyZWRMaXN0ID8gRWRpdEFjdGlvbjo6SW5zZXJ0T3JkZXJlZExpc3Qg
OiBFZGl0QWN0aW9uOjpJbnNlcnRVbm9yZGVyZWRMaXN0OwogfQogCiB2b2lkIEluc2VydExpc3RD
b21tYW5kOjpkb0FwcGx5Rm9yU2luZ2xlUGFyYWdyYXBoKGJvb2wgZm9yY2VDcmVhdGVMaXN0LCBj
b25zdCBIVE1MUXVhbGlmaWVkTmFtZSYgbGlzdFRhZywgUmFuZ2UqIGN1cnJlbnRTZWxlY3Rpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
aW5kZXggYzQyMDU5NjFjMjJlOTQzYTlhNmJiNjYyZWQ5OGU1ZThjMWI0OTk5NS4uMjVkMzQzYzhl
MTMzMTY0MThlNzQwMGFkYzgyNWEwZjhjZTUxNjY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZD4gY3JlYXRlKFJlZjxOb2RlPiYmIGNoaWxkVG9JbnNlcnQsIE5vZGUmIGNoaWxk
VG9JbnNlcnRCZWZvcmUsCi0gICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbjo6SW5zZXJ0KQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoV1RGTW92ZShj
aGlsZFRvSW5zZXJ0KSwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCmlu
ZGV4IDAyODVhZTc2OTYwYzY2YTkzMzUwNWZkNWMwMDI3NmZhYjRhMDU2YzEuLjY4OWIyODM2ZGMz
ZDA4OWJiNGU1OWMwZjA5MjlmYmU1YjQxYjE2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAogY2xhc3MgSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2Us
IGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9v
bCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRp
dEFjdGlvbjo6SW5zZXJ0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFw
aEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5k
ZXggNzhjOTVkYTU1ZDZkYTUzOGIxZDBkYTAxZTZlNGNlOGI1YzU3MWZmOC4uMmMzYmNjNGYzMGYw
YzY4ZjM1Njc5ZWVhMGQyZmFmMDViM2I1OThlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNDgsMTIgKzQ4LDEyIEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNl
LAotICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5n
QW5kVHJhaWxpbmdXaGl0ZXNwYWNlcywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFj
dGlvbkluc2VydCkKKyAgICAgICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxh
bmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
biA9IEVkaXRBY3Rpb246Okluc2VydCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQs
IHJlYmFsYW5jZVR5cGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFJlZjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+JiYgbWFya2VyU3VwcGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1h
cmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBSZWY8
VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiYmIG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uOjpJbnNlcnQpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgV1RGTW92
ZShtYXJrZXJTdXBwbGllciksIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDQ4NmQ4NWFhNTk2
NjhhYzk5MGU2MmYzZWUwY2M1ZTYyMWYyZjU5MTQuLjVlNTAzNzMzNmEzNDE4YTAzODI3NTU2MDA0
NDA3NmFhYzY3OTc4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgTW92ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIHsKLSAgICAgICAgYXV0byBkZWxldGVTZWxlY3Rp
b24gPSBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9zbWFydERl
bGV0ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIEVkaXRBY3Rpb25EZWxldGVCeURyYWcpOwor
ICAgICAgICBhdXRvIGRlbGV0ZVNlbGVjdGlvbiA9IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBtX3NtYXJ0RGVsZXRlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwg
RWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnKTsKICAgICAgICAgZGVsZXRlU2VsZWN0aW9uLT5zZXRQ
YXJlbnQodGhpcyk7CiAgICAgICAgIGRlbGV0ZVNlbGVjdGlvbi0+YXBwbHkoKTsKICAgICAgICAg
bV9jb21tYW5kcy5hcHBlbmQoV1RGTW92ZShkZWxldGVTZWxlY3Rpb24pKTsKQEAgLTg3LDcgKzg3
LDcgQEAgdm9pZCBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIG9wdGlv
bnMuYWRkKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2UpOwogCiAgICAgewot
ICAgICAgICBhdXRvIHJlcGxhY2VTZWxlY3Rpb24gPSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIFdURk1vdmUobV9mcmFnbWVudCksIG9wdGlvbnMsIEVkaXRBY3Rp
b25JbnNlcnRGcm9tRHJvcCk7CisgICAgICAgIGF1dG8gcmVwbGFjZVNlbGVjdGlvbiA9IFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGTW92ZShtX2ZyYWdtZW50
KSwgb3B0aW9ucywgRWRpdEFjdGlvbjo6SW5zZXJ0RnJvbURyb3ApOwogICAgICAgICByZXBsYWNl
U2VsZWN0aW9uLT5zZXRQYXJlbnQodGhpcyk7CiAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb24tPmFw
cGx5KCk7CiAgICAgICAgIG1fY29tbWFuZHMuYXBwZW5kKFdURk1vdmUocmVwbGFjZVNlbGVjdGlv
bikpOwpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIE1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5
KCkKIAogRWRpdEFjdGlvbiBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGVCeURyYWc7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb246OkRlbGV0ZUJ5RHJhZzsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaAppbmRleCBhNDkzYjNh
YmY3MzM5MjdhNWRjYjI5NTI3ZTU0MTI5MTZmZWVhYjg2Li42OTEyMDM4N2Y0ZTE3ZTkxMGZlYTY3
N2MzNTA1YzdlNGEwYWMzYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZUZvcm1hdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZv
cm1hdENvbW1hbmQuaApAQCAtNDAsNyArNDAsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJl
bW92ZUZvcm1hdENvbW1hbmQoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgZG9BcHBseSgpIG92ZXJy
aWRlOwotICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsgfQorICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOyB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmgKaW5kZXggMGM3NDA3MmQwNTczMWRmMDQ4MDgzN2U1ZDQzZGQxMmZkZmMy
Yzk2Yy4uMzE2ZTJhNDk3NzY3MDU5NDhlMTU2NDI1OWQ1ZDJiMTYzZWRkMTcyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaApAQCAtMzEsNyArMzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVDb21t
YW5kPiBjcmVhdGUoUmVmPE5vZGU+JiYgbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCkKKyAgICBzdGF0aWMgUmVmPFJl
bW92ZU5vZGVDb21tYW5kPiBjcmVhdGUoUmVmPE5vZGU+JiYgbm9kZSwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZUNvbW1hbmQoV1RGTW92
ZShub2RlKSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAKaW5kZXggNWIzNGQwNjQzNmE5OGI1YzliZjcyZGVjMmVk
NzRiZWQ2MDEyOGNlZS4uNzNhOGNlM2FjNGYyYzEyMjlmNTlmNTJkMTNmMmE0Y2Q4NjUzNDA5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlUmFuZ2VXaXRoVGV4dENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVJhbmdlV2l0aFRl
eHRDb21tYW5kLmNwcApAQCAtNDEsNyArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBS
ZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQ6OlJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZChS
ZWZQdHI8UmFuZ2U+IHJhbmdlVG9CZVJlcGxhY2VkLCBjb25zdCBTdHJpbmcmIHRleHQpCi0gICAg
OiBDb21wb3NpdGVFZGl0Q29tbWFuZChyYW5nZVRvQmVSZXBsYWNlZC0+c3RhcnRDb250YWluZXIo
KS5kb2N1bWVudCgpLCBFZGl0QWN0aW9uSW5zZXJ0UmVwbGFjZW1lbnQpCisgICAgOiBDb21wb3Np
dGVFZGl0Q29tbWFuZChyYW5nZVRvQmVSZXBsYWNlZC0+c3RhcnRDb250YWluZXIoKS5kb2N1bWVu
dCgpLCBFZGl0QWN0aW9uOjpJbnNlcnRSZXBsYWNlbWVudCkKICAgICAsIG1fcmFuZ2VUb0JlUmVw
bGFjZWQocmFuZ2VUb0JlUmVwbGFjZWQpCiAgICAgLCBtX3RleHQodGV4dCkKIHsKQEAgLTY4LDcg
KzY4LDcgQEAgdm9pZCBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQ6OmRvQXBwbHkoKQogICAg
ICAgICByZXR1cm47CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShTZXRTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUoc2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGTW92ZShtX3RleHRGcmFnbWVudCks
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpNYXRjaFN0eWxlLCBFZGl0QWN0aW9uUGFzdGUpKTsK
KyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIFdURk1vdmUobV90ZXh0RnJhZ21lbnQpLCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6TWF0Y2hTdHlsZSwgRWRpdEFjdGlvbjo6UGFzdGUpKTsKIH0KIAogU3RyaW5nIFJl
cGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZDo6aW5wdXRFdmVudERhdGEoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRl
eCA2NmQ4NmFjMTVjZWIxMjE0ODk2MGU2OTFjYzhhZWM0ZWIzOTE0MjAzLi4xMjVlYjNlYTQzYmVk
M2M3ODdjNjc5ODk1ZjFlMzllYjAxYzI0YTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMTQxMiw3ICsxNDEyLDcgQEAg
dm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y29tcGxldGVIVE1MUmVwbGFjZW1lbnQoY29u
c3QgUG9zaXRpb24gJmxhc3RQb3NpdGkKICAgICBlbHNlCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpICYmIGVkaXRpbmdBY3Rp
b24oKSA9PSBFZGl0QWN0aW9uUGFzdGUpCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkgJiYgZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb246OlBhc3RlKQog
ICAgICAgICBtX3Zpc2libGVTZWxlY3Rpb25Gb3JJbnNlcnRlZFRleHQgPSBWaXNpYmxlU2VsZWN0
aW9uKHN0YXJ0LCBlbmQpOwogCiAgICAgaWYgKG1fc2VsZWN0UmVwbGFjZW1lbnQpCkBAIC0xNTg0
LDcgKzE1ODQsNyBAQCBib29sIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpwZXJmb3JtVHJpdmlh
bFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYgZgogCiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBzZWxlY3Rpb25BZnRlclJlcGxhY2UobV9zZWxlY3RSZXBsYWNlbWVudCA/IHN0YXJ0IDog
ZW5kLCBlbmQpOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkgJiYgZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25QYXN0ZSkKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBlZGl0aW5nQWN0aW9uKCkgPT0gRWRp
dEFjdGlvbjo6UGFzdGUpCiAgICAgICAgIG1fdmlzaWJsZVNlbGVjdGlvbkZvckluc2VydGVkVGV4
dCA9IFZpc2libGVTZWxlY3Rpb24oc3RhcnQsIGVuZCk7CiAKICAgICBzZXRFbmRpbmdTZWxlY3Rp
b24oc2VsZWN0aW9uQWZ0ZXJSZXBsYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA1OGM3ZTk0YTQ4YjlkN2NlNDVmODNmMGNj
OWFiYTQ4ZWUzMTAwMmRmLi5hMjU4MWNiYTA2YjdmNDBhNjk0NDljYmZiNzVmY2Q4YTg1MzBjYTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgSWdub3JlTWFpbEJsb2NrcXVv
dGUgPSAxIDw8IDYsCiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiYmIGZyYWdtZW50LCBPcHRpb25TZXQ8Q29tbWFuZE9wdGlvbj4gb3B0aW9ucywgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKKyAgICBzdGF0aWMgUmVmPFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgT3B0aW9uU2V0PENvbW1hbmRPcHRpb24+IG9wdGlv
bnMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb246Okluc2VydCkKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRv
Y3VtZW50LCBXVEZNb3ZlKGZyYWdtZW50KSwgb3B0aW9ucywgZWRpdGluZ0FjdGlvbikpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNv
bW1hbmQuY3BwCmluZGV4IDMzNTdlMGEyNzZkYmUwOWM5Y2RmYTdiZTk1Nzk5MTI4ZTc2OTQ0ODAu
Ljg3MGQ0NDUyZjYxMmM0NjUwODUwNjhhNWM4MzI5MTc2NjVlMDI0MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcApAQCAt
ODQsNyArODQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1h
bmQ6OlNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQoUmFuZ2UmIHJhbmdlVG9CZUNvcnJlY3RlZCwg
Y29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQocmFu
Z2VUb0JlQ29ycmVjdGVkLnN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKSwgRWRpdEFjdGlvbklu
c2VydFJlcGxhY2VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQocmFuZ2VUb0JlQ29y
cmVjdGVkLnN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKSwgRWRpdEFjdGlvbjo6SW5zZXJ0UmVw
bGFjZW1lbnQpCiAgICAgLCBtX3JhbmdlVG9CZUNvcnJlY3RlZChyYW5nZVRvQmVDb3JyZWN0ZWQp
CiAgICAgLCBtX3NlbGVjdGlvblRvQmVDb3JyZWN0ZWQobV9yYW5nZVRvQmVDb3JyZWN0ZWQpCiAg
ICAgLCBtX2NvcnJlY3Rpb24oY29ycmVjdGlvbikKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFNw
ZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgbV9jb3JyZWN0ZWQsIG1fY29ycmVjdGlvbikpOwogI2VuZGlmCiAKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIFdURk1vdmUobV9jb3JyZWN0aW9uRnJhZ21lbnQpLCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6TWF0Y2hTdHlsZSwgRWRpdEFjdGlvblBhc3RlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBXVEZNb3Zl
KG1fY29ycmVjdGlvbkZyYWdtZW50KSwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5
bGUsIEVkaXRBY3Rpb246OlBhc3RlKSk7CiB9CiAKIFN0cmluZyBTcGVsbGluZ0NvcnJlY3Rpb25D
b21tYW5kOjppbnB1dEV2ZW50RGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuaAppbmRleCAxMGQ5YWRiMDgzZmMzYTc3ZDg3
YTNmMmNjMzQxM2E0YmMyZDIyNmU1Li42NzQ0NWYwZjQwYWMxMzk3NDU1MmZhZjhiMDA0ODg0NjFh
Y2YxMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJbnNlcnRpb25C
YXNlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEluc2VydGlvbkJh
c2VDb21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflRleHRJ
bnNlcnRpb25CYXNlQ29tbWFuZCgpIHsgfTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IFRl
eHRJbnNlcnRpb25CYXNlQ29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9u
VW5zcGVjaWZpZWQpOworICAgIGV4cGxpY2l0IFRleHRJbnNlcnRpb25CYXNlQ29tbWFuZChEb2N1
bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZCk7CiAgICAgc3RhdGlj
IHZvaWQgYXBwbHlUZXh0SW5zZXJ0aW9uQ29tbWFuZChGcmFtZSosIFRleHRJbnNlcnRpb25CYXNl
Q29tbWFuZCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbkZvckluc2VydGlvbiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uKTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IGI5NGRmNWExYjY5MjM3ZTc0YjFk
MDVlMjQwNDI2ODVlMDkxNjVlYWYuLjZiMTRmZDkwZDVkZjJmYzhmNGEzN2I3NmZmOTFiZDJiNTcz
NTNkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtODMs
NTggKzgzLDU4IEBAIHN0YXRpYyBpbmxpbmUgRWRpdEFjdGlvbiBlZGl0QWN0aW9uRm9yVHlwaW5n
Q29tbWFuZChUeXBpbmdDb21tYW5kOjpFVHlwaW5nQ29tbWFuCiB7CiAgICAgaWYgKGNvbXBvc2l0
aW9uVHlwZSA9PSBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25QZW5kaW5nKSB7CiAgICAg
ICAgIGlmIChjb21tYW5kID09IFR5cGluZ0NvbW1hbmQ6Okluc2VydFRleHQpCi0gICAgICAgICAg
ICByZXR1cm4gRWRpdEFjdGlvblR5cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbjsKKyAgICAg
ICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQZW5kaW5nQ29tcG9zaXRpb247
CiAgICAgICAgIGlmIChjb21tYW5kID09IFR5cGluZ0NvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbikK
LSAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlUGVuZGluZ0NvbXBvc2l0
aW9uOworICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVBlbmRpbmdD
b21wb3NpdGlvbjsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAgICAg
aWYgKGNvbXBvc2l0aW9uVHlwZSA9PSBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25GaW5h
bCkgewogICAgICAgICBpZiAoY29tbWFuZCA9PSBUeXBpbmdDb21tYW5kOjpJbnNlcnRUZXh0KQot
ICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9u
OworICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydEZpbmFsQ29tcG9z
aXRpb247CiAgICAgICAgIGlmIChjb21tYW5kID09IFR5cGluZ0NvbW1hbmQ6OkRlbGV0ZVNlbGVj
dGlvbikKLSAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRmluYWxDb21w
b3NpdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVGaW5h
bENvbXBvc2l0aW9uOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAg
ICBzd2l0Y2ggKGNvbW1hbmQpIHsKICAgICBjYXNlIFR5cGluZ0NvbW1hbmQ6OkRlbGV0ZVNlbGVj
dGlvbjoKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVTZWxlY3Rpb247Cisg
ICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVTZWxlY3Rpb247CiAgICAgY2Fz
ZSBUeXBpbmdDb21tYW5kOjpEZWxldGVLZXk6IHsKICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09
IFdvcmRHcmFudWxhcml0eSkKLSAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVs
ZXRlV29yZEJhY2t3YXJkOworICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0Rl
bGV0ZVdvcmRCYWNrd2FyZDsKICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFy
eSkKLSAgICAgICAgICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJk
OwotICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUJhY2t3YXJkOworICAgICAg
ICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUxpbmVCYWNrd2FyZDsKKyAgICAg
ICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUJhY2t3YXJkOwogICAgIH0KICAgICBj
YXNlIFR5cGluZ0NvbW1hbmQ6OkZvcndhcmREZWxldGVLZXk6CiAgICAgICAgIGlmIChncmFudWxh
cml0eSA9PSBXb3JkR3JhbnVsYXJpdHkpCi0gICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5
cGluZ0RlbGV0ZVdvcmRGb3J3YXJkOworICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5
cGluZ0RlbGV0ZVdvcmRGb3J3YXJkOwogICAgICAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gTGluZUJv
dW5kYXJ5KQotICAgICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVMaW5lRm9y
d2FyZDsKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVGb3J3YXJkOworICAg
ICAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkOworICAg
ICAgICByZXR1cm4gRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRm9yd2FyZDsKICAgICBjYXNlIFR5
cGluZ0NvbW1hbmQ6Okluc2VydFRleHQ6Ci0gICAgICAgIHJldHVybiBpc0F1dG9jb21wbGV0aW9u
ID8gRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50IDogRWRpdEFjdGlvblR5cGluZ0luc2VydFRl
eHQ7CisgICAgICAgIHJldHVybiBpc0F1dG9jb21wbGV0aW9uID8gRWRpdEFjdGlvbjo6SW5zZXJ0
UmVwbGFjZW1lbnQgOiBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRUZXh0OwogICAgIGNhc2UgVHlw
aW5nQ29tbWFuZDo6SW5zZXJ0TGluZUJyZWFrOgotICAgICAgICByZXR1cm4gRWRpdEFjdGlvblR5
cGluZ0luc2VydExpbmVCcmVhazsKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlR5cGluZ0lu
c2VydExpbmVCcmVhazsKICAgICBjYXNlIFR5cGluZ0NvbW1hbmQ6Okluc2VydFBhcmFncmFwaFNl
cGFyYXRvcjoKICAgICBjYXNlIFR5cGluZ0NvbW1hbmQ6Okluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckluUXVvdGVkQ29udGVudDoKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQ
YXJhZ3JhcGg7CisgICAgICAgIHJldHVybiBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQYXJhZ3Jh
cGg7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsK
KyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVkOwogICAgIH0KIH0KIAogc3Rh
dGljIGlubGluZSBib29sIGVkaXRBY3Rpb25Jc0RlbGV0ZUJ5VHlwaW5nKEVkaXRBY3Rpb24gYWN0
aW9uKQogewogICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5n
RGVsZXRlU2VsZWN0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUJhY2t3YXJk
OgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdvcmRCYWNrd2FyZDoKLSAgICBjYXNl
IEVkaXRBY3Rpb25UeXBpbmdEZWxldGVMaW5lQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9u
VHlwaW5nRGVsZXRlRm9yd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVXb3Jk
Rm9yd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVNlbGVjdGlvbjoKKyAgICBjYXNlIEVkaXRB
Y3Rpb246OlR5cGluZ0RlbGV0ZUJhY2t3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5n
RGVsZXRlV29yZEJhY2t3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlTGlu
ZUJhY2t3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRm9yd2FyZDoKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVdvcmRGb3J3YXJkOgorICAgIGNhc2UgRWRp
dEFjdGlvbjo6VHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQwMSwxNyArNDAxLDE3IEBA
IFN0cmluZyBUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50VHlwZU5hbWUoKSBjb25zdAogCiBib29s
IFR5cGluZ0NvbW1hbmQ6OmlzQmVmb3JlSW5wdXRFdmVudENhbmNlbGFibGUoKSBjb25zdAogewot
ICAgIHJldHVybiBtX2N1cnJlbnRUeXBpbmdFZGl0QWN0aW9uICE9IEVkaXRBY3Rpb25UeXBpbmdJ
bnNlcnRQZW5kaW5nQ29tcG9zaXRpb24gJiYgbV9jdXJyZW50VHlwaW5nRWRpdEFjdGlvbiAhPSBF
ZGl0QWN0aW9uVHlwaW5nRGVsZXRlUGVuZGluZ0NvbXBvc2l0aW9uOworICAgIHJldHVybiBtX2N1
cnJlbnRUeXBpbmdFZGl0QWN0aW9uICE9IEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFBlbmRpbmdD
b21wb3NpdGlvbiAmJiBtX2N1cnJlbnRUeXBpbmdFZGl0QWN0aW9uICE9IEVkaXRBY3Rpb246OlR5
cGluZ0RlbGV0ZVBlbmRpbmdDb21wb3NpdGlvbjsKIH0KIAogU3RyaW5nIFR5cGluZ0NvbW1hbmQ6
OmlucHV0RXZlbnREYXRhKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fY3VycmVudFR5cGluZ0Vk
aXRBY3Rpb24pIHsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRUZXh0OgotICAgIGNh
c2UgRWRpdEFjdGlvblR5cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbjoKLSAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmdJbnNlcnRGaW5hbENvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nSW5zZXJ0VGV4dDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFBl
bmRpbmdDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydEZpbmFs
Q29tcG9zaXRpb246CiAgICAgICAgIHJldHVybiBtX2N1cnJlbnRUZXh0VG9JbnNlcnQ7Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uSW5zZXJ0UmVwbGFjZW1lbnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJ
bnNlcnRSZXBsYWNlbWVudDoKICAgICAgICAgcmV0dXJuIGlzRWRpdGluZ1RleHRBcmVhT3JUZXh0
SW5wdXQoKSA/IG1fY3VycmVudFRleHRUb0luc2VydCA6IFN0cmluZygpOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRFdmVudERhdGEoKTsK
QEAgLTQyMCw3ICs0MjAsNyBAQCBTdHJpbmcgVHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGEo
KSBjb25zdAogCiBSZWZQdHI8RGF0YVRyYW5zZmVyPiBUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50
RGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKLSAgICBpZiAobV9jdXJyZW50VHlwaW5nRWRpdEFjdGlv
biAhPSBFZGl0QWN0aW9uSW5zZXJ0UmVwbGFjZW1lbnQgfHwgaXNFZGl0aW5nVGV4dEFyZWFPclRl
eHRJbnB1dCgpKQorICAgIGlmIChtX2N1cnJlbnRUeXBpbmdFZGl0QWN0aW9uICE9IEVkaXRBY3Rp
b246Okluc2VydFJlcGxhY2VtZW50IHx8IGlzRWRpdGluZ1RleHRBcmVhT3JUZXh0SW5wdXQoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBTdHJpbmdCdWlsZGVyIGh0bWxUZXh0OwpA
QCAtNTQ4LDcgKzU0OCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhv
dXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0CiAgICAgICAgIHJldHVy
bjsKIAogICAgIGF1dG8gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAotICAgICAgICBtX2NvbXBvc2l0aW9uVHlw
ZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxl
YWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5j
ZUFsbFdoaXRlc3BhY2VzLCBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0VGV4dCk7CisgICAgICAgIG1f
Y29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFu
ZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29t
bWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFRl
eHQpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoV1RGTW92ZShjb21tYW5kKSwgZW5k
aW5nU2VsZWN0aW9uKCkpOwogCkBAIC01ODMsNyArNTgzLDcgQEAgdm9pZCBUeXBpbmdDb21tYW5k
OjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghd2lsbEFkZFR5cGluZ1RvT3Bl
bkNvbW1hbmQoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yLCBQYXJhZ3JhcGhHcmFudWxhcml0eSkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2Us
IEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQYXJhZ3JhcGgpKTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRQYXJhZ3JhcGgpKTsKICAg
ICB0eXBpbmdBZGRlZFRvT3BlbkNvbW1hbmQoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaAppbmRleCAxN2M1MGE5YTM0NWM1
ZWQ5Y2NhNGVjYmNiOWQ1MjAxMmI0OTkzNzYzLi4xODhhNTMxNjRjN2E4ZDk0ZDJiYjU2NzExOTU3
MzJmN2FmNTU2NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VubGlua0Nv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaApAQCAt
NDAsNyArNDAsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVubGlua0NvbW1hbmQoRG9jdW1l
bnQmKTsKIAogICAgIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rpb25Vbmxpbms7IH0K
KyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBF
ZGl0QWN0aW9uOjpVbmxpbms7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKaW5k
ZXggNjMyZmRhYmVjMmY1Nzk4NWEzMjg5MTE5ZDQxODE4ZDlhM2JiMWY4ZS4uODNlZjE5ZDgzYWU3
OWEyOTYyNzVhMzZjMTc3OWFhYmZhM2QzMWM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogRGljdGF0aW9uQ29tbWFuZElPUzo6RGljdGF0aW9uQ29tbWFu
ZElPUyhEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRp
b25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQsIEVkaXRBY3Rpb25EaWN0YXRpb24pCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCwgRWRpdEFjdGlvbjo6RGljdGF0aW9uKQogICAgICwgbV9kaWN0YXRp
b25QaHJhc2VzKFdURk1vdmUoZGljdGF0aW9uUGhyYXNlcykpCiAgICAgLCBtX21ldGFkYXRhKFdU
Rk1vdmUobWV0YWRhdGEpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9p
b3MvRWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1t
CmluZGV4IGM5OWIxZTQ3MGExNmJhNWE2YjlmYTQ0YzRjZDM1NmE1MGY2MGExNzkuLmExNzg5MmI1
NWE2ZDRhZmM1ZWMwY2M1M2VjMzNkMjA4NDgxMzM2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2lvcy9FZGl0b3JJT1MubW0KQEAgLTE2Myw4ICsxNjMsOCBAQCB2b2lkIEVkaXRvcjo6cmVtb3Zl
VW5jaGFuZ2VhYmxlU3R5bGVzKCkKICAgICBkZWZhdWx0U3R5bGUtPnJlbW92ZVByb3BlcnR5KENT
U1Byb3BlcnR5VGV4dERlY29yYXRpb24pOwogICAgIGRlZmF1bHRTdHlsZS0+cmVtb3ZlUHJvcGVy
dHkoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCk7IC8vIGltcGxlbWVu
dHMgdW5kZXJsaW5lCiAKLSAgICAvLyBGSVhNRSBhZGQgRWRpdEFjdGlvbk1hdGNoU3RseWUgPHJk
YXI6Ly9wcm9ibGVtLzkxNTY1MDc+IFVuZG8gcmljaCB0ZXh0J3MgcGFzdGUgJiBtYXRjaCBzdHls
ZSBzaG91bGQgc2F5ICJVbmRvIE1hdGNoIFN0eWxlIgotICAgIGFwcGx5U3R5bGVUb1NlbGVjdGlv
bihkZWZhdWx0U3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKTsKKyAgICAv
LyBGSVhNRSBhZGQgRWRpdEFjdGlvbjo6TWF0Y2hTdGx5ZSA8cmRhcjovL3Byb2JsZW0vOTE1NjUw
Nz4gVW5kbyByaWNoIHRleHQncyBwYXN0ZSAmIG1hdGNoIHN0eWxlIHNob3VsZCBzYXkgIlVuZG8g
TWF0Y2ggU3R5bGUiCisgICAgYXBwbHlTdHlsZVRvU2VsZWN0aW9uKGRlZmF1bHRTdHlsZS5nZXQo
KSwgRWRpdEFjdGlvbjo6Q2hhbmdlQXR0cmlidXRlcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGdldElt
YWdlKEVsZW1lbnQmIGltYWdlRWxlbWVudCwgUmVmUHRyPEltYWdlPiYgaW1hZ2UsIENhY2hlZElt
YWdlKiYgY2FjaGVkSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IDVkOTI3NDZlYWE2ZGI2YjVkYjU0MTQ4NWIwOGFkZDEzZGE0NjlkOWYuLmY0NDA3MDUwMWYz
N2Q4ZjdjNDkzNzM4Y2Q1ZjgxNzU3MDc5ZGYwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCkBAIC01NjksNyArNTY5LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29u
Y2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIGlmICghaW5u
ZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxkQXBwbHlTdHlsZShzdHlsZS5wdHIoKSwgaW5uZXJSYW5n
ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIG1fY2xpZW50Lndp
bGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQs
IGRyYWdEYXRhKTsKLSAgICAgICAgaW5uZXJGcmFtZS0+ZWRpdG9yKCkuYXBwbHlTdHlsZShzdHls
ZS5wdHIoKSwgRWRpdEFjdGlvblNldENvbG9yKTsKKyAgICAgICAgaW5uZXJGcmFtZS0+ZWRpdG9y
KCkuYXBwbHlTdHlsZShzdHlsZS5wdHIoKSwgRWRpdEFjdGlvbjo6U2V0Q29sb3IpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTYyMiw3ICs2MjIsNyBAQCBib29sIERyYWdDb250
cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9ucy5hZGQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNtYXJ0
UmVwbGFjZSk7CiAgICAgICAgICAgICAgICAgaWYgKGNob3NlUGxhaW5UZXh0KQogICAgICAgICAg
ICAgICAgICAgICBvcHRpb25zLmFkZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHls
ZSk7Ci0gICAgICAgICAgICAgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9k
b2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIG9wdGlvbnMsIEVk
aXRBY3Rpb25JbnNlcnRGcm9tRHJvcCktPmFwcGx5KCk7CisgICAgICAgICAgICAgICAgUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50
LnJlbGVhc2VOb25OdWxsKCksIG9wdGlvbnMsIEVkaXRBY3Rpb246Okluc2VydEZyb21Ecm9wKS0+
YXBwbHkoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC02Mzks
NyArNjM5LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBE
cmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBp
ZiAoc2V0U2VsZWN0aW9uVG9EcmFnQ2FyZXQoaW5uZXJGcmFtZS5nZXQoKSwgZHJhZ0NhcmV0LCBy
YW5nZSwgcG9pbnQpKQotICAgICAgICAgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50LmdldCgpLCB7IFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpTZWxlY3RSZXBsYWNlbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1h
dGNoU3R5bGUsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZyB9LCBFZGl0
QWN0aW9uSW5zZXJ0RnJvbURyb3ApLT5hcHBseSgpOworICAgICAgICAgICAgUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50LmdldCgp
LCB7IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTZWxlY3RSZXBsYWNlbWVudCwgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5bGUsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2
ZW50TmVzdGluZyB9LCBFZGl0QWN0aW9uOjpJbnNlcnRGcm9tRHJvcCktPmFwcGx5KCk7CiAgICAg
fQogCiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXggZGZiMTFkNzVjYmZkODllMjFh
M2ZjYmNmOGE3Nzc0MzY3OGQzMDVlOS4uNmZkOGRmNWQxYTY1NTNmY2YxNDc4Zjk0YWJlMjc0NDYy
YjliN2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1h
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQ
cm94eS5jcHAKQEAgLTcyLDEwNCArNzIsMTA0IEBAIFN0cmluZyBXZWJFZGl0Q29tbWFuZFByb3h5
OjpuYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgaXMgaWRlbnRpY2FsIHRvIGNvZGUgaW4gV2ViS2l0J3MgV2ViRWRpdG9yQ2xpZW50
IGNsYXNzOyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdzIGluc3RlYWQgb2YgaGF2
aW5nIHR3byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7Ci0gICAgY2FzZSBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgotICAgIGNhc2Ug
RWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50OgotICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydEZy
b21Ecm9wOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQ6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpJbnNlcnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRSZXBsYWNlbWVudDoK
KyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydEZyb21Ecm9wOgogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6CisgICAgY2FzZSBFZGl0QWN0aW9u
OjpTZXRDb2xvcjoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQ29sb3Ii
LCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6U2V0QmFja2dyb3VuZENvbG9yOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IlNldCBCYWNrZ3JvdW5kIENvbG9yIiwgIlNldCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHVybk9m
Zktlcm5pbmc6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJuT2ZmS2VybmluZzoKICAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUdXJuIE9mZiBLZXJuaW5nIiwgIlR1cm4gT2ZmIEtl
cm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNl
IEVkaXRBY3Rpb25UaWdodGVuS2VybmluZzoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlRpZ2h0ZW5L
ZXJuaW5nOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRpZ2h0ZW4gS2Vybmlu
ZyIsICJUaWdodGVuIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Mb29zZW5LZXJuaW5nOgorICAgIGNhc2UgRWRpdEFj
dGlvbjo6TG9vc2VuS2VybmluZzoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJM
b29zZW4gS2VybmluZyIsICJMb29zZW4gS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblVzZVN0YW5kYXJkS2VybmluZzoK
KyAgICBjYXNlIEVkaXRBY3Rpb246OlVzZVN0YW5kYXJkS2VybmluZzoKICAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgU3RhbmRhcmQgS2VybmluZyIsICJVc2UgU3RhbmRhcmQg
S2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNh
c2UgRWRpdEFjdGlvblR1cm5PZmZMaWdhdHVyZXM6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJu
T2ZmTGlnYXR1cmVzOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlR1cm4gT2Zm
IExpZ2F0dXJlcyIsICJUdXJuIE9mZiBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Vc2VTdGFuZGFyZExpZ2F0dXJl
czoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVzZVN0YW5kYXJkTGlnYXR1cmVzOgogICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMiLCAiVXNlIFN0
YW5kYXJkIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgIGNhc2UgRWRpdEFjdGlvblVzZUFsbExpZ2F0dXJlczoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlVzZUFsbExpZ2F0dXJlczoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJV
c2UgQWxsIExpZ2F0dXJlcyIsICJVc2UgQWxsIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblJhaXNlQmFzZWxpbmU6
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpSYWlzZUJhc2VsaW5lOgogICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlJhaXNlIEJhc2VsaW5lIiwgIlJhaXNlIEJhc2VsaW5lIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uTG93
ZXJCYXNlbGluZToKKyAgICBjYXNlIEVkaXRBY3Rpb246Okxvd2VyQmFzZWxpbmU6CiAgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiTG93ZXIgQmFzZWxpbmUiLCAiTG93ZXIgQmFzZWxp
bmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVk
aXRBY3Rpb25TZXRUcmFkaXRpb25hbENoYXJhY3RlclNoYXBlOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6U2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJTaGFwZToKICAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNoYXBlIiwgIlNldCBUcmFkaXRp
b25hbCBDaGFyYWN0ZXIgU2hhcGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25TZXRGb250OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
U2V0Rm9udDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgRm9udCIsICJT
ZXQgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNh
c2UgRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXM6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDaGFu
Z2VBdHRyaWJ1dGVzOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNoYW5nZSBB
dHRyaWJ1dGVzIiwgIkNoYW5nZSBBdHRyaWJ1dGVzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQWxpZ25MZWZ0OgorICAgIGNhc2Ug
RWRpdEFjdGlvbjo6QWxpZ25MZWZ0OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IkFsaWduIExlZnQiLCAiQWxpZ24gTGVmdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkFsaWduUmlnaHQ6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpBbGlnblJpZ2h0OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkFs
aWduIFJpZ2h0IiwgIkFsaWduIFJpZ2h0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQ2VudGVyOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6Q2VudGVyOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNlbnRlciIsICJD
ZW50ZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNl
IEVkaXRBY3Rpb25KdXN0aWZ5OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SnVzdGlmeToKICAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJKdXN0aWZ5IiwgIkp1c3RpZnkgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25TZXRX
cml0aW5nRGlyZWN0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0V3JpdGluZ0RpcmVjdGlv
bjoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgV3JpdGluZyBEaXJlY3Rp
b24iLCAiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU3Vic2NyaXB0OgorICAgIGNhc2UgRWRp
dEFjdGlvbjo6U3Vic2NyaXB0OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlN1
YnNjcmlwdCIsICJTdWJzY3JpcHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25TdXBlcnNjcmlwdDoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlN1cGVyc2NyaXB0OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlN1cGVy
c2NyaXB0IiwgIlN1cGVyc2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVW5kZXJsaW5lOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6VW5kZXJsaW5lOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVuZGVybGlu
ZSIsICJVbmRlcmxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
LSAgICBjYXNlIEVkaXRBY3Rpb25PdXRsaW5lOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6T3V0bGlu
ZToKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJPdXRsaW5lIiwgIk91dGxpbmUg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25VbnNjcmlwdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVuc2NyaXB0OgogICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlVuc2NyaXB0IiwgIlVuc2NyaXB0IChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRl
QnlEcmFnOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnOgogICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIkRyYWciLCAiRHJhZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVk
aXRBY3Rpb246OkN1dDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDdXQiLCAi
Q3V0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBF
ZGl0QWN0aW9uQm9sZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OkJvbGQ6CiAgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HX0tFWSgiQm9sZCIsICJCb2xkIChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uSXRhbGljczoKKyAgICBjYXNl
IEVkaXRBY3Rpb246Okl0YWxpY3M6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgi
SXRhbGljcyIsICJJdGFsaWNzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVs
ZXRlOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkRlbGV0ZSIsICJEZWxldGUg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRB
Y3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpEaWN0YXRpb246CiAgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiRGljdGF0aW9uIiwgIkRpY3RhdGlvbiAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblBh
c3RlOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGU6CiAgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiUGFzdGUiLCAiUGFzdGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZUZvbnQ6CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpQYXN0ZUZvbnQ6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiUGFz
dGUgRm9udCIsICJQYXN0ZSBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uUGFzdGVSdWxlcjoKKyAgICBjYXNlIEVkaXRBY3Rp
b246OlBhc3RlUnVsZXI6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiUGFzdGUg
UnVsZXIiLCAiUGFzdGUgUnVsZXIgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVTZWxlY3Rpb246Ci0gICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nRGVsZXRlRm9yd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVXb3JkQmFj
a3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJkOgotICAgIGNhc2UgRWRpdEFj
dGlvblR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0Rl
bGV0ZVBlbmRpbmdDb21wb3NpdGlvbjoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVG
aW5hbENvbXBvc2l0aW9uOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydFRleHQ6Ci0g
ICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0TGluZUJyZWFrOgotICAgIGNhc2UgRWRpdEFj
dGlvblR5cGluZ0luc2VydFBhcmFncmFwaDoKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNl
cnRQZW5kaW5nQ29tcG9zaXRpb246Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5zZXJ0Rmlu
YWxDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVNlbGVjdGlv
bjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUJhY2t3YXJkOgorICAgIGNhc2Ug
RWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5
cGluZ0RlbGV0ZVdvcmRCYWNrd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0
ZVdvcmRGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlTGluZUJhY2t3
YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlTGluZUZvcndhcmQ6CisgICAg
Y2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVQZW5kaW5nQ29tcG9zaXRpb246CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVGaW5hbENvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRp
dEFjdGlvbjo6VHlwaW5nSW5zZXJ0VGV4dDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0lu
c2VydExpbmVCcmVhazoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFBhcmFncmFw
aDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFBlbmRpbmdDb21wb3NpdGlvbjoK
KyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydEZpbmFsQ29tcG9zaXRpb246CiAgICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVHlwaW5nIiwgIlR5cGluZyAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkNyZWF0
ZUxpbms6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDcmVhdGVMaW5rOgogICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklOR19LRVkoIkNyZWF0ZSBMaW5rIiwgIkNyZWF0ZSBMaW5rIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVW5saW5r
OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5saW5rOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlVubGluayIsICJVbmxpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0
aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRVbm9yZGVyZWRMaXN0OgotICAg
IGNhc2UgRWRpdEFjdGlvbkluc2VydE9yZGVyZWRMaXN0OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
SW5zZXJ0VW5vcmRlcmVkTGlzdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydE9yZGVyZWRM
aXN0OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkluc2VydCBMaXN0IiwgIklu
c2VydCBMaXN0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uRm9ybWF0QmxvY2s6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpGb3JtYXRC
bG9jazoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJGb3JtYXR0aW5nIiwgIkZv
cm1hdCBCbG9jayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
IGNhc2UgRWRpdEFjdGlvbkluZGVudDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OkluZGVudDoKICAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJJbmRlbnQiLCAiSW5kZW50IChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uT3V0
ZGVudDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Ok91dGRlbnQ6CiAgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiT3V0ZGVudCIsICJPdXRkZW50IChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7CiAgICAgfQogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXgg
OGUyMDAyZDRlMDM4MDUxOTU2NjQ5NjMzMTM3MTNjMDlmM2EyOTcyNy4uMmJkZDA4ZmRkODNmZGI1
ZDUwODU1ZTdjYzU4ZTU5NmUyZWMwYTdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTExMTksMTQgKzExMTksMTQgQEAg
dm9pZCBXZWJQYWdlOjpjaGFuZ2VGb250QXR0cmlidXRlcyhXZWJDb3JlOjpGb250QXR0cmlidXRl
Q2hhbmdlcyYmIGNoYW5nZXMpCiB7CiAgICAgYXV0byYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIGlmIChmcmFtZS5zZWxlY3Rpb24o
KS5zZWxlY3Rpb24oKS5pc0NvbnRlbnRFZGl0YWJsZSgpKQotICAgICAgICBmcmFtZS5lZGl0b3Io
KS5hcHBseVN0eWxlVG9TZWxlY3Rpb24oY2hhbmdlcy5jcmVhdGVFZGl0aW5nU3R5bGUoKSwgRWRp
dEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIEVkaXRvcjo6Q29sb3JGaWx0ZXJNb2RlOjpJbnZlcnRD
b2xvcik7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLmFwcGx5U3R5bGVUb1NlbGVjdGlvbihjaGFu
Z2VzLmNyZWF0ZUVkaXRpbmdTdHlsZSgpLCBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzLCBF
ZGl0b3I6OkNvbG9yRmlsdGVyTW9kZTo6SW52ZXJ0Q29sb3IpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmNoYW5nZUZvbnQoV2ViQ29yZTo6Rm9udENoYW5nZXMmJiBjaGFuZ2VzKQogewogICAgIGF1dG8m
IGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsK
ICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNDb250ZW50RWRpdGFibGUo
KSkKLSAgICAgICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlTdHlsZVRvU2VsZWN0aW9uKGNoYW5nZXMu
Y3JlYXRlRWRpdGluZ1N0eWxlKCksIEVkaXRBY3Rpb25TZXRGb250LCBFZGl0b3I6OkNvbG9yRmls
dGVyTW9kZTo6SW52ZXJ0Q29sb3IpOworICAgICAgICBmcmFtZS5lZGl0b3IoKS5hcHBseVN0eWxl
VG9TZWxlY3Rpb24oY2hhbmdlcy5jcmVhdGVFZGl0aW5nU3R5bGUoKSwgRWRpdEFjdGlvbjo6U2V0
Rm9udCwgRWRpdG9yOjpDb2xvckZpbHRlck1vZGU6OkludmVydENvbG9yKTsKIH0KIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0KaW5kZXggZTI4MTEyZGVlNDEwMDQyY2VkYzVjNjAyNmJlMjE5ODIzZjMxZmViNy4u
NTA3OWVjMzgwNTgwNmEwMmJjMzJkNDNjY2ZlZWU5YTE5ZGI5YWI3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQpAQCAtNjAyLDY2ICs2MDIsNjYgQEAgc3RhdGljIE5TU3RyaW5nKiB1bmRvTmFtZUZvckVk
aXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBXZWJFZGl0Q29tbWFuZFByb3h5IGNsYXNz
OyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdzIGluc3RlYWQgb2YgaGF2aW5nIHR3
byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7Ci0gICAgICAgIGNhc2UgRWRpdEFj
dGlvblVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25JbnNl
cnQ6IHJldHVybiBuaWw7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydFJlcGxhY2VtZW50
OiByZXR1cm4gbmlsOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnRGcm9tRHJvcDogcmV0
dXJuIG5pbDsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblNldEJhY2tn
cm91bmRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNrZ3JvdW5k
IENvbG9yIiwgIlNldCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nOiBy
ZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9m
ZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAg
ICAgIGNhc2UgRWRpdEFjdGlvblRpZ2h0ZW5LZXJuaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9J
TlRFUk5BTCgiVGlnaHRlbiBLZXJuaW5nIiwgIlRpZ2h0ZW4gS2VybmluZyAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25Mb29z
ZW5LZXJuaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiTG9vc2VuIEtlcm5pbmci
LCAiTG9vc2VuIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVXNlU3RhbmRhcmRLZXJuaW5nOiByZXR1cm4gVUlf
U1RSSU5HX0tFWV9JTlRFUk5BTCgiVXNlIFN0YW5kYXJkIEtlcm5pbmciLCAiVXNlIFN0YW5kYXJk
IEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAg
ICAgY2FzZSBFZGl0QWN0aW9uVHVybk9mZkxpZ2F0dXJlczogcmV0dXJuIFVJX1NUUklOR19LRVlf
SU5URVJOQUwoIlR1cm4gT2ZmIExpZ2F0dXJlcyIsICJUdXJuIE9mZiBMaWdhdHVyZXMgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVXNlU3RhbmRhcmRMaWdhdHVyZXM6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJV
c2UgU3RhbmRhcmQgTGlnYXR1cmVzIiwgIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9u
VXNlQWxsTGlnYXR1cmVzOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVXNlIEFsbCBM
aWdhdHVyZXMiLCAiVXNlIEFsbCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uUmFpc2VCYXNlbGluZTogcmV0
dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlJhaXNlIEJhc2VsaW5lIiwgIlJhaXNlIEJhc2Vs
aW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNh
c2UgRWRpdEFjdGlvbkxvd2VyQmFzZWxpbmU6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFM
KCJMb3dlciBCYXNlbGluZSIsICJMb3dlciBCYXNlbGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRUcmFkaXRpb25h
bENoYXJhY3RlclNoYXBlOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IFRyYWRp
dGlvbmFsIENoYXJhY3RlciBTaGFwZSIsICJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFjdGVyIFNoYXBl
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2Ug
RWRpdEFjdGlvblNldEZvbnQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJTZXQgRm9u
dCIsICJTZXQgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgICAgICBjYXNlIEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzOiByZXR1cm4gVUlfU1RSSU5H
X0tFWV9JTlRFUk5BTCgiQ2hhbmdlIEF0dHJpYnV0ZXMiLCAiQ2hhbmdlIEF0dHJpYnV0ZXMgKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0
QWN0aW9uQWxpZ25MZWZ0OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiQWxpZ24gTGVm
dCIsICJBbGlnbiBMZWZ0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkFsaWduUmlnaHQ6IHJldHVybiBVSV9TVFJJTkdfS0VZ
X0lOVEVSTkFMKCJBbGlnbiBSaWdodCIsICJBbGlnbiBSaWdodCAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25DZW50ZXI6IHJl
dHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDZW50ZXIiLCAiQ2VudGVyIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkp1
c3RpZnk6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJKdXN0aWZ5IiwgIkp1c3RpZnkg
KFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJO
QUwoIlNldCBXcml0aW5nIERpcmVjdGlvbiIsICJTZXQgV3JpdGluZyBEaXJlY3Rpb24gKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uU3Vic2NyaXB0OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU3Vic2NyaXB0Iiwg
IlN1YnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25TdXBlcnNjcmlwdDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5U
RVJOQUwoIlN1cGVyc2NyaXB0IiwgIlN1cGVyc2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblVuZGVybGluZTogcmV0
dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlVuZGVybGluZSIsICJVbmRlcmxpbmUgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0
aW9uT3V0bGluZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIk91dGxpbmUiLCAiT3V0
bGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBj
YXNlIEVkaXRBY3Rpb25VbnNjcmlwdDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlVu
c2NyaXB0IiwgIlVuc2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZUJ5RHJhZzogcmV0dXJuIFVJX1NUUklO
R19LRVlfSU5URVJOQUwoIkRyYWciLCAiRHJhZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJDdXQiLCAiQ3V0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOiByZXR1cm4gVUlfU1RS
SU5HX0tFWV9JTlRFUk5BTCgiUGFzdGUiLCAiUGFzdGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGVGb250OiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiUGFzdGUgRm9udCIsICJQYXN0ZSBGb250IChVbmRv
IGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFj
dGlvblBhc3RlUnVsZXI6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJQYXN0ZSBSdWxl
ciIsICJQYXN0ZSBSdWxlciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVTZWxlY3Rpb246Ci0gICAgICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUJhY2t3YXJkOgotICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25UeXBpbmdEZWxldGVGb3J3YXJkOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdE
ZWxldGVXb3JkQmFja3dhcmQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZVdv
cmRGb3J3YXJkOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVMaW5lQmFja3dh
cmQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkOgotICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVQZW5kaW5nQ29tcG9zaXRpb246Ci0gICAg
ICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUZpbmFsQ29tcG9zaXRpb246Ci0gICAgICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydFRleHQ6Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlv
blR5cGluZ0luc2VydExpbmVCcmVhazoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5z
ZXJ0UGFyYWdyYXBoOgotICAgICAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdJbnNlcnRQZW5kaW5n
Q29tcG9zaXRpb246Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydEZpbmFsQ29t
cG9zaXRpb246Ci0gICAgICAgICAgICByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHlw
aW5nIiwgIlR5cGluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgICAgICBjYXNlIEVkaXRBY3Rpb25DcmVhdGVMaW5rOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9J
TlRFUk5BTCgiQ3JlYXRlIExpbmsiLCAiQ3JlYXRlIExpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5saW5rOiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVW5saW5rIiwgIlVubGluayAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25JbnNl
cnRPcmRlcmVkTGlzdDoKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0VW5vcmRlcmVkTGlz
dDoKLSAgICAgICAgICAgIHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJJbnNlcnQgTGlz
dCIsICJJbnNlcnQgTGlzdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25Gb3JtYXRCbG9jazogcmV0dXJuIFVJX1NUUklOR19L
RVlfSU5URVJOQUwoIkZvcm1hdHRpbmciLCAiRm9ybWF0IEJsb2NrIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNhc2UgRWRpdEFjdGlvbkluZGVudDog
cmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkluZGVudCIsICJJbmRlbnQgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICAgICAgY2FzZSBFZGl0QWN0aW9u
T3V0ZGVudDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIk91dGRlbnQiLCAiT3V0ZGVu
dCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgICAgICBjYXNl
IEVkaXRBY3Rpb25Cb2xkOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiQm9sZCIsICJC
b2xkIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgICAgIGNh
c2UgRWRpdEFjdGlvbkl0YWxpY3M6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJJdGFs
aWNzIiwgIkl0YWxpY3MgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
LSAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRF
Uk5BTCgiRGVsZXRlIiwgIkRlbGV0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOwotICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJEaWN0YXRpb24iLCAiRGljdGF0aW9uIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVbnNwZWNpZmll
ZDogcmV0dXJuIG5pbDsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydDogcmV0dXJuIG5pbDsK
KyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2VydFJlcGxhY2VtZW50OiByZXR1cm4gbmlsOworICAg
IGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0RnJvbURyb3A6IHJldHVybiBuaWw7CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpTZXRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBD
b2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldEJhY2tncm91bmRDb2xvcjogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNrZ3JvdW5kIENvbG9yIiwgIlNldCBCYWNrZ3JvdW5k
IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpUdXJuT2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJO
QUwoIlR1cm4gT2ZmIEtlcm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VGlnaHRlbktl
cm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUaWdodGVuIEtlcm5pbmciLCAi
VGlnaHRlbiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpMb29zZW5LZXJuaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tF
WV9JTlRFUk5BTCgiTG9vc2VuIEtlcm5pbmciLCAiTG9vc2VuIEtlcm5pbmcgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVzZVN0
YW5kYXJkS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlVzZSBTdGFuZGFy
ZCBLZXJuaW5nIiwgIlVzZSBTdGFuZGFyZCBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUdXJuT2ZmTGlnYXR1cmVz
OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgTGlnYXR1cmVzIiwgIlR1
cm4gT2ZmIExpZ2F0dXJlcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OworICAgIGNhc2UgRWRpdEFjdGlvbjo6VXNlU3RhbmRhcmRMaWdhdHVyZXM6IHJldHVybiBVSV9T
VFJJTkdfS0VZX0lOVEVSTkFMKCJVc2UgU3RhbmRhcmQgTGlnYXR1cmVzIiwgIlVzZSBTdGFuZGFy
ZCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OlVzZUFsbExpZ2F0dXJlczogcmV0dXJuIFVJX1NUUklOR19LRVlf
SU5URVJOQUwoIlVzZSBBbGwgTGlnYXR1cmVzIiwgIlVzZSBBbGwgTGlnYXR1cmVzIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpS
YWlzZUJhc2VsaW5lOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiUmFpc2UgQmFzZWxp
bmUiLCAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okxvd2VyQmFzZWxpbmU6IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJMb3dlciBCYXNlbGluZSIsICJMb3dlciBCYXNlbGluZSAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
U2V0VHJhZGl0aW9uYWxDaGFyYWN0ZXJTaGFwZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJO
QUwoIlNldCBUcmFkaXRpb25hbCBDaGFyYWN0ZXIgU2hhcGUiLCAiU2V0IFRyYWRpdGlvbmFsIENo
YXJhY3RlciBTaGFwZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6U2V0Rm9udDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJO
QUwoIlNldCBGb250IiwgIlNldCBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlv
biBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzOiByZXR1cm4g
VUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiQ2hhbmdlIEF0dHJpYnV0ZXMiLCAiQ2hhbmdlIEF0dHJp
YnV0ZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNl
IEVkaXRBY3Rpb246OkFsaWduTGVmdDogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkFs
aWduIExlZnQiLCAiQWxpZ24gTGVmdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6QWxpZ25SaWdodDogcmV0dXJuIFVJX1NUUklO
R19LRVlfSU5URVJOQUwoIkFsaWduIFJpZ2h0IiwgIkFsaWduIFJpZ2h0IChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDZW50ZXI6
IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDZW50ZXIiLCAiQ2VudGVyIChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpK
dXN0aWZ5OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiSnVzdGlmeSIsICJKdXN0aWZ5
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5B
TCgiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIiwgIlNldCBXcml0aW5nIERpcmVjdGlvbiAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
U3Vic2NyaXB0OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU3Vic2NyaXB0IiwgIlN1
YnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNh
c2UgRWRpdEFjdGlvbjo6U3VwZXJzY3JpcHQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFM
KCJTdXBlcnNjcmlwdCIsICJTdXBlcnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5kZXJsaW5lOiByZXR1cm4gVUlf
U1RSSU5HX0tFWV9JTlRFUk5BTCgiVW5kZXJsaW5lIiwgIlVuZGVybGluZSAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6T3V0bGlu
ZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIk91dGxpbmUiLCAiT3V0bGluZSAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlv
bjo6VW5zY3JpcHQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJVbnNjcmlwdCIsICJV
bnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNh
c2UgRWRpdEFjdGlvbjo6RGVsZXRlQnlEcmFnOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5B
TCgiRHJhZyIsICJEcmFnIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDdXQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFM
KCJDdXQiLCAiQ3V0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwo
IlBhc3RlIiwgIlBhc3RlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpQYXN0ZUZvbnQ6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lO
VEVSTkFMKCJQYXN0ZSBGb250IiwgIlBhc3RlIEZvbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlBhc3RlUnVsZXI6IHJldHVy
biBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJQYXN0ZSBSdWxlciIsICJQYXN0ZSBSdWxlciAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nRGVsZXRlU2VsZWN0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVs
ZXRlQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVGb3J3YXJkOgor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgorICAgIGNhc2Ug
RWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlV29yZEZvcndhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9u
OjpUeXBpbmdEZWxldGVMaW5lQmFja3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdE
ZWxldGVMaW5lRm9yd2FyZDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZVBlbmRp
bmdDb21wb3NpdGlvbjoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0RlbGV0ZUZpbmFsQ29t
cG9zaXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNlcnRUZXh0OgorICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0TGluZUJyZWFrOgorICAgIGNhc2UgRWRpdEFjdGlv
bjo6VHlwaW5nSW5zZXJ0UGFyYWdyYXBoOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5z
ZXJ0UGVuZGluZ0NvbXBvc2l0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nSW5zZXJ0
RmluYWxDb21wb3NpdGlvbjoKKyAgICAgICAgcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwo
IlR5cGluZyIsICJUeXBpbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkNyZWF0ZUxpbms6IHJldHVybiBVSV9TVFJJTkdfS0VZ
X0lOVEVSTkFMKCJDcmVhdGUgTGluayIsICJDcmVhdGUgTGluayAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5saW5rOiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVW5saW5rIiwgIlVubGluayAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0
T3JkZXJlZExpc3Q6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpJbnNlcnRVbm9yZGVyZWRMaXN0Ogor
ICAgICAgICByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiSW5zZXJ0IExpc3QiLCAiSW5z
ZXJ0IExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246OkZvcm1hdEJsb2NrOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5B
TCgiRm9ybWF0dGluZyIsICJGb3JtYXQgQmxvY2sgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkluZGVudDogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIkluZGVudCIsICJJbmRlbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Ok91dGRlbnQ6IHJldHVy
biBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJPdXRkZW50IiwgIk91dGRlbnQgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkJvbGQ6
IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJCb2xkIiwgIkJvbGQgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okl0YWxp
Y3M6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJJdGFsaWNzIiwgIkl0YWxpY3MgKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rp
b246OkRlbGV0ZTogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkRlbGV0ZSIsICJEZWxl
dGUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVk
aXRBY3Rpb246OkRpY3RhdGlvbjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkRpY3Rh
dGlvbiIsICJEaWN0YXRpb24gKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKICAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IGZiODU1MDA1YTE2ZjU1YTUyY2NmOTFlZGY0
MWFmNWYyN2M3YTBlMTIuLjE5MmUxODM1MTNjMGJlZDg3NGM0OTlmMDY1ZWNjM2EyNDNlYTMxZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpA
QCAtNTI5Nyw3ICs1Mjk3LDcgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50
S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogCiAgICAgLy8gUmVhZCBSVEYgd2l0aCBm
b250IGF0dHJpYnV0ZXMgZnJvbSB0aGUgcGFzdGVib2FyZC4KICAgICAvLyBNYXliZSBsYXRlciB3
ZSBzaG91bGQgYWRkIGEgcGFzdGVib2FyZCB0eXBlIHRoYXQgY29udGFpbnMgQ1NTIHRleHQgZm9y
ICJuYXRpdmUiIGNvcHkgYW5kIHBhc3RlIGZvbnQuCi0gICAgW3NlbGYgX2FwcGx5U3R5bGVUb1Nl
bGVjdGlvbjpbc2VsZiBfc3R5bGVGcm9tRm9udEF0dHJpYnV0ZXM6W3NlbGYgX2ZvbnRBdHRyaWJ1
dGVzRnJvbUZvbnRQYXN0ZWJvYXJkXV0gd2l0aFVuZG9BY3Rpb246RWRpdEFjdGlvblBhc3RlRm9u
dF07CisgICAgW3NlbGYgX2FwcGx5U3R5bGVUb1NlbGVjdGlvbjpbc2VsZiBfc3R5bGVGcm9tRm9u
dEF0dHJpYnV0ZXM6W3NlbGYgX2ZvbnRBdHRyaWJ1dGVzRnJvbUZvbnRQYXN0ZWJvYXJkXV0gd2l0
aFVuZG9BY3Rpb246RWRpdEFjdGlvbjo6UGFzdGVGb250XTsKIH0KIAogLSAodm9pZClwYXN0ZUFz
UmljaFRleHQ6KGlkKXNlbmRlcgpAQCAtNTMxMywxNCArNTMxMywxNCBAQCBzdGF0aWMgUmVmUHRy
PEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiB7
CiAgICAgQ09NTUFORF9QUk9MT0dVRQogCi0gICAgW3NlbGYgX2FwcGx5RWRpdGluZ1N0eWxlVG9T
ZWxlY3Rpb246Y29tcHV0ZWRGb250Q2hhbmdlcyhOU0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5h
Z2VyKS5jcmVhdGVFZGl0aW5nU3R5bGUoKSB3aXRoVW5kb0FjdGlvbjpFZGl0QWN0aW9uU2V0Rm9u
dF07CisgICAgW3NlbGYgX2FwcGx5RWRpdGluZ1N0eWxlVG9TZWxlY3Rpb246Y29tcHV0ZWRGb250
Q2hhbmdlcyhOU0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyKS5jcmVhdGVFZGl0aW5nU3R5
bGUoKSB3aXRoVW5kb0FjdGlvbjpFZGl0QWN0aW9uOjpTZXRGb250XTsKIH0KIAogLSAodm9pZClj
aGFuZ2VBdHRyaWJ1dGVzOihpZClzZW5kZXIKIHsKICAgICBDT01NQU5EX1BST0xPR1VFCiAKLSAg
ICBbc2VsZiBfYXBwbHlFZGl0aW5nU3R5bGVUb1NlbGVjdGlvbjpjb21wdXRlZEZvbnRBdHRyaWJ1
dGVDaGFuZ2VzKE5TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIsIHNlbmRlcikuY3JlYXRl
RWRpdGluZ1N0eWxlKCkgd2l0aFVuZG9BY3Rpb246RWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXNd
OworICAgIFtzZWxmIF9hcHBseUVkaXRpbmdTdHlsZVRvU2VsZWN0aW9uOmNvbXB1dGVkRm9udEF0
dHJpYnV0ZUNoYW5nZXMoTlNGb250TWFuYWdlci5zaGFyZWRGb250TWFuYWdlciwgc2VuZGVyKS5j
cmVhdGVFZGl0aW5nU3R5bGUoKSB3aXRoVW5kb0FjdGlvbjpFZGl0QWN0aW9uOjpDaGFuZ2VBdHRy
aWJ1dGVzXTsKIH0KIAogLSAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKV9zdHlsZUZyb21Db2xv
clBhbmVsV2l0aFNlbGVjdG9yOihTRUwpc2VsZWN0b3IKQEAgLTUzMzYsOCArNTMzNiw4IEBAIHN0
YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNv
cmVGcmFtZSkKIC0gKEVkaXRBY3Rpb24pX3VuZG9BY3Rpb25Gcm9tQ29sb3JQYW5lbFdpdGhTZWxl
Y3RvcjooU0VMKXNlbGVjdG9yCiB7CiAgICAgaWYgKHNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRC
YWNrZ3JvdW5kQ29sb3I6KSkKLSAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5k
Q29sb3I7ICAgIAotICAgIHJldHVybiBFZGl0QWN0aW9uU2V0Q29sb3I7CisgICAgICAgIHJldHVy
biBFZGl0QWN0aW9uOjpTZXRCYWNrZ3JvdW5kQ29sb3I7CisgICAgcmV0dXJuIEVkaXRBY3Rpb246
OlNldENvbG9yOwogfQogCiAtICh2b2lkKV9jaGFuZ2VDU1NDb2xvclVzaW5nU2VsZWN0b3I6KFNF
TClzZWxlY3RvciBpblJhbmdlOihET01SYW5nZSAqKXJhbmdlCkBAIC01MzgxLDggKzUzODEsNyBA
QCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1l
KiBjb3JlRnJhbWUpCiAgICAgLy8gQXBwS2l0IHdpbGwgaGF2ZSB0byBiZSByZXZpc2VkIHRvIGFs
bG93IHRoaXMgdG8gd29yayB3aXRoIGFueXRoaW5nIHRoYXQgaXNuJ3QgYW4gCiAgICAgLy8gTlNU
ZXh0Vmlldy4gSG93ZXZlciwgdGhpcyBtaWdodCBub3QgYmUgcmVxdWlyZWQgZm9yIFRpZ2VyLCBz
aW5jZSB0aGUgYmFja2dyb3VuZC1jb2xvciAKICAgICAvLyBjaGFuZ2luZyBib3ggaW4gdGhlIGZv
bnQgcGFuZWwgZG9lc24ndCB3b3JrIGluIE1haWwgKDM2NzQ0ODEpLCB0aG91Z2ggaXQgZG9lcyBp
biBUZXh0RWRpdC4KLSAgICBbc2VsZiBfYXBwbHlTdHlsZVRvU2VsZWN0aW9uOltzZWxmIF9zdHls
ZUZyb21Db2xvclBhbmVsV2l0aFNlbGVjdG9yOkBzZWxlY3RvcihzZXRDb2xvcjopXSAKLSAgICAg
ICAgICAgICAgICAgIHdpdGhVbmRvQWN0aW9uOkVkaXRBY3Rpb25TZXRDb2xvcl07CisgICAgW3Nl
bGYgX2FwcGx5U3R5bGVUb1NlbGVjdGlvbjpbc2VsZiBfc3R5bGVGcm9tQ29sb3JQYW5lbFdpdGhT
ZWxlY3RvcjpAc2VsZWN0b3Ioc2V0Q29sb3I6KV0gd2l0aFVuZG9BY3Rpb246RWRpdEFjdGlvbjo6
U2V0Q29sb3JdOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDA5ZDlhNjliZDU2ODg2M2QxYWI4NzEw
MTY1ODVjNTk3YTdkMzRhN2YuLmYyNGVhNzI3MDIzZDFiNDYwMjNiNDRmNDgxN2U4NjNlNTQ2Yzkw
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTgy
NTQsNyArODI1NCw3IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9t
SlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBqCiB7CiAgICAgLy8gV2UgZG9u
J3Qga25vdyBlbm91Z2ggYXQgdGhscyBsZXZlbCB0byBwYXNzIGluIGEgcmVsZXZhbnQgV2ViVW5k
b0FjdGlvbjsgd2UnZCBoYXZlIHRvCiAgICAgLy8gY2hhbmdlIHRoZSBBUEkgdG8gYWxsb3cgdGhp
cy4KLSAgICBbW3NlbGYgX3NlbGVjdGVkT3JNYWluRnJhbWVdIF9zZXRUeXBpbmdTdHlsZTpzdHls
ZSB3aXRoVW5kb0FjdGlvbjpFZGl0QWN0aW9uVW5zcGVjaWZpZWRdOworICAgIFtbc2VsZiBfc2Vs
ZWN0ZWRPck1haW5GcmFtZV0gX3NldFR5cGluZ1N0eWxlOnN0eWxlIHdpdGhVbmRvQWN0aW9uOkVk
aXRBY3Rpb246OlVuc3BlY2lmaWVkXTsKIH0KIAogLSAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAq
KXR5cGluZ1N0eWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA1NmU3Y2YwYjQ4YzlhNTQyMmZm
MGFkZDY3NDY4ZmU4ZGVjNGRhYzBlLi5iNThkZTViMTM4YzJjZmM3MDU5MDU3N2EyODFhZjk1YjEw
MzA4MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTU3Myw1OSArNTczLDU5IEBAIFVMT05H
IFdlYkVkaXRvclVuZG9Db21tYW5kOjpSZWxlYXNlKCkKIHN0YXRpYyBTdHJpbmcgdW5kb05hbWVG
b3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKIHsKICAgICBzd2l0Y2ggKGVkaXRB
Y3Rpb24pIHsKLSAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKLSAgICBjYXNlIEVkaXRB
Y3Rpb25JbnNlcnRSZXBsYWNlbWVudDoKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVuc3BlY2lmaWVk
OgorICAgIGNhc2UgRWRpdEFjdGlvbjo6SW5zZXJ0UmVwbGFjZW1lbnQ6CiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25TZXRDb2xvcjogcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9y
OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBCYWNrZ3JvdW5kIENvbG9yIiwgIlNldCBC
YWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHVybk9mZktlcm5pbmc6IHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiVHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uVGlnaHRlbktl
cm5pbmc6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVGlnaHRlbiBLZXJuaW5nIiwgIlRpZ2h0
ZW4gS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
IGNhc2UgRWRpdEFjdGlvbkxvb3Nlbktlcm5pbmc6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgi
TG9vc2VuIEtlcm5pbmciLCAiTG9vc2VuIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Vc2VTdGFuZGFyZEtlcm5pbmc6
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIFN0YW5kYXJkIEtlcm5pbmciLCAiVXNlIFN0
YW5kYXJkIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
LSAgICBjYXNlIEVkaXRBY3Rpb25UdXJuT2ZmTGlnYXR1cmVzOiByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIlR1cm4gT2ZmIExpZ2F0dXJlcyIsICJUdXJuIE9mZiBMaWdhdHVyZXMgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Vc2VT
dGFuZGFyZExpZ2F0dXJlczogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVc2UgU3RhbmRhcmQg
TGlnYXR1cmVzIiwgIlVzZSBTdGFuZGFyZCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Vc2VBbGxMaWdhdHVyZXM6
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIEFsbCBMaWdhdHVyZXMiLCAiVXNlIEFsbCBM
aWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBj
YXNlIEVkaXRBY3Rpb25SYWlzZUJhc2VsaW5lOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlJh
aXNlIEJhc2VsaW5lIiwgIlJhaXNlIEJhc2VsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uTG93ZXJCYXNlbGluZTogcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJMb3dlciBCYXNlbGluZSIsICJMb3dlciBCYXNlbGluZSAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlv
blNldFRyYWRpdGlvbmFsQ2hhcmFjdGVyU2hhcGU6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgi
U2V0IFRyYWRpdGlvbmFsIENoYXJhY3RlciBTaGFwZSIsICJTZXQgVHJhZGl0aW9uYWwgQ2hhcmFj
dGVyIFNoYXBlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uU2V0Rm9udDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgRm9u
dCIsICJTZXQgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXM6IHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiQ2hhbmdlIEF0dHJpYnV0ZXMiLCAiQ2hhbmdlIEF0dHJpYnV0ZXMgKFVuZG8gYWN0aW9u
IG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25BbGlnbkxl
ZnQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQWxpZ24gTGVmdCIsICJBbGlnbiBMZWZ0IChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0
aW9uQWxpZ25SaWdodDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJBbGlnbiBSaWdodCIsICJB
bGlnbiBSaWdodCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAg
IGNhc2UgRWRpdEFjdGlvbkNlbnRlcjogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDZW50ZXIi
LCAiQ2VudGVyIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uSnVzdGlmeTogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJKdXN0aWZ5
IiwgIkp1c3RpZnkgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAg
ICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uOiByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIlNldCBXcml0aW5nIERpcmVjdGlvbiIsICJTZXQgV3JpdGluZyBEaXJlY3Rpb24gKFVu
ZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rp
b25TdWJzY3JpcHQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU3Vic2NyaXB0IiwgIlN1YnNj
cmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2Ug
RWRpdEFjdGlvblN1cGVyc2NyaXB0OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlN1cGVyc2Ny
aXB0IiwgIlN1cGVyc2NyaXB0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uQm9sZDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJC
b2xkIiwgIkJvbGQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAg
ICBjYXNlIEVkaXRBY3Rpb25JdGFsaWNzOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkl0YWxp
Y3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwot
ICAgIGNhc2UgRWRpdEFjdGlvblVuZGVybGluZTogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJV
bmRlcmxpbmUiLCAiVW5kZXJsaW5lIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uT3V0bGluZTogcmV0dXJuIFdFQl9VSV9TVFJJTkdf
S0VZKCJPdXRsaW5lIiwgIk91dGxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25VbnNjcmlwdDogcmV0dXJuIFdFQl9VSV9TVFJJ
TkdfS0VZKCJVbnNjcmlwdCIsICJVbnNjcmlwdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZUJ5RHJhZzogcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJEcmFnIiwgIkRyYWcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6IHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiQ3V0IiwgIkN1dCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IlBhc3RlIiwgIlBhc3RlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
Ci0gICAgY2FzZSBFZGl0QWN0aW9uUGFzdGVGb250OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IlBhc3RlIEZvbnQiLCAiUGFzdGUgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlUnVsZXI6IHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiUGFzdGUgUnVsZXIiLCAiUGFzdGUgUnVsZXIgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmdEZWxldGVT
ZWxlY3Rpb246Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlQmFja3dhcmQ6Ci0gICAg
Y2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlRm9yd2FyZDoKLSAgICBjYXNlIEVkaXRBY3Rpb25U
eXBpbmdEZWxldGVXb3JkQmFja3dhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRl
V29yZEZvcndhcmQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nRGVsZXRlTGluZUJhY2t3YXJk
OgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0RlbGV0ZUxpbmVGb3J3YXJkOgotICAgIGNhc2Ug
RWRpdEFjdGlvblR5cGluZ0luc2VydFRleHQ6Ci0gICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nSW5z
ZXJ0TGluZUJyZWFrOgotICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZ0luc2VydFBhcmFncmFwaDoK
KyAgICBjYXNlIEVkaXRBY3Rpb246OlNldENvbG9yOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9u
IG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldEJhY2tncm91bmRDb2xvcjogcmV0dXJu
IFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFja2dyb3Vu
ZCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNh
c2UgRWRpdEFjdGlvbjo6VHVybk9mZktlcm5pbmc6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgi
VHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUaWdodGVuS2Vybmlu
ZzogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUaWdodGVuIEtlcm5pbmciLCAiVGlnaHRlbiBL
ZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpMb29zZW5LZXJuaW5nOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkxv
b3NlbiBLZXJuaW5nIiwgIkxvb3NlbiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVc2VTdGFuZGFyZEtlcm5pbmc6
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIFN0YW5kYXJkIEtlcm5pbmciLCAiVXNlIFN0
YW5kYXJkIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
KyAgICBjYXNlIEVkaXRBY3Rpb246OlR1cm5PZmZMaWdhdHVyZXM6IHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiVHVybiBPZmYgTGlnYXR1cmVzIiwgIlR1cm4gT2ZmIExpZ2F0dXJlcyAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
VXNlU3RhbmRhcmRMaWdhdHVyZXM6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIFN0YW5k
YXJkIExpZ2F0dXJlcyIsICJVc2UgU3RhbmRhcmQgTGlnYXR1cmVzIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpVc2VBbGxMaWdh
dHVyZXM6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVXNlIEFsbCBMaWdhdHVyZXMiLCAiVXNl
IEFsbCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
KyAgICBjYXNlIEVkaXRBY3Rpb246OlJhaXNlQmFzZWxpbmU6IHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiUmFpc2UgQmFzZWxpbmUiLCAiUmFpc2UgQmFzZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246Okxvd2VyQmFzZWxp
bmU6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiTG93ZXIgQmFzZWxpbmUiLCAiTG93ZXIgQmFz
ZWxpbmUgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNl
IEVkaXRBY3Rpb246OlNldFRyYWRpdGlvbmFsQ2hhcmFjdGVyU2hhcGU6IHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiU2V0IFRyYWRpdGlvbmFsIENoYXJhY3RlciBTaGFwZSIsICJTZXQgVHJhZGl0
aW9uYWwgQ2hhcmFjdGVyIFNoYXBlIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBu
YW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpTZXRGb250OiByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIlNldCBGb250IiwgIlNldCBGb250IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFj
dGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDaGFuZ2VBdHRyaWJ1dGVzOiByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIkNoYW5nZSBBdHRyaWJ1dGVzIiwgIkNoYW5nZSBBdHRyaWJ1
dGVzIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBF
ZGl0QWN0aW9uOjpBbGlnbkxlZnQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQWxpZ24gTGVm
dCIsICJBbGlnbiBMZWZ0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CisgICAgY2FzZSBFZGl0QWN0aW9uOjpBbGlnblJpZ2h0OiByZXR1cm4gV0VCX1VJX1NUUklOR19L
RVkoIkFsaWduIFJpZ2h0IiwgIkFsaWduIFJpZ2h0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDZW50ZXI6IHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiQ2VudGVyIiwgIkNlbnRlciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SnVzdGlmeTogcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJKdXN0aWZ5IiwgIkp1c3RpZnkgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJl
Y3Rpb246IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IFdyaXRpbmcgRGlyZWN0aW9uIiwg
IlNldCBXcml0aW5nIERpcmVjdGlvbiAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6U3Vic2NyaXB0OiByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlN1YnNjcmlwdCIsICJTdWJzY3JpcHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlN1cGVyc2NyaXB0OiByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIlN1cGVyc2NyaXB0IiwgIlN1cGVyc2NyaXB0IChVbmRvIGFj
dGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpC
b2xkOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkJvbGQiLCAiQm9sZCAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6SXRhbGlj
czogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJJdGFsaWNzIiwgIkl0YWxpY3MgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OlVu
ZGVybGluZTogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5l
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpPdXRsaW5lOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIk91dGxpbmUiLCAiT3V0
bGluZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6VW5zY3JpcHQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVW5zY3JpcHQi
LCAiVW5zY3JpcHQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OkRlbGV0ZUJ5RHJhZzogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJEcmFnIiwgIkRyYWcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
KyAgICBjYXNlIEVkaXRBY3Rpb246OkN1dDogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDdXQi
LCAiQ3V0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpQYXN0ZTogcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQYXN0ZSIsICJQ
YXN0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6UGFzdGVGb250OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlBhc3RlIEZv
bnQiLCAiUGFzdGUgRm9udCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIp
OworICAgIGNhc2UgRWRpdEFjdGlvbjo6UGFzdGVSdWxlcjogcmV0dXJuIFdFQl9VSV9TVFJJTkdf
S0VZKCJQYXN0ZSBSdWxlciIsICJQYXN0ZSBSdWxlciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlU2VsZWN0
aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVsZXRlQmFja3dhcmQ6CisgICAgY2Fz
ZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVGb3J3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6
VHlwaW5nRGVsZXRlV29yZEJhY2t3YXJkOgorICAgIGNhc2UgRWRpdEFjdGlvbjo6VHlwaW5nRGVs
ZXRlV29yZEZvcndhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lQmFj
a3dhcmQ6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdEZWxldGVMaW5lRm9yd2FyZDoKKyAg
ICBjYXNlIEVkaXRBY3Rpb246OlR5cGluZ0luc2VydFRleHQ6CisgICAgY2FzZSBFZGl0QWN0aW9u
OjpUeXBpbmdJbnNlcnRMaW5lQnJlYWs6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpUeXBpbmdJbnNl
cnRQYXJhZ3JhcGg6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVHlwaW5nIiwg
IlR5cGluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwotICAgIGNh
c2UgRWRpdEFjdGlvbkNyZWF0ZUxpbms6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQ3JlYXRl
IExpbmsiLCAiQ3JlYXRlIExpbmsgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25Vbmxpbms6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tF
WSgiVW5saW5rIiwgIlVubGluayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFt
ZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydFVub3JkZXJlZExpc3Q6Ci0gICAgY2FzZSBF
ZGl0QWN0aW9uSW5zZXJ0T3JkZXJlZExpc3Q6CisgICAgY2FzZSBFZGl0QWN0aW9uOjpDcmVhdGVM
aW5rOiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNyZWF0ZSBMaW5rIiwgIkNyZWF0ZSBMaW5r
IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0
QWN0aW9uOjpVbmxpbms6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVW5saW5rIiwgIlVubGlu
ayAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRp
dEFjdGlvbjo6SW5zZXJ0VW5vcmRlcmVkTGlzdDoKKyAgICBjYXNlIEVkaXRBY3Rpb246Okluc2Vy
dE9yZGVyZWRMaXN0OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkluc2VydCBM
aXN0IiwgIkluc2VydCBMaXN0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1l
Iik7Ci0gICAgY2FzZSBFZGl0QWN0aW9uRm9ybWF0QmxvY2s6IHJldHVybiBXRUJfVUlfU1RSSU5H
X0tFWSgiRm9ybWF0dGluZyIsICJGb3JtYXQgQmxvY2sgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKLSAgICBjYXNlIEVkaXRBY3Rpb25JbmRlbnQ6IHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiSW5kZW50IiwgIkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOwotICAgIGNhc2UgRWRpdEFjdGlvbk91dGRlbnQ6IHJldHVybiBXRUJf
VUlfU1RSSU5HX0tFWSgiT3V0ZGVudCIsICJPdXRkZW50IChVbmRvIGFjdGlvbiBuYW1lKSIsICJV
bmRvIGFjdGlvbiBuYW1lIik7CisgICAgY2FzZSBFZGl0QWN0aW9uOjpGb3JtYXRCbG9jazogcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJGb3JtYXR0aW5nIiwgIkZvcm1hdCBCbG9jayAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
SW5kZW50OiByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkluZGVudCIsICJJbmRlbnQgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246
Ok91dGRlbnQ6IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiT3V0ZGVudCIsICJPdXRkZW50IChV
bmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgfQogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>