<?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>174615</bug_id>
          
          <creation_ts>2017-07-18 00:31:04 -0700</creation_ts>
          <short_desc>WebDriver: implement screen capture commands</short_desc>
          <delta_ts>2017-08-28 06:56:01 -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>WebKit Misc.</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>
          
          <blocked>166679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1329920</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-18 00:31:04 -0700</bug_when>
    <thetext>https://www.w3.org/TR/webdriver/#screen-capture</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339518</commentid>
    <comment_count>1</comment_count>
      <attachid>318355</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-17 06:02:40 -0700</bug_when>
    <thetext>Created attachment 318355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339519</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-17 06:05:42 -0700</bug_when>
    <thetext>hmm, it doesn&apos;t apply because it depends on patch attached to bug #175665. Maybe I can merge both patches/bugs since I ended up rewriting the takeScreenshot method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340174</commentid>
    <comment_count>3</comment_count>
      <attachid>318355</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-18 12:19:42 -0700</bug_when>
    <thetext>Comment on attachment 318355
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=318355&amp;action=review

r=me

Please re-run through EWS.

&gt; Source/WebKit/ChangeLog:16
&gt; +        checkjed and passed to the web process.

Nit: checked

&gt; Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:691
&gt;      RefPtr&lt;WebImage&gt; image = page-&gt;scaledSnapshotWithOptions(snapshotRect, 1, SnapshotOptionsShareable);

We received a bug the other day that the scale factor should be inherited from the device. Right now, retina screenshots are at @1x and look blurry. But that&apos;s a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342810</commentid>
    <comment_count>4</comment_count>
      <attachid>319175</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-28 05:09:29 -0700</bug_when>
    <thetext>Created attachment 319175
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342817</commentid>
    <comment_count>5</comment_count>
      <attachid>319176</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-28 05:33:18 -0700</bug_when>
    <thetext>Created attachment 319176
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342819</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-28 05:36:13 -0700</bug_when>
    <thetext>Attachment 319176 did not pass style-queue:


ERROR: Source/WebDriver/Session.h:116:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1514:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1531:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:112:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:113:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:2000:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342824</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-28 06:55:24 -0700</bug_when>
    <thetext>Committed r221255: &lt;http://trac.webkit.org/changeset/221255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342825</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-28 06:56:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/34109485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318355</attachid>
            <date>2017-08-17 06:02:40 -0700</date>
            <delta_ts>2017-08-28 05:09:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-screenshots.diff</filename>
            <type>text/plain</type>
            <size>29809</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggYmNmYjA4NGRmNzUuLjljMmI3NGI3YjQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA4LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBzY3JlZW4g
Y2FwdHVyZSBjb21tYW5kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50IHRha2VTY3JlZW5zaG90IGFuZCB0YWtlRWxlbWVudFNjcmVlbnNo
b3QgY29tbWFuZHMuCisKKyAgICAgICAgMTkuIFNjcmVlbiBDYXB0dXJlLgorICAgICAgICBodHRw
czovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjc2NyZWVuLWNh
cHR1cmUKKworICAgICAgICAqIENvbW1hbmRSZXN1bHQuY3BwOgorICAgICAgICAoV2ViRHJpdmVy
OjpDb21tYW5kUmVzdWx0OjpDb21tYW5kUmVzdWx0KTogSGFuZGxlIFNjcmVlbnNob3RFcnJvciBw
cm90b2NvbCBlcnJvci4KKyAgICAgICAgKFdlYkRyaXZlcjo6Q29tbWFuZFJlc3VsdDo6aHR0cFN0
YXR1c0NvZGUgY29uc3QpOiBBZGQgVW5hYmxlVG9DYXB0dXJlU2NyZWVuLgorICAgICAgICAoV2Vi
RHJpdmVyOjpDb21tYW5kUmVzdWx0OjplcnJvclN0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAg
ICAqIENvbW1hbmRSZXN1bHQuaDoKKyAgICAgICAgKiBTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YkRyaXZlcjo6U2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QpOgorICAgICAgICAqIFNlc3Npb24uaDoK
KyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6dGFrZVNjcmVlbnNob3QpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJE
cml2ZXJTZXJ2aWNlOjp0YWtlRWxlbWVudFNjcmVlbnNob3QpOgorICAgICAgICAqIFdlYkRyaXZl
clNlcnZpY2UuaDoKKwogMjAxNy0wNy0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBmaXggcmV0dXJuIHZhbHVlIG9mIGNs
b3NlIHdpbmRvdyBjb21tYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRS
ZXN1bHQuY3BwIGIvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcAppbmRleCBhNTNi
YWM5Nzk2Ni4uNzhiYTNlZjI1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFu
ZFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcApAQCAt
MTA4LDYgKzEwOCw4IEBAIENvbW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQoUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiYmIHJlc3VsdCwgc3RkOjpvcHRpb25hbDxFcnJvCiAgICAgICAgICAgICBtX2Vy
cm9yQ29kZSA9IEVycm9yQ29kZTo6Tm9TdWNoQWxlcnQ7CiAgICAgICAgIGVsc2UgaWYgKGVycm9y
TmFtZSA9PSAiRWxlbWVudE5vdFNlbGVjdGFibGUiKQogICAgICAgICAgICAgbV9lcnJvckNvZGUg
PSBFcnJvckNvZGU6OkVsZW1lbnROb3RTZWxlY3RhYmxlOworICAgICAgICBlbHNlIGlmIChlcnJv
ck5hbWUgPT0gIlNjcmVlbnNob3RFcnJvciIpCisgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVy
cm9yQ29kZTo6VW5hYmxlVG9DYXB0dXJlU2NyZWVuOwogCiAgICAgICAgIGJyZWFrOwogICAgIH0K
QEAgLTE0OCw2ICsxNTAsNyBAQCB1bnNpZ25lZCBDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29k
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiA0MDg7CiAgICAgY2FzZSBFcnJvckNvZGU6OkphdmFz
Y3JpcHRFcnJvcjoKICAgICBjYXNlIEVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQ6CisgICAg
Y2FzZSBFcnJvckNvZGU6OlVuYWJsZVRvQ2FwdHVyZVNjcmVlbjoKICAgICBjYXNlIEVycm9yQ29k
ZTo6VW5leHBlY3RlZEFsZXJ0T3BlbjoKICAgICBjYXNlIEVycm9yQ29kZTo6VW5rbm93bkVycm9y
OgogICAgIGNhc2UgRXJyb3JDb2RlOjpVbnN1cHBvcnRlZE9wZXJhdGlvbjoKQEAgLTE5NSw2ICsx
OTgsOCBAQCBTdHJpbmcgQ29tbWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcoKSBjb25zdAogICAgICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpOwogICAgIGNh
c2UgRXJyb3JDb2RlOjpUaW1lb3V0OgogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ0aW1l
b3V0Iik7CisgICAgY2FzZSBFcnJvckNvZGU6OlVuYWJsZVRvQ2FwdHVyZVNjcmVlbjoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5hYmxlIHRvIGNhcHR1cmUgc2NyZWVuIik7CiAgICAg
Y2FzZSBFcnJvckNvZGU6OlVuZXhwZWN0ZWRBbGVydE9wZW46CiAgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIpOwogICAgIGNhc2UgRXJyb3JDb2RlOjpV
bmtub3duQ29tbWFuZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3Vs
dC5oIGIvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmgKaW5kZXggN2Y3ODllNWEzOWQu
LmQ5YjBhZGIzYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQu
aAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaApAQCAtNTYsNiArNTYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFNlc3Npb25Ob3RDcmVhdGVkLAogICAgICAgICBTdGFsZUVsZW1l
bnRSZWZlcmVuY2UsCiAgICAgICAgIFRpbWVvdXQsCisgICAgICAgIFVuYWJsZVRvQ2FwdHVyZVNj
cmVlbiwKICAgICAgICAgVW5leHBlY3RlZEFsZXJ0T3BlbiwKICAgICAgICAgVW5rbm93bkNvbW1h
bmQsCiAgICAgICAgIFVua25vd25FcnJvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IDE4YmU4MDA5
MGM4Li43YjVjYmJkNTdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xNzkwLDQgKzE3OTAsMzkg
QEAgdm9pZCBTZXNzaW9uOjpzZW5kQWxlcnRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4KICAgICB9KTsKIH0KIAordm9pZCBTZXNzaW9uOjp0
YWtlU2NyZWVuc2hvdChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZWxlbWVudElELCBzdGQ6Om9wdGlv
bmFsPGJvb2w+IHNjcm9sbEludG9WaWV3LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV90b3BsZXZlbEJyb3dzaW5nQ29u
dGV4dCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6Tm9TdWNoV2luZG93KSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBoYW5kbGVVc2VyUHJvbXB0cyhbdGhpcywgZWxlbWVudElELCBzY3JvbGxJ
bnRvVmlldywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Q29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNF
cnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAg
ICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJoYW5kbGUiKSwgbV90b3BsZXZl
bEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICAgICAgaWYgKG1fY3VycmVudEJyb3dzaW5n
Q29udGV4dCkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwo
ImZyYW1lSGFuZGxlIiksIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICAg
ICAgaWYgKGVsZW1lbnRJRCkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJ
SUxpdGVyYWwoIm5vZGVIYW5kbGUiKSwgZWxlbWVudElELnZhbHVlKCkpOworICAgICAgICBpZiAo
c2Nyb2xsSW50b1ZpZXcudmFsdWVfb3IoZmFsc2UpKQorICAgICAgICAgICAgcGFyYW1ldGVycy0+
c2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNjcm9sbEludG9WaWV3SWZOZWVkZWQiKSwgdHJ1ZSk7
CisgICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJ0YWtl
U2NyZWVuc2hvdCIpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUg
eworICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNl
T2JqZWN0KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBkYXRhOworICAg
ICAgICAgICAgaWYgKCFyZXNwb25zZS5yZXNwb25zZU9iamVjdC0+Z2V0U3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiZGF0YSIpLCBkYXRhKSkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3duRXJy
b3IpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKEluc3BlY3RvclZhbHVl
OjpjcmVhdGUoZGF0YSkpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkRyaXZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmggYi9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaAppbmRleCA4YjE4MDYxNGIyZC4uZTllYzg4NzAxMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbi5oCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFjY2Vw
dEFsZXJ0KEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZ2V0
QWxlcnRUZXh0KEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQg
c2VuZEFsZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0
JiYpPiYmKTsKKyAgICB2b2lkIHRha2VTY3JlZW5zaG90KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBl
bGVtZW50SUQsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc2Nyb2xsSW50b1ZpZXcsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogCiBwcml2YXRlOgogICAgIFNlc3Npb24oc3RkOjp1
bmlxdWVfcHRyPFNlc3Npb25Ib3N0PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIv
V2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2Uu
Y3BwCmluZGV4IDA0ZjhlM2U0NmY0Li5iOWZhYTI0MzgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRy
aXZlclNlcnZpY2UuY3BwCkBAIC0xNTIsNiArMTUyLDEwIEBAIGNvbnN0IFdlYkRyaXZlclNlcnZp
Y2U6OkNvbW1hbmQgV2ViRHJpdmVyU2VydmljZTo6c19jb21tYW5kc1tdID0gewogICAgIHsgSFRU
UE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9hbGVydC90ZXh0IiwgJldlYkRyaXZl
clNlcnZpY2U6OmdldEFsZXJ0VGV4dCB9LAogICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNz
aW9uLyRzZXNzaW9uSWQvYWxlcnQvdGV4dCIsICZXZWJEcml2ZXJTZXJ2aWNlOjpzZW5kQWxlcnRU
ZXh0IH0sCiAKKyAgICB7IEhUVFBNZXRob2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvc2Ny
ZWVuc2hvdCIsICZXZWJEcml2ZXJTZXJ2aWNlOjp0YWtlU2NyZWVuc2hvdCB9LAorICAgIHsgSFRU
UE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRlbGVtZW50SWQvc2Ny
ZWVuc2hvdCIsICZXZWJEcml2ZXJTZXJ2aWNlOjp0YWtlRWxlbWVudFNjcmVlbnNob3QgfSwKKwor
CiAgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGVs
ZW1lbnRJZC9kaXNwbGF5ZWQiLCAmV2ViRHJpdmVyU2VydmljZTo6aXNFbGVtZW50RGlzcGxheWVk
IH0sCiB9OwogCkBAIC0xMzQ4LDQgKzEzNTIsNDUgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpz
ZW5kQWxlcnRUZXh0KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3QK
ICAgICB9KTsKIH0KIAordm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjp0YWtlU2NyZWVuc2hvdChSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRS
ZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgLy8gwqcxOS4xIFRha2UgU2Ny
ZWVuc2hvdC4KKyAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZl
ci1zcGVjLmh0bWwjdGFrZS1zY3JlZW5zaG90CisgICAgYXV0byBzZXNzaW9uID0gZmluZFNlc3Np
b25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXNzaW9uLT53YWl0Rm9y
TmF2aWdhdGlvblRvQ29tcGxldGUoW3Nlc3Npb24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBzZXNzaW9uLT50YWtlU2NyZWVuc2hvdChzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9w
dCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnRha2VFbGVtZW50U2NyZWVuc2hvdChSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgLy8gwqcxOS4yIFRha2UgRWxlbWVudCBTY3JlZW5zaG90Lgor
ICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRt
bCN0YWtlLWVsZW1lbnQtc2NyZWVuc2hvdAorICAgIGF1dG8gc2Vzc2lvbiA9IGZpbmRTZXNzaW9u
T3JDb21wbGV0ZVdpdGhFcnJvcigqcGFyYW1ldGVycywgY29tcGxldGlvbkhhbmRsZXIpOworICAg
IGlmICghc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBlbGVtZW50SUQgPSBm
aW5kRWxlbWVudE9yQ29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5k
bGVyKTsKKyAgICBpZiAoIWVsZW1lbnRJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBz
Y3JvbGxJbnRvVmlldyA9IHRydWU7CisgICAgcGFyYW1ldGVycy0+Z2V0Qm9vbGVhbihBU0NJSUxp
dGVyYWwoInNjcm9sbCIpLCBzY3JvbGxJbnRvVmlldyk7CisKKyAgICBzZXNzaW9uLT53YWl0Rm9y
TmF2aWdhdGlvblRvQ29tcGxldGUoW3Nlc3Npb24sIGVsZW1lbnRJRCwgc2Nyb2xsSW50b1ZpZXcs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRS
ZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkg
eworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzZXNzaW9uLT50YWtlU2NyZWVuc2hv
dChlbGVtZW50SUQudmFsdWUoKSwgc2Nyb2xsSW50b1ZpZXcsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViRHJpdmVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaCBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5oCmluZGV4IDVjNzc1ZWZlNzAwLi43MmYxMWI2MWY5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKKysrIGIvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKQEAgLTEwNCw2ICsxMDQsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgYWNjZXB0QWxlcnQoUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0
PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIGdldEFs
ZXJ0VGV4dChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgc2VuZEFsZXJ0VGV4dChSZWZQdHI8
SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYpOworICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoUmVmUHRyPEluc3BlY3Rvcjo6SW5z
cGVjdG9yT2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKKyAg
ICB2b2lkIHRha2VFbGVtZW50U2NyZWVuc2hvdChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JP
YmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogCiAgICAgc3Rh
dGljIENhcGFiaWxpdGllcyBwbGF0Zm9ybUNhcGFiaWxpdGllcygpOwogICAgIFJlZlB0cjxJbnNw
ZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gcHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3Rvck9iamVjdCYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+Jikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGRjNDIyYzc2MjRiLi5jYTJhMGRkMjA0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxNy0wOC0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgc2NyZWVuIGNhcHR1
cmUgY29tbWFuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NDYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4dGVuZCB0YWtlU2NyZWVuc2hvdCBjb21tYW5kIHRvIG9wdGlvbmFsbHkgdGFrZSBhIHNj
cmVlbnNob3Qgb2YgYW4gZWxlbWVudC4gV2hlbiBubyBlbGVtZW50IGlzIHByb3ZpZGVkLCB0aGUK
KyAgICAgICAgc2NyZWVuc2hvdCBpcyB0YWtlbiBmcm9tIHRoZSBwYWdlIHZpc2libGUgYXJlYS4K
KworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBBZGQgV2ViQXV0b21hdGlvblNlc3Npb25D
YWlyby5jcHAgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbjogQWRk
IFNjcmVlbnNob3RFcnJvciBhbmQgc2V2ZXJhbCBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHRha2VT
Y3JlZW5zaG90LgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnRha2VT
Y3JlZW5zaG90KTogUmVjZWl2ZSBvcHRpb25hbCBmcmFtZSwgbm9kZSBhbmQgc2Nyb2xsSW50b1Zp
ZXcgdGhhdCBhcmUKKyAgICAgICAgY2hlY2tqZWQgYW5kIHBhc3NlZCB0byB0aGUgd2ViIHByb2Nl
c3MuCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vz
c2lvbkNhaXJvLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNz
aW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKTogQ2Fpcm8gaW1wbGVtZW50YXRp
b24uCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNz
aW9uR3RrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNuYXBzaG90UmVjdEZvclNjcmVl
bnNob3QpOiBIZWxwZXIgdG8gZ2V0IHRoZSByZWN0YW5nbGUgdG8gYmUgdXNlZCBmb3IgYSBzY3Jl
ZW5zaG90LgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtl
U2NyZWVuc2hvdCk6IElmIGEgbm9kZSBoYW5kbGUgaXMgcHJvdmlkZWQgdGFrZSB0aGUgc25hcHNo
b3QgdXNpbmcgdGhlCisgICAgICAgIGVsZW1lbnQgcmVjdGFuZ2xlLCBvdGhlcndpc2UgdXNlIHRo
ZSBwYWdlIHZpc2libGUgY29udGVudCByZWN0YW5nbGUuCisgICAgICAgICogV2ViUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjogVXBk
YXRlIFRha2VTbmFwc2hvdCBtZXNzYWdlLgorCiAyMDE3LTA4LTE3ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBBdXRvbWF0aW9uOiB0YWtlU2Ny
ZWVuc2hvdCBzaG91bGQgdXNlIHRoZSB2aXNpYmxlIGNvbnRlbnQgcmVjdCBub3QgdGhlIGRvY3Vt
ZW50IHJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDNmM2RlNjA5MmVhLi5jZGIzMzI3
MWE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xOTEsNiArMTkxLDggQEAgbGlzdChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2VBY2Nlc3NpYmxlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdH
dGsuY3BwCiAKKyAgICBVSVByb2Nlc3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vz
c2lvbkNhaXJvLmNwcAorCiAgICAgVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRp
b25TZXNzaW9uR3RrLmNwcAogCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1
bmNoZXJHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtl
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAxOTlmMGM1NWVmYS4uYTEy
NWJkZmYwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMTk1LDYgKzE5NSw4IEBAIGxp
c3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdl
YlZpZXdXUEUuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKIAorICAgIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwCisK
ICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKIAogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXgg
ZDJmOTI5NDUxMTMuLjcxZTEyMjMyZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgpAQCAtNjAsNyArNjAsOCBAQAogICAgICAg
ICAgICAgICAgICJJbnZhbGlkUGFyYW1ldGVyIiwKICAgICAgICAgICAgICAgICAiSW52YWxpZFNl
bGVjdG9yIiwKICAgICAgICAgICAgICAgICAiRWxlbWVudE5vdEludGVyYWN0YWJsZSIsCi0gICAg
ICAgICAgICAgICAgIkVsZW1lbnROb3RTZWxlY3RhYmxlIgorICAgICAgICAgICAgICAgICJFbGVt
ZW50Tm90U2VsZWN0YWJsZSIsCisgICAgICAgICAgICAgICAgIlNjcmVlbnNob3RFcnJvciIKICAg
ICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpAQCAtMzc3LDkgKzM3OCwxMiBAQAog
ICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJ0YWtlU2NyZWVuc2hv
dCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhl
IGN1cnJlbnQgcGFnZSBpbiBhIGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJUYWtlIGEgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBwYWdlIG9yIGdpdmVu
IGVsZW1lbnQgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dz
aW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJv
d3NpbmcgY29udGV4dCB0byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4iIH0KKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtl
IGEgc2NyZWVuc2hvdCBvZi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUhh
bmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIHRoZSBlbGVtZW50
LiBUaGUgbWFpbiBmcmFtZSBpcyB1c2VkIGlmIHRoaXMgcGFyYW1ldGVyIGlzIGVtcHR5IHN0cmlu
ZyBvciBleGNsdWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSGFuZGxl
IiwgIiRyZWYiOiAiTm9kZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJUaGUgaGFuZGxlIG9mIHRoZSBlbGVtZW50IHRvIHRha2UgYSBzY3JlZW5zaG90IG9mLiBUaGUg
YnJvd3NpbmcgY29udGV4dCBkb2N1bWVudCBlbGVtZW50IGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0
ZXIgaXMgZXhjbHVkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiSWYgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIHNjcm9sbGVkIGludG8gdmlldyBi
ZWZvcmUgdGFraW5nIHRoZSBzY3JlZW5zaG90LiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQ
TkcpLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCAyZGQ3ZDlkM2Y2Mi4uOGQ3ODk4Yzkz
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0xMzUxLDE2ICsxMzUxLDIzIEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyhFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiB9CiAKLXZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYm
IGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5n
KiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsTm9kZUhhbmRsZSwg
Y29uc3QgYm9vbCogb3B0aW9uYWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBSZWY8VGFrZVNjcmVl
bnNob3RDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3
ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJh
bWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGlm
ICghZnJhbWVJRCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RG
b3VuZCk7CisKKyAgICBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSBvcHRpb25hbFNjcm9s
bEludG9WaWV3SWZOZWVkZWQgPyAqb3B0aW9uYWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkIDogZmFs
c2U7CisgICAgU3RyaW5nIG5vZGVIYW5kbGUgPSBvcHRpb25hbE5vZGVIYW5kbGUgPyAqb3B0aW9u
YWxOb2RlSGFuZGxlIDogZW1wdHlTdHJpbmcoKTsKKwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBtX25leHRTY3JlZW5zaG90Q2FsbGJhY2tJRCsrOwogICAgIG1fc2NyZWVuc2hvdENhbGxiYWNr
cy5zZXQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAgcGFnZS0+cHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5z
aG90KHBhZ2UtPnBhZ2VJRCgpLCBjYWxsYmFja0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5zaG90
KHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCksIG5vZGVIYW5kbGUsIHNjcm9sbEludG9W
aWV3SWZOZWVkZWQsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZGlkVGFrZVNjcmVlbnNob3QodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YUhhbmRsZSwgY29uc3QgU3RyaW5nJiBlcnJvclR5
cGUpCkBAIC0xMzg5LDcgKzEzOTYsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRU
YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTaGFyZWFibAogdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJzKQogewogfQot
I2VuZGlmIC8vICFQTEFURk9STShNQUMpCisjZW5kaWYgLy8gIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKEdUSykKIAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFn
ZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFj
dGlvblR5cGUsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkpCkBA
IC0xMzk5LDExICsxNDA2LDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3Jt
U2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQCiB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5
JiwgY29uc3QgU3RyaW5nJikKIHsKIH0KKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShHVEspCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0FJUk8pCiBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0
RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKQogewotICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQotI2VuZGlmIC8vICFQ
TEFURk9STShDT0NPQSkKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0FJUk8p
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDUyNmI1OTNj
YjkzLi4wZDMzZTk2NWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMTMwLDcgKzEzMCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3Qg
U3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25z
dCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9wdGlv
bmFsRXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25hbENh
bGxiYWNrVGltZW91dCwgUmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlcjo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwZXJmb3JtTW91c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0
JiByZXF1ZXN0ZWRQb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3QgU3Ry
aW5nJiBtb3VzZUludGVyYWN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBr
ZXlNb2RpZmllcnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQb2lu
dD4mIHVwZGF0ZWRQb3NpdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtS2V5Ym9hcmRJ
bnRlcmFjdGlvbnMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxl
LCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQZXJm
b3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0
YWtlU2NyZWVuc2hvdChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5k
bGUsIFJlZjxJbnNwZWN0b3I6OkF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OlRh
a2VTY3JlZW5zaG90Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgdGFrZVNjcmVlbnNo
b3QoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBT
dHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxOb2RlSGFu
ZGxlLCBjb25zdCBib29sKiBvcHRpb25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQsIFJlZjxUYWtl
U2NyZWVuc2hvdENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc29sdmVDaGlsZEZy
YW1lSGFuZGxlKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5n
Q29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBp
bnQqIG9wdGlvbmFsT3JkaW5hbCwgY29uc3QgU3RyaW5nKiBvcHRpb25hbE5hbWUsIGNvbnN0IFN0
cmluZyogb3B0aW9uYWxOb2RlSGFuZGxlLCBSZWY8UmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGVDYWxs
YmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUoSW5z
cGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxl
LCBjb25zdCBTdHJpbmcmIGZyYW1lSGFuZGxlLCBSZWY8UmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxl
Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoSW5z
cGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxl
LCBjb25zdCBTdHJpbmcmIGZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIGNv
bnN0IGJvb2wqIG9wdGlvbmFsU2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgY29uc3QgYm9vbCogdXNl
Vmlld3BvcnRDb29yZGluYXRlcywgUmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNw
YXRjaGVySGFuZGxlcjo6Q29tcHV0ZUVsZW1lbnRMYXlvdXRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dl
YkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNhaXJvLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODBjMmYyZDZjNGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dlYkF1dG9tYXRpb25T
ZXNzaW9uQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJv
Lmg+CisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFz
ZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSkK
K3sKKyAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAg
IGlmICghYml0bWFwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBz
dXJmYWNlID0gYml0bWFwLT5jcmVhdGVDYWlyb1N1cmZhY2UoKTsKKyAgICBpZiAoIXN1cmZhY2Up
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hh
cj4gcG5nRGF0YTsKKyAgICBjYWlyb19zdXJmYWNlX3dyaXRlX3RvX3BuZ19zdHJlYW0oc3VyZmFj
ZS5nZXQoKSwgW10odm9pZCogdXNlckRhdGEsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCkgLT4gY2Fpcm9fc3RhdHVzX3QgeworICAgICAgICBhdXRvKiBwbmdEYXRh
ID0gc3RhdGljX2Nhc3Q8VmVjdG9yPHVuc2lnbmVkIGNoYXI+Kj4odXNlckRhdGEpOworICAgICAg
ICBwbmdEYXRhLT5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIENBSVJPX1NU
QVRVU19TVUNDRVNTOworICAgIH0sICZwbmdEYXRhKTsKKworICAgIGlmIChwbmdEYXRhLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBiYXNlNjRF
bmNvZGUocG5nRGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vz
c2lvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJB
dXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAKaW5kZXggOGY2ODA5ZWZjYzAuLjBkNDIxNGEwMzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRv
bWF0aW9uU2Vzc2lvbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwCkBAIC0zMDksMTEgKzMwOSw1IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZShX
ZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0CiAgICAgfSB3aGlsZSAoKnApOwogfQogCi1zdGQ6Om9w
dGlvbmFsPFN0cmluZz4gV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5j
b2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKQotewotICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcywgcG9zc2libHkgbW92aW5nIGl0IHRvIGEgV2ViQXV0b21hdGlv
blNlc3Npb25DYWlyby5jcHAgZmlsZS4KLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcApp
bmRleCBmMTFmNjUwODIxNy4uOWRkNGQ1MmJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MU2VsZWN0
RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckVsZW1lbnQuaD4KICNp
bmNsdWRlIDx3dGYvVVVJRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYzMyw3ICs2MzQs
MjMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50
KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnIKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6RGlkU2VsZWN0T3B0aW9uRWxlbWVudChjYWxsYmFja0lELCB7IH0pLCAwKTsKIH0K
IAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCh1aW50NjRf
dCBwYWdlSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCitzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBz
bmFwc2hvdFJlY3RGb3JTY3JlZW5zaG90KFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6OkVsZW1lbnQq
IGVsZW1lbnQpCit7CisgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKCFlbGVtZW50LT5y
ZW5kZXJlcigpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICBXZWJDb3JlOjpM
YXlvdXRSZWN0IHRvcExldmVsUmVjdDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OnNuYXBwZWRJ
bnRSZWN0KGVsZW1lbnQtPnJlbmRlcmVyKCktPnBhaW50aW5nUm9vdFJlY3QodG9wTGV2ZWxSZWN0
KSk7CisgICAgfQorCisgICAgaWYgKGF1dG8qIGZyYW1lVmlldyA9IHBhZ2UubWFpbkZyYW1lVmll
dygpKQorICAgICAgICByZXR1cm4gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKwor
ICAgIHJldHVybiB7IH07Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFr
ZVNjcmVlbnNob3QodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCB1aW50NjRfdCBjYWxsYmFja0lE
KQogewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKIApAQCAtNjQ0LDIzICs2
NjEsNDEgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNhbGxiYWMKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogZnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lVmll
dygpOwotICAgIGlmICghZnJhbWVWaWV3KSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygp
KSwgMCk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAgaWYg
KCFmcmFtZSB8fCAhZnJhbWUtPmNvcmVGcmFtZSgpKSB7CisgICAgICAgIFN0cmluZyBmcmFtZU5v
dEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6
OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVy
cm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIGZyYW1lTm90
Rm91bmRFcnJvclR5cGUpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkNv
cmU6OkludFJlY3Qgc25hcHNob3RSZWN0ID0gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3Qo
KTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBjb3JlRWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYg
KCFub2RlSGFuZGxlLmlzRW1wdHkoKSkgeworICAgICAgICBjb3JlRWxlbWVudCA9IGVsZW1lbnRG
b3JOb2RlSGFuZGxlKCpmcmFtZSwgbm9kZUhhbmRsZSk7CisgICAgICAgIGlmICghY29yZUVsZW1l
bnQpIHsKKyAgICAgICAgICAgIFN0cmluZyBub2RlTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpOb2RlTm90Rm91bmQp
OworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3Jl
ZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgbm9kZU5vdEZvdW5kRXJyb3JUeXBlKSwgMCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBTdHJpbmcgc2NyZWVu
c2hvdEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpn
ZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJv
ck1lc3NhZ2U6OlNjcmVlbnNob3RFcnJvcik7CisgICAgV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hv
dFJlY3QgPSBzbmFwc2hvdFJlY3RGb3JTY3JlZW5zaG90KCpwYWdlLCBjb3JlRWxlbWVudCk7CiAg
ICAgaWYgKHNuYXBzaG90UmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0
b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgU3Ry
aW5nKCkpLCAwKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRh
a2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgc2NyZWVuc2hvdEVycm9yVHlwZSksIDAp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGNvcmVFbGVtZW50ICYmIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQpCisgICAgICAgIGNvcmVFbGVtZW50LT5zY3JvbGxJbnRvVmlld0lm
TmVlZGVkKGZhbHNlKTsKKwogICAgIFJlZlB0cjxXZWJJbWFnZT4gaW1hZ2UgPSBwYWdlLT5zY2Fs
ZWRTbmFwc2hvdFdpdGhPcHRpb25zKHNuYXBzaG90UmVjdCwgMSwgU25hcHNob3RPcHRpb25zU2hh
cmVhYmxlKTsKLSAgICBpZiAoaW1hZ2UpCi0gICAgICAgIGltYWdlLT5iaXRtYXAoKS5jcmVhdGVI
YW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBp
ZiAoIWltYWdlKSB7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRU
YWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIHNjcmVlbnNob3RFcnJvclR5cGUpLCAw
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygpKSwg
MCk7ICAgIAorICAgIGltYWdlLT5iaXRtYXAoKS5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRN
ZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFuZGxlLCB7IH0pLCAwKTsK
IH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUo
dWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCmluZGV4IDg0NTY3NGJkNDMxLi40Yjg4MmY0Yjc1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaApAQCAtNjYsNyArNjYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZm9jdXNGcmFtZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQpOwogICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQodWludDY0X3QgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBib29sIHVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
ICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lk
IHRha2VTY3JlZW5zaG90KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Cisg
ICAgdm9pZCB0YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0Q29va2llc0ZvckZyYW1lKHVpbnQ2NF90IHBhZ2VJ
RCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxl
dGVDb29raWUodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2ll
TmFtZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDlkNDEzMWM4NWZhLi4zN2I2NjU0YTE4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNCw3
ICszNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgewogCiAgICAg
U2VsZWN0T3B0aW9uRWxlbWVudCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBub2RlSGFuZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgVGFrZVNjcmVlbnNo
b3QodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFRha2VTY3JlZW5z
aG90KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAg
IEdldENvb2tpZXNGb3JGcmFtZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgRGVsZXRlQ29va2llKHVpbnQ2NF90IHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCg==
</data>
<flag name="review"
          id="338752"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319175</attachid>
            <date>2017-08-28 05:09:29 -0700</date>
            <delta_ts>2017-08-28 05:33:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wd-screenshots.diff</filename>
            <type>text/plain</type>
            <size>29788</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggN2JiMTFkNWU3ZjUuLjJmN2RjMDNkYWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBzY3JlZW4g
Y2FwdHVyZSBjb21tYW5kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAg
ICAgICBJbXBsZW1lbnQgdGFrZVNjcmVlbnNob3QgYW5kIHRha2VFbGVtZW50U2NyZWVuc2hvdCBj
b21tYW5kcy4KKworICAgICAgICAxOS4gU2NyZWVuIENhcHR1cmUuCisgICAgICAgIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNzY3JlZW4tY2FwdHVy
ZQorCisgICAgICAgICogQ29tbWFuZFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OkNv
bW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQpOiBIYW5kbGUgU2NyZWVuc2hvdEVycm9yIHByb3Rv
Y29sIGVycm9yLgorICAgICAgICAoV2ViRHJpdmVyOjpDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVz
Q29kZSBjb25zdCk6IEFkZCBVbmFibGVUb0NhcHR1cmVTY3JlZW4uCisgICAgICAgIChXZWJEcml2
ZXI6OkNvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
Q29tbWFuZFJlc3VsdC5oOgorICAgICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJp
dmVyOjpTZXNzaW9uOjp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgICogU2Vzc2lvbi5oOgorICAg
ICAgICAqIFdlYkRyaXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2
ZXJTZXJ2aWNlOjp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZl
clNlcnZpY2U6OnRha2VFbGVtZW50U2NyZWVuc2hvdCk6CisgICAgICAgICogV2ViRHJpdmVyU2Vy
dmljZS5oOgorCiAyMDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBjb29raWVzIGNvbW1hbmRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuY3BwIGIvU291cmNl
L1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcAppbmRleCA3ZTQ4NWVlNjQyYS4uMGYzZDQ0NzIx
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5jcHAKKysrIGIv
U291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcApAQCAtMTA4LDYgKzEwOCw4IEBAIENv
bW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQoUmVmUHRyPEluc3BlY3RvclZhbHVlPiYmIHJlc3Vs
dCwgc3RkOjpvcHRpb25hbDxFcnJvCiAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29k
ZTo6Tm9TdWNoQWxlcnQ7CiAgICAgICAgIGVsc2UgaWYgKGVycm9yTmFtZSA9PSAiRWxlbWVudE5v
dFNlbGVjdGFibGUiKQogICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkVsZW1l
bnROb3RTZWxlY3RhYmxlOworICAgICAgICBlbHNlIGlmIChlcnJvck5hbWUgPT0gIlNjcmVlbnNo
b3RFcnJvciIpCisgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6VW5hYmxlVG9D
YXB0dXJlU2NyZWVuOwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0OSw2ICsxNTEsNyBA
QCB1bnNpZ25lZCBDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSgpIGNvbnN0CiAgICAgICAg
IHJldHVybiA0MDg7CiAgICAgY2FzZSBFcnJvckNvZGU6OkphdmFzY3JpcHRFcnJvcjoKICAgICBj
YXNlIEVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQ6CisgICAgY2FzZSBFcnJvckNvZGU6OlVu
YWJsZVRvQ2FwdHVyZVNjcmVlbjoKICAgICBjYXNlIEVycm9yQ29kZTo6VW5leHBlY3RlZEFsZXJ0
T3BlbjoKICAgICBjYXNlIEVycm9yQ29kZTo6VW5rbm93bkVycm9yOgogICAgIGNhc2UgRXJyb3JD
b2RlOjpVbnN1cHBvcnRlZE9wZXJhdGlvbjoKQEAgLTE5OCw2ICsyMDEsOCBAQCBTdHJpbmcgQ29t
bWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpOwogICAgIGNhc2UgRXJyb3JDb2RlOjpUaW1l
b3V0OgogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ0aW1lb3V0Iik7CisgICAgY2FzZSBF
cnJvckNvZGU6OlVuYWJsZVRvQ2FwdHVyZVNjcmVlbjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgidW5hYmxlIHRvIGNhcHR1cmUgc2NyZWVuIik7CiAgICAgY2FzZSBFcnJvckNvZGU6OlVu
ZXhwZWN0ZWRBbGVydE9wZW46CiAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuZXhwZWN0
ZWQgYWxlcnQgb3BlbiIpOwogICAgIGNhc2UgRXJyb3JDb2RlOjpVbmtub3duQ29tbWFuZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oIGIvU291cmNlL1dlYkRy
aXZlci9Db21tYW5kUmVzdWx0LmgKaW5kZXggZjE2MmQ0ZTI4YmYuLjc5NThiNDQ3Mzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL0NvbW1hbmRSZXN1bHQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFNlc3Npb25Ob3RDcmVhdGVkLAogICAgICAgICBTdGFsZUVsZW1lbnRSZWZlcmVuY2UsCiAgICAg
ICAgIFRpbWVvdXQsCisgICAgICAgIFVuYWJsZVRvQ2FwdHVyZVNjcmVlbiwKICAgICAgICAgVW5l
eHBlY3RlZEFsZXJ0T3BlbiwKICAgICAgICAgVW5rbm93bkNvbW1hbmQsCiAgICAgICAgIFVua25v
d25FcnJvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGFjYjZiZGMwNGIyLi4xOGI2OWE4MzQ3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xOTk3LDQgKzE5OTcsMzkgQEAgdm9pZCBTZXNzaW9uOjpz
ZW5kQWxlcnRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4KICAgICB9KTsKIH0KIAordm9pZCBTZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gZWxlbWVudElELCBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNjcm9sbElu
dG9WaWV3LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmICghbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6Tm9TdWNoV2luZG93KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoYW5k
bGVVc2VyUHJvbXB0cyhbdGhpcywgZWxlbWVudElELCBzY3JvbGxJbnRvVmlldywgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRl
cnMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBwYXJhbWV0ZXJzLT5zZXRT
dHJpbmcoQVNDSUlMaXRlcmFsKCJoYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52
YWx1ZSgpKTsKKyAgICAgICAgaWYgKG1fY3VycmVudEJyb3dzaW5nQ29udGV4dCkKKyAgICAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImZyYW1lSGFuZGxlIiksIG1f
Y3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICAgICAgaWYgKGVsZW1lbnRJRCkK
KyAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm5vZGVIYW5k
bGUiKSwgZWxlbWVudElELnZhbHVlKCkpOworICAgICAgICBpZiAoc2Nyb2xsSW50b1ZpZXcudmFs
dWVfb3IoZmFsc2UpKQorICAgICAgICAgICAgcGFyYW1ldGVycy0+c2V0Qm9vbGVhbihBU0NJSUxp
dGVyYWwoInNjcm9sbEludG9WaWV3SWZOZWVkZWQiKSwgdHJ1ZSk7CisgICAgICAgIG1faG9zdC0+
c2VuZENvbW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJ0YWtlU2NyZWVuc2hvdCIpLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9z
dDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJl
c3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBkYXRhOworICAgICAgICAgICAgaWYgKCFyZXNw
b25zZS5yZXNwb25zZU9iamVjdC0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZGF0YSIpLCBkYXRh
KSkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3duRXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKEluc3BlY3RvclZhbHVlOjpjcmVhdGUoZGF0YSkpKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkRyaXZlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViRHJpdmVyL1Nl
c3Npb24uaAppbmRleCA3Zjk2ZjM5NjBhZS4uNjhjYWU3ZWI5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCkBA
IC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWNjZXB0QWxlcnQoRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBnZXRBbGVydFRleHQoRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBzZW5kQWxlcnRUZXh0KGNv
bnN0IFN0cmluZyYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZv
aWQgdGFrZVNjcmVlbnNob3Qoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVsZW1lbnRJRCwgc3RkOjpv
cHRpb25hbDxib29sPiBzY3JvbGxJbnRvVmlldywgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJik7CiAKIHByaXZhdGU6CiAgICAgU2Vzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8U2Vzc2lv
bkhvc3Q+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNl
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTJhOGY4
ZjRkMGYuLjkwYTRkZjliZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZl
clNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAK
QEAgLTE1OCw2ICsxNTgsMTAgQEAgY29uc3QgV2ViRHJpdmVyU2VydmljZTo6Q29tbWFuZCBXZWJE
cml2ZXJTZXJ2aWNlOjpzX2NvbW1hbmRzW10gPSB7CiAgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIv
c2Vzc2lvbi8kc2Vzc2lvbklkL2FsZXJ0L3RleHQiLCAmV2ViRHJpdmVyU2VydmljZTo6Z2V0QWxl
cnRUZXh0IH0sCiAgICAgeyBIVFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9h
bGVydC90ZXh0IiwgJldlYkRyaXZlclNlcnZpY2U6OnNlbmRBbGVydFRleHQgfSwKIAorICAgIHsg
SFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9zY3JlZW5zaG90IiwgJldlYkRy
aXZlclNlcnZpY2U6OnRha2VTY3JlZW5zaG90IH0sCisgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIv
c2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGVsZW1lbnRJZC9zY3JlZW5zaG90IiwgJldlYkRy
aXZlclNlcnZpY2U6OnRha2VFbGVtZW50U2NyZWVuc2hvdCB9LAorCisKICAgICB7IEhUVFBNZXRo
b2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kZWxlbWVudElkL2Rpc3BsYXll
ZCIsICZXZWJEcml2ZXJTZXJ2aWNlOjppc0VsZW1lbnREaXNwbGF5ZWQgfSwKIH07CiAKQEAgLTE1
MDcsNCArMTUxMSw0NSBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnNlbmRBbGVydFRleHQoUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdAogICAgIH0pOwogfQogCit2
b2lkIFdlYkRyaXZlclNlcnZpY2U6OnRha2VTY3JlZW5zaG90KFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICAvLyDCpzE5LjEgVGFrZSBTY3JlZW5zaG90LgorICAgIC8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCN0YWtl
LXNjcmVlbnNob3QKKyAgICBhdXRvIHNlc3Npb24gPSBmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRo
RXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBpZiAoIXNlc3Npb24p
CisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPndhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZShbc2Vzc2lvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1
bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJl
c3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNlc3Npb24t
PnRha2VTY3JlZW5zaG90KHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRHJpdmVyU2VydmljZTo6dGFr
ZUVsZW1lbnRTY3JlZW5zaG90KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICAvLyDCpzE5LjIgVGFrZSBFbGVtZW50IFNjcmVlbnNob3QuCisgICAgLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sI3Rha2UtZWxlbWVudC1z
Y3JlZW5zaG90CisgICAgYXV0byBzZXNzaW9uID0gZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVy
cm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgaWYgKCFzZXNzaW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGVsZW1lbnRJRCA9IGZpbmRFbGVtZW50T3JDb21w
bGV0ZVdpdGhFcnJvcigqcGFyYW1ldGVycywgY29tcGxldGlvbkhhbmRsZXIpOworICAgIGlmICgh
ZWxlbWVudElEKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHNjcm9sbEludG9WaWV3ID0g
dHJ1ZTsKKyAgICBwYXJhbWV0ZXJzLT5nZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgic2Nyb2xsIiks
IHNjcm9sbEludG9WaWV3KTsKKworICAgIHNlc3Npb24tPndhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZShbc2Vzc2lvbiwgZWxlbWVudElELCBzY3JvbGxJbnRvVmlldywgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIHNlc3Npb24tPnRha2VTY3JlZW5zaG90KGVsZW1lbnRJRC52YWx1
ZSgpLCBzY3JvbGxJbnRvVmlldywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0p
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJEcml2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5oIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2
aWNlLmgKaW5kZXggMmE2NTU5M2ZjMDYuLjBlMDJjZjJhNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRy
aXZlclNlcnZpY2UuaApAQCAtMTA5LDYgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhY2Nl
cHRBbGVydChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZ2V0QWxlcnRUZXh0KFJlZlB0cjxJ
bnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJik7CiAgICAgdm9pZCBzZW5kQWxlcnRUZXh0KFJlZlB0cjxJbnNwZWN0b3I6Okluc3Bl
Y3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAg
dm9pZCB0YWtlU2NyZWVuc2hvdChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgdGFrZUVsZW1l
bnRTY3JlZW5zaG90KFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAKICAgICBzdGF0aWMgQ2FwYWJpbGl0aWVz
IHBsYXRmb3JtQ2FwYWJpbGl0aWVzKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9y
T2JqZWN0PiBwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0JiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZGRkMzkyMGRlNDEuLjNiOTU4NDI4NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisy
MDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBzY3JlZW4gY2FwdHVyZSBjb21tYW5kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NjE1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICBFeHRlbmQgdGFrZVNjcmVl
bnNob3QgY29tbWFuZCB0byBvcHRpb25hbGx5IHRha2UgYSBzY3JlZW5zaG90IG9mIGFuIGVsZW1l
bnQuIFdoZW4gbm8gZWxlbWVudCBpcyBwcm92aWRlZCwgdGhlCisgICAgICAgIHNjcmVlbnNob3Qg
aXMgdGFrZW4gZnJvbSB0aGUgcGFnZSB2aXNpYmxlIGFyZWEuCisKKyAgICAgICAgKiBQbGF0Zm9y
bUdUSy5jbWFrZTogQWRkIFdlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwIHRvIGNvbXBpbGF0
aW9uLgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb246IEFkZCBTY3JlZW5zaG90RXJyb3IgYW5k
IHNldmVyYWwgb3B0aW9uYWwgcGFyYW1ldGVycyB0byB0YWtlU2NyZWVuc2hvdC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdCk6IFJlY2VpdmUg
b3B0aW9uYWwgZnJhbWUsIG5vZGUgYW5kIHNjcm9sbEludG9WaWV3IHRoYXQgYXJlCisgICAgICAg
IGNoZWNrZWQgYW5kIHBhc3NlZCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNhaXJvLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2
NEVuY29kZWRQTkdEYXRhKTogQ2Fpcm8gaW1wbGVtZW50YXRpb24uCisgICAgICAgICogVUlQcm9j
ZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OnNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QpOiBIZWxwZXIgdG8gZ2V0
IHRoZSByZWN0YW5nbGUgdG8gYmUgdXNlZCBmb3IgYSBzY3JlZW5zaG90LgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCk6IElmIGEgbm9k
ZSBoYW5kbGUgaXMgcHJvdmlkZWQgdGFrZSB0aGUgc25hcHNob3QgdXNpbmcgdGhlCisgICAgICAg
IGVsZW1lbnQgcmVjdGFuZ2xlLCBvdGhlcndpc2UgdXNlIHRoZSBwYWdlIHZpc2libGUgY29udGVu
dCByZWN0YW5nbGUuCisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjogVXBkYXRlIFRha2VTbmFwc2hvdCBtZXNz
YWdlLgorCiAyMDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBBdXRvbWF0aW9uOiB0YWtlU2NyZWVuc2hvdCBzaG91bGQgdXNlIHRo
ZSB2aXNpYmxlIGNvbnRlbnQgcmVjdCBub3QgdGhlIGRvY3VtZW50IHJlY3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCmluZGV4IGQzNDNlNmZmYzgzLi4zZmI1OGM2OGM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xOTEsNiArMTkxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxlLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwCiAKKyAgICBVSVByb2Nl
c3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNhaXJvLmNwcAorCiAgICAg
VUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcAogCiAg
ICAgVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdQRS5jbWFrZQppbmRleCBhNThjMDVjZTA2Zi4uMjExZGQ0MDQyNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtMTk3LDYgKzE5Nyw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09V
UkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXdXUEUuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKIAorICAgIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2Nh
aXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwCisKICAgICBVSVByb2Nlc3MvTGF1bmNo
ZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKIAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3Vu
aXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXggZDJmOTI5NDUxMTMuLjcxZTEyMjMy
ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbgpAQCAtNjAsNyArNjAsOCBAQAogICAgICAgICAgICAgICAgICJJbnZhbGlkUGFy
YW1ldGVyIiwKICAgICAgICAgICAgICAgICAiSW52YWxpZFNlbGVjdG9yIiwKICAgICAgICAgICAg
ICAgICAiRWxlbWVudE5vdEludGVyYWN0YWJsZSIsCi0gICAgICAgICAgICAgICAgIkVsZW1lbnRO
b3RTZWxlY3RhYmxlIgorICAgICAgICAgICAgICAgICJFbGVtZW50Tm90U2VsZWN0YWJsZSIsCisg
ICAgICAgICAgICAgICAgIlNjcmVlbnNob3RFcnJvciIKICAgICAgICAgICAgIF0KICAgICAgICAg
fSwKICAgICAgICAgewpAQCAtMzc3LDkgKzM3OCwxMiBAQAogICAgICAgICB9LAogICAgICAgICB7
CiAgICAgICAgICAgICAibmFtZSI6ICJ0YWtlU2NyZWVuc2hvdCIsCi0gICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiVGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcGFnZSBpbiBhIGJy
b3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUYWtlIGEgc2Ny
ZWVuc2hvdCBvZiB0aGUgY3VycmVudCBwYWdlIG9yIGdpdmVuIGVsZW1lbnQgaW4gYSBicm93c2lu
ZyBjb250ZXh0LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtl
IGEgc2NyZWVuc2hvdCBvZi4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIs
ICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFu
ZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4iIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1l
SGFuZGxlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIHRoZSBlbGVtZW50LiBUaGUgbWFpbiBmcmFtZSBpcyB1
c2VkIGlmIHRoaXMgcGFyYW1ldGVyIGlzIGVtcHR5IHN0cmluZyBvciBleGNsdWRlZC4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSGFuZGxlIiwgIiRyZWYiOiAiTm9kZUhhbmRs
ZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIG9mIHRoZSBl
bGVtZW50IHRvIHRha2UgYSBzY3JlZW5zaG90IG9mLiBUaGUgYnJvd3NpbmcgY29udGV4dCBkb2N1
bWVudCBlbGVtZW50IGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgZXhjbHVkZWQuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCIsICJ0eXBl
IjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIGVs
ZW1lbnQgc2hvdWxkIGJlIHNjcm9sbGVkIGludG8gdmlldyBiZWZvcmUgdGFraW5nIHRoZSBzY3Jl
ZW5zaG90LiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQTkcpLiIgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcAppbmRleCAyZGQ3ZDlkM2Y2Mi4uOGQ3ODk4YzkzODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwCkBAIC0xMzUxLDE2ICsxMzUxLDIzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsCiAj
ZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnRha2VTY3JlZW5zaG90KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBo
YW5kbGUsIFJlZjxUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxl
LCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsTm9kZUhhbmRsZSwgY29uc3QgYm9vbCogb3B0aW9uYWxT
Y3JvbGxJbnRvVmlld0lmTmVlZGVkLCBSZWY8VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4mJiBjYWxs
YmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUo
aGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxG
cmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGlmICghZnJhbWVJRCkKKyAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CisKKyAgICBib29sIHNj
cm9sbEludG9WaWV3SWZOZWVkZWQgPSBvcHRpb25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQgPyAq
b3B0aW9uYWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkIDogZmFsc2U7CisgICAgU3RyaW5nIG5vZGVI
YW5kbGUgPSBvcHRpb25hbE5vZGVIYW5kbGUgPyAqb3B0aW9uYWxOb2RlSGFuZGxlIDogZW1wdHlT
dHJpbmcoKTsKKwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX25leHRTY3JlZW5zaG90Q2Fs
bGJhY2tJRCsrOwogICAgIG1fc2NyZWVuc2hvdENhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgV1RG
TW92ZShjYWxsYmFjaykpOwogCi0gICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Oldl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5zaG90KHBhZ2UtPnBhZ2VJRCgpLCBj
YWxsYmFja0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5zaG90KHBhZ2UtPnBhZ2VJRCgpLCBmcmFt
ZUlELnZhbHVlKCksIG5vZGVIYW5kbGUsIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGNhbGxiYWNr
SUQpLCAwKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlkVGFrZVNjcmVlbnNo
b3QodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YUhhbmRsZSwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpCkBAIC0xMzg5LDcgKzEzOTYs
NyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRUYWtlU2NyZWVuc2hvdCh1aW50NjRf
dCBjYWxsYmFja0lELCBjb25zdCBTaGFyZWFibAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlSW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
QnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJzKQogewogfQotI2VuZGlmIC8vICFQTEFURk9STShN
QUMpCisjZW5kaWYgLy8gIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKEdUSykKIAogI2lmICFQ
TEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUsIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkpCkBAIC0xMzk5LDExICsxNDA2LDEzIEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2Vi
UGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiwgY29uc3QgU3RyaW5nJikKIHsK
IH0KKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShHVEspCiAKKyNpZiAh
UExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0FJUk8pCiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gV2Vi
QXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKQogewotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQotI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKKyNlbmRp
ZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0FJUk8pCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDUyNmI1OTNjYjkzLi4wZDMzZTk2NWQzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uaApAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1l
SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rv
ckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRXhwZWN0c0ltcGxpY2l0Q2Fs
bGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25hbENhbGxiYWNrVGltZW91dCwgUmVmPElu
c3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6RXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtTW91
c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5k
bGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiByZXF1ZXN0ZWRQb3NpdGlvbiwg
Y29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUludGVyYWN0aW9u
LCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBrZXlNb2RpZmllcnMsIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQb2ludD4mIHVwZGF0ZWRQb3NpdGlvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Oklu
c3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlv
bnNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0YWtlU2NyZWVuc2hvdChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxJbnNwZWN0b3I6OkF1
dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OlRha2VTY3JlZW5zaG90Q2FsbGJhY2s+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVI
YW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxOb2RlSGFuZGxlLCBjb25zdCBib29sKiBvcHRp
b25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQsIFJlZjxUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3Qg
U3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBpbnQqIG9wdGlvbmFsT3JkaW5hbCwg
Y29uc3QgU3RyaW5nKiBvcHRpb25hbE5hbWUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxOb2RlSGFu
ZGxlLCBSZWY8UmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZyYW1l
SGFuZGxlLCBSZWY8UmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlQ2FsbGJhY2s+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZyYW1l
SGFuZGxlLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsU2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgY29uc3QgYm9vbCogdXNlVmlld3BvcnRDb29yZGluYXRlcywg
UmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6Q29tcHV0
ZUVsZW1lbnRMYXlvdXRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fp
cm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRv
bWF0aW9uU2Vzc2lvbkNhaXJvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uODBjMmYyZDZjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9u
LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CisjaW5jbHVkZSA8Y2Fpcm8v
Y2Fpcm8uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBSZWZQdHI8U2hhcmVh
YmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIGlmICghYml0bWFwKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBzdXJmYWNlID0gYml0bWFwLT5jcmVh
dGVDYWlyb1N1cmZhY2UoKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gcG5nRGF0YTsKKyAgICBjYWly
b19zdXJmYWNlX3dyaXRlX3RvX3BuZ19zdHJlYW0oc3VyZmFjZS5nZXQoKSwgW10odm9pZCogdXNl
ckRhdGEsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgLT4gY2Fp
cm9fc3RhdHVzX3QgeworICAgICAgICBhdXRvKiBwbmdEYXRhID0gc3RhdGljX2Nhc3Q8VmVjdG9y
PHVuc2lnbmVkIGNoYXI+Kj4odXNlckRhdGEpOworICAgICAgICBwbmdEYXRhLT5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIENBSVJPX1NUQVRVU19TVUNDRVNTOworICAgIH0s
ICZwbmdEYXRhKTsKKworICAgIGlmIChwbmdEYXRhLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBiYXNlNjRFbmNvZGUocG5nRGF0YSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5j
cHAKaW5kZXggOGY2ODA5ZWZjYzAuLjBkNDIxNGEwMzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlv
blNlc3Npb25HdGsuY3BwCkBAIC0zMDksMTEgKzMwOSw1IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNv
bnN0CiAgICAgfSB3aGlsZSAoKnApOwogfQogCi1zdGQ6Om9wdGlvbmFsPFN0cmluZz4gV2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcywg
cG9zc2libHkgbW92aW5nIGl0IHRvIGEgV2ViQXV0b21hdGlvblNlc3Npb25DYWlyby5jcHAgZmls
ZS4KLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBmMTFmNjUwODIxNy4uOWRk
NGQ1MmJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCkBAIC01Myw2ICs1
Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MU2VsZWN0RWxlbWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSlNFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlbmRlckVsZW1lbnQuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYzMyw3ICs2MzQsMjMgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50KHVpbnQ2NF90IHBhZ2VJRCwgdWlu
dDY0X3QgZnIKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkU2VsZWN0T3B0
aW9uRWxlbWVudChjYWxsYmFja0lELCB7IH0pLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCitzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3RGb3JTY3JlZW5z
aG90KFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYg
KGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgICAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IHRvcExldmVsUmVj
dDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OnNuYXBwZWRJbnRSZWN0KGVsZW1lbnQtPnJlbmRl
cmVyKCktPnBhaW50aW5nUm9vdFJlY3QodG9wTGV2ZWxSZWN0KSk7CisgICAgfQorCisgICAgaWYg
KGF1dG8qIGZyYW1lVmlldyA9IHBhZ2UubWFpbkZyYW1lVmlldygpKQorICAgICAgICByZXR1cm4g
ZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKworICAgIHJldHVybiB7IH07Cit9CisK
K3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QodWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFNoYXJlYWJsZUJp
dG1hcDo6SGFuZGxlIGhhbmRsZTsKIApAQCAtNjQ0LDIzICs2NjEsNDEgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGNhbGxiYWMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkNvcmU6OkZyYW1l
VmlldyogZnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lVmlldygpOwotICAgIGlmICghZnJhbWVW
aWV3KSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2Ny
ZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygpKSwgMCk7CisgICAgV2ViRnJhbWUq
IGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNv
cmVGcmFtZSgpKSB7CisgICAgICAgIFN0cmluZyBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RG
b3VuZCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2Ny
ZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIGZyYW1lTm90Rm91bmRFcnJvclR5cGUpLCAwKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RS
ZWN0ID0gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKyAgICBXZWJDb3JlOjpFbGVt
ZW50KiBjb3JlRWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKCFub2RlSGFuZGxlLmlzRW1wdHko
KSkgeworICAgICAgICBjb3JlRWxlbWVudCA9IGVsZW1lbnRGb3JOb2RlSGFuZGxlKCpmcmFtZSwg
bm9kZUhhbmRsZSk7CisgICAgICAgIGlmICghY29yZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIFN0
cmluZyBub2RlTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpOb2RlTm90Rm91bmQpOworICAgICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhh
bmRsZSwgbm9kZU5vdEZvdW5kRXJyb3JUeXBlKSwgMCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBTdHJpbmcgc2NyZWVuc2hvdEVycm9yVHlwZSA9IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OlNjcmVlbnNob3RF
cnJvcik7CisgICAgV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3QgPSBzbmFwc2hvdFJlY3RG
b3JTY3JlZW5zaG90KCpwYWdlLCBjb3JlRWxlbWVudCk7CiAgICAgaWYgKHNuYXBzaG90UmVjdC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRh
a2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgU3RyaW5nKCkpLCAwKTsKKyAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNr
SUQsIGhhbmRsZSwgc2NyZWVuc2hvdEVycm9yVHlwZSksIDApOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgaWYgKGNvcmVFbGVtZW50ICYmIHNjcm9sbEludG9WaWV3SWZOZWVkZWQpCisg
ICAgICAgIGNvcmVFbGVtZW50LT5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKGZhbHNlKTsKKwogICAg
IFJlZlB0cjxXZWJJbWFnZT4gaW1hZ2UgPSBwYWdlLT5zY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25z
KHNuYXBzaG90UmVjdCwgMSwgU25hcHNob3RPcHRpb25zU2hhcmVhYmxlKTsKLSAgICBpZiAoaW1h
Z2UpCi0gICAgICAgIGltYWdlLT5iaXRtYXAoKS5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRN
ZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFj
a0lELCBoYW5kbGUsIHNjcmVlbnNob3RFcnJvclR5cGUpLCAwKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVu
c2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygpKSwgMCk7ICAgIAorICAgIGltYWdlLT5i
aXRtYXAoKS5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVl
bnNob3QoY2FsbGJhY2tJRCwgaGFuZGxlLCB7IH0pLCAwKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5oCmluZGV4IDg0NTY3NGJkNDMxLi40Yjg4MmY0Yjc1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuaApAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXNG
cmFtZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgY29tcHV0
ZUVsZW1lbnRMYXlvdXQodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
bm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIHVzZVZpZXdwb3J0
Q29vcmRpbmF0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgc2VsZWN0T3B0aW9u
RWxlbWVudCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIHRha2VTY3JlZW5zaG90KHVpbnQ2
NF90IHBhZ2VJRCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCB0YWtlU2NyZWVuc2hv
dCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZv
aWQgZ2V0Q29va2llc0ZvckZyYW1lKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxldGVDb29raWUodWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDlkNDEzMWM4NWZhLi4zN2I2NjU0YTE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNCw3ICszNCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgewogCiAgICAgU2VsZWN0T3B0aW9uRWxlbWVudCh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCB1aW50
NjRfdCBjYWxsYmFja0lEKQogCi0gICAgVGFrZVNjcmVlbnNob3QodWludDY0X3QgcGFnZUlELCB1
aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFRha2VTY3JlZW5zaG90KHVpbnQ2NF90IHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAgIEdldENvb2tpZXNGb3JGcmFtZSh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAg
ICAgRGVsZXRlQ29va2llKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IGNvb2tpZU5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319176</attachid>
            <date>2017-08-28 05:33:18 -0700</date>
            <delta_ts>2017-08-28 05:33:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wd-screenshots.diff</filename>
            <type>text/plain</type>
            <size>29788</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggN2JiMTFkNWU3ZjUuLjJmN2RjMDNkYWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBzY3JlZW4g
Y2FwdHVyZSBjb21tYW5kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAg
ICAgICBJbXBsZW1lbnQgdGFrZVNjcmVlbnNob3QgYW5kIHRha2VFbGVtZW50U2NyZWVuc2hvdCBj
b21tYW5kcy4KKworICAgICAgICAxOS4gU2NyZWVuIENhcHR1cmUuCisgICAgICAgIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNzY3JlZW4tY2FwdHVy
ZQorCisgICAgICAgICogQ29tbWFuZFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OkNv
bW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQpOiBIYW5kbGUgU2NyZWVuc2hvdEVycm9yIHByb3Rv
Y29sIGVycm9yLgorICAgICAgICAoV2ViRHJpdmVyOjpDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVz
Q29kZSBjb25zdCk6IEFkZCBVbmFibGVUb0NhcHR1cmVTY3JlZW4uCisgICAgICAgIChXZWJEcml2
ZXI6OkNvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
Q29tbWFuZFJlc3VsdC5oOgorICAgICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJp
dmVyOjpTZXNzaW9uOjp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgICogU2Vzc2lvbi5oOgorICAg
ICAgICAqIFdlYkRyaXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2
ZXJTZXJ2aWNlOjp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZl
clNlcnZpY2U6OnRha2VFbGVtZW50U2NyZWVuc2hvdCk6CisgICAgICAgICogV2ViRHJpdmVyU2Vy
dmljZS5oOgorCiAyMDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBjb29raWVzIGNvbW1hbmRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuY3BwIGIvU291cmNl
L1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcAppbmRleCA3ZTQ4NWVlNjQyYS4uMGYzZDQ0NzIx
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5jcHAKKysrIGIv
U291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcApAQCAtMTA4LDYgKzEwOCw4IEBAIENv
bW1hbmRSZXN1bHQ6OkNvbW1hbmRSZXN1bHQoUmVmUHRyPEluc3BlY3RvclZhbHVlPiYmIHJlc3Vs
dCwgc3RkOjpvcHRpb25hbDxFcnJvCiAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29k
ZTo6Tm9TdWNoQWxlcnQ7CiAgICAgICAgIGVsc2UgaWYgKGVycm9yTmFtZSA9PSAiRWxlbWVudE5v
dFNlbGVjdGFibGUiKQogICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkVsZW1l
bnROb3RTZWxlY3RhYmxlOworICAgICAgICBlbHNlIGlmIChlcnJvck5hbWUgPT0gIlNjcmVlbnNo
b3RFcnJvciIpCisgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6VW5hYmxlVG9D
YXB0dXJlU2NyZWVuOwogCiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0OSw2ICsxNTEsNyBA
QCB1bnNpZ25lZCBDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSgpIGNvbnN0CiAgICAgICAg
IHJldHVybiA0MDg7CiAgICAgY2FzZSBFcnJvckNvZGU6OkphdmFzY3JpcHRFcnJvcjoKICAgICBj
YXNlIEVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQ6CisgICAgY2FzZSBFcnJvckNvZGU6OlVu
YWJsZVRvQ2FwdHVyZVNjcmVlbjoKICAgICBjYXNlIEVycm9yQ29kZTo6VW5leHBlY3RlZEFsZXJ0
T3BlbjoKICAgICBjYXNlIEVycm9yQ29kZTo6VW5rbm93bkVycm9yOgogICAgIGNhc2UgRXJyb3JD
b2RlOjpVbnN1cHBvcnRlZE9wZXJhdGlvbjoKQEAgLTE5OCw2ICsyMDEsOCBAQCBTdHJpbmcgQ29t
bWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSIpOwogICAgIGNhc2UgRXJyb3JDb2RlOjpUaW1l
b3V0OgogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ0aW1lb3V0Iik7CisgICAgY2FzZSBF
cnJvckNvZGU6OlVuYWJsZVRvQ2FwdHVyZVNjcmVlbjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgidW5hYmxlIHRvIGNhcHR1cmUgc2NyZWVuIik7CiAgICAgY2FzZSBFcnJvckNvZGU6OlVu
ZXhwZWN0ZWRBbGVydE9wZW46CiAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuZXhwZWN0
ZWQgYWxlcnQgb3BlbiIpOwogICAgIGNhc2UgRXJyb3JDb2RlOjpVbmtub3duQ29tbWFuZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oIGIvU291cmNlL1dlYkRy
aXZlci9Db21tYW5kUmVzdWx0LmgKaW5kZXggZjE2MmQ0ZTI4YmYuLjc5NThiNDQ3Mzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL0NvbW1hbmRSZXN1bHQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFNlc3Npb25Ob3RDcmVhdGVkLAogICAgICAgICBTdGFsZUVsZW1lbnRSZWZlcmVuY2UsCiAgICAg
ICAgIFRpbWVvdXQsCisgICAgICAgIFVuYWJsZVRvQ2FwdHVyZVNjcmVlbiwKICAgICAgICAgVW5l
eHBlY3RlZEFsZXJ0T3BlbiwKICAgICAgICAgVW5rbm93bkNvbW1hbmQsCiAgICAgICAgIFVua25v
d25FcnJvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGFjYjZiZGMwNGIyLi4xOGI2OWE4MzQ3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xOTk3LDQgKzE5OTcsMzkgQEAgdm9pZCBTZXNzaW9uOjpz
ZW5kQWxlcnRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4KICAgICB9KTsKIH0KIAordm9pZCBTZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gZWxlbWVudElELCBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNjcm9sbElu
dG9WaWV3LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmICghbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6Tm9TdWNoV2luZG93KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoYW5k
bGVVc2VyUHJvbXB0cyhbdGhpcywgZWxlbWVudElELCBzY3JvbGxJbnRvVmlldywgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRl
cnMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBwYXJhbWV0ZXJzLT5zZXRT
dHJpbmcoQVNDSUlMaXRlcmFsKCJoYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52
YWx1ZSgpKTsKKyAgICAgICAgaWYgKG1fY3VycmVudEJyb3dzaW5nQ29udGV4dCkKKyAgICAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImZyYW1lSGFuZGxlIiksIG1f
Y3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICAgICAgaWYgKGVsZW1lbnRJRCkK
KyAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm5vZGVIYW5k
bGUiKSwgZWxlbWVudElELnZhbHVlKCkpOworICAgICAgICBpZiAoc2Nyb2xsSW50b1ZpZXcudmFs
dWVfb3IoZmFsc2UpKQorICAgICAgICAgICAgcGFyYW1ldGVycy0+c2V0Qm9vbGVhbihBU0NJSUxp
dGVyYWwoInNjcm9sbEludG9WaWV3SWZOZWVkZWQiKSwgdHJ1ZSk7CisgICAgICAgIG1faG9zdC0+
c2VuZENvbW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJ0YWtlU2NyZWVuc2hvdCIpLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9z
dDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJl
c3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBkYXRhOworICAgICAgICAgICAgaWYgKCFyZXNw
b25zZS5yZXNwb25zZU9iamVjdC0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZGF0YSIpLCBkYXRh
KSkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3duRXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKEluc3BlY3RvclZhbHVlOjpjcmVhdGUoZGF0YSkpKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkRyaXZlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViRHJpdmVyL1Nl
c3Npb24uaAppbmRleCA3Zjk2ZjM5NjBhZS4uNjhjYWU3ZWI5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCkBA
IC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWNjZXB0QWxlcnQoRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBnZXRBbGVydFRleHQoRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBzZW5kQWxlcnRUZXh0KGNv
bnN0IFN0cmluZyYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZv
aWQgdGFrZVNjcmVlbnNob3Qoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVsZW1lbnRJRCwgc3RkOjpv
cHRpb25hbDxib29sPiBzY3JvbGxJbnRvVmlldywgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJik7CiAKIHByaXZhdGU6CiAgICAgU2Vzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8U2Vzc2lv
bkhvc3Q+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNl
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTJhOGY4
ZjRkMGYuLjkwYTRkZjliZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZl
clNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAK
QEAgLTE1OCw2ICsxNTgsMTAgQEAgY29uc3QgV2ViRHJpdmVyU2VydmljZTo6Q29tbWFuZCBXZWJE
cml2ZXJTZXJ2aWNlOjpzX2NvbW1hbmRzW10gPSB7CiAgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIv
c2Vzc2lvbi8kc2Vzc2lvbklkL2FsZXJ0L3RleHQiLCAmV2ViRHJpdmVyU2VydmljZTo6Z2V0QWxl
cnRUZXh0IH0sCiAgICAgeyBIVFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9h
bGVydC90ZXh0IiwgJldlYkRyaXZlclNlcnZpY2U6OnNlbmRBbGVydFRleHQgfSwKIAorICAgIHsg
SFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9zY3JlZW5zaG90IiwgJldlYkRy
aXZlclNlcnZpY2U6OnRha2VTY3JlZW5zaG90IH0sCisgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIv
c2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGVsZW1lbnRJZC9zY3JlZW5zaG90IiwgJldlYkRy
aXZlclNlcnZpY2U6OnRha2VFbGVtZW50U2NyZWVuc2hvdCB9LAorCisKICAgICB7IEhUVFBNZXRo
b2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kZWxlbWVudElkL2Rpc3BsYXll
ZCIsICZXZWJEcml2ZXJTZXJ2aWNlOjppc0VsZW1lbnREaXNwbGF5ZWQgfSwKIH07CiAKQEAgLTE1
MDcsNCArMTUxMSw0NSBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnNlbmRBbGVydFRleHQoUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdAogICAgIH0pOwogfQogCit2
b2lkIFdlYkRyaXZlclNlcnZpY2U6OnRha2VTY3JlZW5zaG90KFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICAvLyDCpzE5LjEgVGFrZSBTY3JlZW5zaG90LgorICAgIC8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCN0YWtl
LXNjcmVlbnNob3QKKyAgICBhdXRvIHNlc3Npb24gPSBmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRo
RXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBpZiAoIXNlc3Npb24p
CisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPndhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZShbc2Vzc2lvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1
bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJl
c3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNlc3Npb24t
PnRha2VTY3JlZW5zaG90KHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRHJpdmVyU2VydmljZTo6dGFr
ZUVsZW1lbnRTY3JlZW5zaG90KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICAvLyDCpzE5LjIgVGFrZSBFbGVtZW50IFNjcmVlbnNob3QuCisgICAgLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sI3Rha2UtZWxlbWVudC1z
Y3JlZW5zaG90CisgICAgYXV0byBzZXNzaW9uID0gZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVy
cm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgaWYgKCFzZXNzaW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGVsZW1lbnRJRCA9IGZpbmRFbGVtZW50T3JDb21w
bGV0ZVdpdGhFcnJvcigqcGFyYW1ldGVycywgY29tcGxldGlvbkhhbmRsZXIpOworICAgIGlmICgh
ZWxlbWVudElEKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHNjcm9sbEludG9WaWV3ID0g
dHJ1ZTsKKyAgICBwYXJhbWV0ZXJzLT5nZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgic2Nyb2xsIiks
IHNjcm9sbEludG9WaWV3KTsKKworICAgIHNlc3Npb24tPndhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZShbc2Vzc2lvbiwgZWxlbWVudElELCBzY3JvbGxJbnRvVmlldywgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIHNlc3Npb24tPnRha2VTY3JlZW5zaG90KGVsZW1lbnRJRC52YWx1
ZSgpLCBzY3JvbGxJbnRvVmlldywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0p
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJEcml2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5oIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2
aWNlLmgKaW5kZXggMmE2NTU5M2ZjMDYuLjBlMDJjZjJhNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRy
aXZlclNlcnZpY2UuaApAQCAtMTA5LDYgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhY2Nl
cHRBbGVydChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZ2V0QWxlcnRUZXh0KFJlZlB0cjxJ
bnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJik7CiAgICAgdm9pZCBzZW5kQWxlcnRUZXh0KFJlZlB0cjxJbnNwZWN0b3I6Okluc3Bl
Y3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAg
dm9pZCB0YWtlU2NyZWVuc2hvdChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgdGFrZUVsZW1l
bnRTY3JlZW5zaG90KFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAKICAgICBzdGF0aWMgQ2FwYWJpbGl0aWVz
IHBsYXRmb3JtQ2FwYWJpbGl0aWVzKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9y
T2JqZWN0PiBwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0JiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZGRkMzkyMGRlNDEuLjNiOTU4NDI4NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisy
MDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBzY3JlZW4gY2FwdHVyZSBjb21tYW5kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NjE1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICBFeHRlbmQgdGFrZVNjcmVl
bnNob3QgY29tbWFuZCB0byBvcHRpb25hbGx5IHRha2UgYSBzY3JlZW5zaG90IG9mIGFuIGVsZW1l
bnQuIFdoZW4gbm8gZWxlbWVudCBpcyBwcm92aWRlZCwgdGhlCisgICAgICAgIHNjcmVlbnNob3Qg
aXMgdGFrZW4gZnJvbSB0aGUgcGFnZSB2aXNpYmxlIGFyZWEuCisKKyAgICAgICAgKiBQbGF0Zm9y
bUdUSy5jbWFrZTogQWRkIFdlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwIHRvIGNvbXBpbGF0
aW9uLgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb246IEFkZCBTY3JlZW5zaG90RXJyb3IgYW5k
IHNldmVyYWwgb3B0aW9uYWwgcGFyYW1ldGVycyB0byB0YWtlU2NyZWVuc2hvdC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdCk6IFJlY2VpdmUg
b3B0aW9uYWwgZnJhbWUsIG5vZGUgYW5kIHNjcm9sbEludG9WaWV3IHRoYXQgYXJlCisgICAgICAg
IGNoZWNrZWQgYW5kIHBhc3NlZCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNhaXJvLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2
NEVuY29kZWRQTkdEYXRhKTogQ2Fpcm8gaW1wbGVtZW50YXRpb24uCisgICAgICAgICogVUlQcm9j
ZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OnNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QpOiBIZWxwZXIgdG8gZ2V0
IHRoZSByZWN0YW5nbGUgdG8gYmUgdXNlZCBmb3IgYSBzY3JlZW5zaG90LgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCk6IElmIGEgbm9k
ZSBoYW5kbGUgaXMgcHJvdmlkZWQgdGFrZSB0aGUgc25hcHNob3QgdXNpbmcgdGhlCisgICAgICAg
IGVsZW1lbnQgcmVjdGFuZ2xlLCBvdGhlcndpc2UgdXNlIHRoZSBwYWdlIHZpc2libGUgY29udGVu
dCByZWN0YW5nbGUuCisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjogVXBkYXRlIFRha2VTbmFwc2hvdCBtZXNz
YWdlLgorCiAyMDE3LTA4LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBBdXRvbWF0aW9uOiB0YWtlU2NyZWVuc2hvdCBzaG91bGQgdXNlIHRo
ZSB2aXNpYmxlIGNvbnRlbnQgcmVjdCBub3QgdGhlIGRvY3VtZW50IHJlY3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCmluZGV4IGQzNDNlNmZmYzgzLi4zZmI1OGM2OGM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xOTEsNiArMTkxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxlLmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwCiAKKyAgICBVSVByb2Nl
c3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNhaXJvLmNwcAorCiAgICAg
VUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcAogCiAg
ICAgVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdQRS5jbWFrZQppbmRleCBhNThjMDVjZTA2Zi4uMjExZGQ0MDQyNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtMTk3LDYgKzE5Nyw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09V
UkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXdXUEUuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKIAorICAgIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2Nh
aXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwCisKICAgICBVSVByb2Nlc3MvTGF1bmNo
ZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKIAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3Vu
aXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXggZDJmOTI5NDUxMTMuLjcxZTEyMjMy
ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbgpAQCAtNjAsNyArNjAsOCBAQAogICAgICAgICAgICAgICAgICJJbnZhbGlkUGFy
YW1ldGVyIiwKICAgICAgICAgICAgICAgICAiSW52YWxpZFNlbGVjdG9yIiwKICAgICAgICAgICAg
ICAgICAiRWxlbWVudE5vdEludGVyYWN0YWJsZSIsCi0gICAgICAgICAgICAgICAgIkVsZW1lbnRO
b3RTZWxlY3RhYmxlIgorICAgICAgICAgICAgICAgICJFbGVtZW50Tm90U2VsZWN0YWJsZSIsCisg
ICAgICAgICAgICAgICAgIlNjcmVlbnNob3RFcnJvciIKICAgICAgICAgICAgIF0KICAgICAgICAg
fSwKICAgICAgICAgewpAQCAtMzc3LDkgKzM3OCwxMiBAQAogICAgICAgICB9LAogICAgICAgICB7
CiAgICAgICAgICAgICAibmFtZSI6ICJ0YWtlU2NyZWVuc2hvdCIsCi0gICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiVGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcGFnZSBpbiBhIGJy
b3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUYWtlIGEgc2Ny
ZWVuc2hvdCBvZiB0aGUgY3VycmVudCBwYWdlIG9yIGdpdmVuIGVsZW1lbnQgaW4gYSBicm93c2lu
ZyBjb250ZXh0LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtl
IGEgc2NyZWVuc2hvdCBvZi4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIs
ICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFu
ZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4iIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1l
SGFuZGxlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIHRoZSBlbGVtZW50LiBUaGUgbWFpbiBmcmFtZSBpcyB1
c2VkIGlmIHRoaXMgcGFyYW1ldGVyIGlzIGVtcHR5IHN0cmluZyBvciBleGNsdWRlZC4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSGFuZGxlIiwgIiRyZWYiOiAiTm9kZUhhbmRs
ZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIG9mIHRoZSBl
bGVtZW50IHRvIHRha2UgYSBzY3JlZW5zaG90IG9mLiBUaGUgYnJvd3NpbmcgY29udGV4dCBkb2N1
bWVudCBlbGVtZW50IGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgZXhjbHVkZWQuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCIsICJ0eXBl
IjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIGVs
ZW1lbnQgc2hvdWxkIGJlIHNjcm9sbGVkIGludG8gdmlldyBiZWZvcmUgdGFraW5nIHRoZSBzY3Jl
ZW5zaG90LiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQTkcpLiIgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcAppbmRleCAyZGQ3ZDlkM2Y2Mi4uOGQ3ODk4YzkzODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwCkBAIC0xMzUxLDE2ICsxMzUxLDIzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsCiAj
ZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnRha2VTY3JlZW5zaG90KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBo
YW5kbGUsIFJlZjxUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxl
LCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsTm9kZUhhbmRsZSwgY29uc3QgYm9vbCogb3B0aW9uYWxT
Y3JvbGxJbnRvVmlld0lmTmVlZGVkLCBSZWY8VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4mJiBjYWxs
YmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUo
aGFuZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxG
cmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGlmICghZnJhbWVJRCkKKyAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CisKKyAgICBib29sIHNj
cm9sbEludG9WaWV3SWZOZWVkZWQgPSBvcHRpb25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQgPyAq
b3B0aW9uYWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkIDogZmFsc2U7CisgICAgU3RyaW5nIG5vZGVI
YW5kbGUgPSBvcHRpb25hbE5vZGVIYW5kbGUgPyAqb3B0aW9uYWxOb2RlSGFuZGxlIDogZW1wdHlT
dHJpbmcoKTsKKwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX25leHRTY3JlZW5zaG90Q2Fs
bGJhY2tJRCsrOwogICAgIG1fc2NyZWVuc2hvdENhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgV1RG
TW92ZShjYWxsYmFjaykpOwogCi0gICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Oldl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5zaG90KHBhZ2UtPnBhZ2VJRCgpLCBj
YWxsYmFja0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5zaG90KHBhZ2UtPnBhZ2VJRCgpLCBmcmFt
ZUlELnZhbHVlKCksIG5vZGVIYW5kbGUsIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGNhbGxiYWNr
SUQpLCAwKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlkVGFrZVNjcmVlbnNo
b3QodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YUhhbmRsZSwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpCkBAIC0xMzg5LDcgKzEzOTYs
NyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRUYWtlU2NyZWVuc2hvdCh1aW50NjRf
dCBjYWxsYmFja0lELCBjb25zdCBTaGFyZWFibAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlSW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
QnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJzKQogewogfQotI2VuZGlmIC8vICFQTEFURk9STShN
QUMpCisjZW5kaWYgLy8gIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKEdUSykKIAogI2lmICFQ
TEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUsIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkpCkBAIC0xMzk5LDExICsxNDA2LDEzIEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2Vi
UGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiwgY29uc3QgU3RyaW5nJikKIHsK
IH0KKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShHVEspCiAKKyNpZiAh
UExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0FJUk8pCiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gV2Vi
QXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKQogewotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQotI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKKyNlbmRp
ZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0FJUk8pCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDUyNmI1OTNjYjkzLi4wZDMzZTk2NWQzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uaApAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1l
SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rv
ckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRXhwZWN0c0ltcGxpY2l0Q2Fs
bGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25hbENhbGxiYWNrVGltZW91dCwgUmVmPElu
c3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6RXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtTW91
c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5k
bGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiByZXF1ZXN0ZWRQb3NpdGlvbiwg
Y29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUludGVyYWN0aW9u
LCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBrZXlNb2RpZmllcnMsIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQb2ludD4mIHVwZGF0ZWRQb3NpdGlvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Oklu
c3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlv
bnNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0YWtlU2NyZWVuc2hvdChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIFJlZjxJbnNwZWN0b3I6OkF1
dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OlRha2VTY3JlZW5zaG90Q2FsbGJhY2s+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVI
YW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxOb2RlSGFuZGxlLCBjb25zdCBib29sKiBvcHRp
b25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQsIFJlZjxUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3Qg
U3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBpbnQqIG9wdGlvbmFsT3JkaW5hbCwg
Y29uc3QgU3RyaW5nKiBvcHRpb25hbE5hbWUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxOb2RlSGFu
ZGxlLCBSZWY8UmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZyYW1l
SGFuZGxlLCBSZWY8UmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlQ2FsbGJhY2s+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZyYW1l
SGFuZGxlLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsU2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgY29uc3QgYm9vbCogdXNlVmlld3BvcnRDb29yZGluYXRlcywg
UmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6Q29tcHV0
ZUVsZW1lbnRMYXlvdXRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fp
cm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRv
bWF0aW9uU2Vzc2lvbkNhaXJvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uODBjMmYyZDZjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2NhaXJvL1dlYkF1dG9tYXRpb25TZXNzaW9uQ2Fpcm8uY3BwCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9u
LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CisjaW5jbHVkZSA8Y2Fpcm8v
Y2Fpcm8uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBSZWZQdHI8U2hhcmVh
YmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIGlmICghYml0bWFwKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBzdXJmYWNlID0gYml0bWFwLT5jcmVh
dGVDYWlyb1N1cmZhY2UoKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gcG5nRGF0YTsKKyAgICBjYWly
b19zdXJmYWNlX3dyaXRlX3RvX3BuZ19zdHJlYW0oc3VyZmFjZS5nZXQoKSwgW10odm9pZCogdXNl
ckRhdGEsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgLT4gY2Fp
cm9fc3RhdHVzX3QgeworICAgICAgICBhdXRvKiBwbmdEYXRhID0gc3RhdGljX2Nhc3Q8VmVjdG9y
PHVuc2lnbmVkIGNoYXI+Kj4odXNlckRhdGEpOworICAgICAgICBwbmdEYXRhLT5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIENBSVJPX1NUQVRVU19TVUNDRVNTOworICAgIH0s
ICZwbmdEYXRhKTsKKworICAgIGlmIChwbmdEYXRhLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBiYXNlNjRFbmNvZGUocG5nRGF0YSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5j
cHAKaW5kZXggOGY2ODA5ZWZjYzAuLjBkNDIxNGEwMzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlv
blNlc3Npb25HdGsuY3BwCkBAIC0zMDksMTEgKzMwOSw1IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNv
bnN0CiAgICAgfSB3aGlsZSAoKnApOwogfQogCi1zdGQ6Om9wdGlvbmFsPFN0cmluZz4gV2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcywg
cG9zc2libHkgbW92aW5nIGl0IHRvIGEgV2ViQXV0b21hdGlvblNlc3Npb25DYWlyby5jcHAgZmls
ZS4KLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBmMTFmNjUwODIxNy4uOWRk
NGQ1MmJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCkBAIC01Myw2ICs1
Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MU2VsZWN0RWxlbWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSlNFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlbmRlckVsZW1lbnQuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYzMyw3ICs2MzQsMjMgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50KHVpbnQ2NF90IHBhZ2VJRCwgdWlu
dDY0X3QgZnIKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkU2VsZWN0T3B0
aW9uRWxlbWVudChjYWxsYmFja0lELCB7IH0pLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCitzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3RGb3JTY3JlZW5z
aG90KFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYg
KGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgICAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IHRvcExldmVsUmVj
dDsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OnNuYXBwZWRJbnRSZWN0KGVsZW1lbnQtPnJlbmRl
cmVyKCktPnBhaW50aW5nUm9vdFJlY3QodG9wTGV2ZWxSZWN0KSk7CisgICAgfQorCisgICAgaWYg
KGF1dG8qIGZyYW1lVmlldyA9IHBhZ2UubWFpbkZyYW1lVmlldygpKQorICAgICAgICByZXR1cm4g
ZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKworICAgIHJldHVybiB7IH07Cit9CisK
K3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QodWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFNoYXJlYWJsZUJp
dG1hcDo6SGFuZGxlIGhhbmRsZTsKIApAQCAtNjQ0LDIzICs2NjEsNDEgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGNhbGxiYWMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkNvcmU6OkZyYW1l
VmlldyogZnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lVmlldygpOwotICAgIGlmICghZnJhbWVW
aWV3KSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2Ny
ZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygpKSwgMCk7CisgICAgV2ViRnJhbWUq
IGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNv
cmVGcmFtZSgpKSB7CisgICAgICAgIFN0cmluZyBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RG
b3VuZCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2Ny
ZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIGZyYW1lTm90Rm91bmRFcnJvclR5cGUpLCAwKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RS
ZWN0ID0gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKyAgICBXZWJDb3JlOjpFbGVt
ZW50KiBjb3JlRWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKCFub2RlSGFuZGxlLmlzRW1wdHko
KSkgeworICAgICAgICBjb3JlRWxlbWVudCA9IGVsZW1lbnRGb3JOb2RlSGFuZGxlKCpmcmFtZSwg
bm9kZUhhbmRsZSk7CisgICAgICAgIGlmICghY29yZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIFN0
cmluZyBub2RlTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpOb2RlTm90Rm91bmQpOworICAgICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhh
bmRsZSwgbm9kZU5vdEZvdW5kRXJyb3JUeXBlKSwgMCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBTdHJpbmcgc2NyZWVuc2hvdEVycm9yVHlwZSA9IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OlNjcmVlbnNob3RF
cnJvcik7CisgICAgV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3QgPSBzbmFwc2hvdFJlY3RG
b3JTY3JlZW5zaG90KCpwYWdlLCBjb3JlRWxlbWVudCk7CiAgICAgaWYgKHNuYXBzaG90UmVjdC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRh
a2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgU3RyaW5nKCkpLCAwKTsKKyAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNr
SUQsIGhhbmRsZSwgc2NyZWVuc2hvdEVycm9yVHlwZSksIDApOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgaWYgKGNvcmVFbGVtZW50ICYmIHNjcm9sbEludG9WaWV3SWZOZWVkZWQpCisg
ICAgICAgIGNvcmVFbGVtZW50LT5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKGZhbHNlKTsKKwogICAg
IFJlZlB0cjxXZWJJbWFnZT4gaW1hZ2UgPSBwYWdlLT5zY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25z
KHNuYXBzaG90UmVjdCwgMSwgU25hcHNob3RPcHRpb25zU2hhcmVhYmxlKTsKLSAgICBpZiAoaW1h
Z2UpCi0gICAgICAgIGltYWdlLT5iaXRtYXAoKS5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRN
ZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFj
a0lELCBoYW5kbGUsIHNjcmVlbnNob3RFcnJvclR5cGUpLCAwKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVu
c2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygpKSwgMCk7ICAgIAorICAgIGltYWdlLT5i
aXRtYXAoKS5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVl
bnNob3QoY2FsbGJhY2tJRCwgaGFuZGxlLCB7IH0pLCAwKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5oCmluZGV4IDg0NTY3NGJkNDMxLi40Yjg4MmY0Yjc1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuaApAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXNG
cmFtZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgY29tcHV0
ZUVsZW1lbnRMYXlvdXQodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
bm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIHVzZVZpZXdwb3J0
Q29vcmRpbmF0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgc2VsZWN0T3B0aW9u
RWxlbWVudCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIHRha2VTY3JlZW5zaG90KHVpbnQ2
NF90IHBhZ2VJRCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCB0YWtlU2NyZWVuc2hv
dCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZv
aWQgZ2V0Q29va2llc0ZvckZyYW1lKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxldGVDb29raWUodWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDlkNDEzMWM4NWZhLi4zN2I2NjU0YTE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNCw3ICszNCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgewogCiAgICAgU2VsZWN0T3B0aW9uRWxlbWVudCh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCB1aW50
NjRfdCBjYWxsYmFja0lEKQogCi0gICAgVGFrZVNjcmVlbnNob3QodWludDY0X3QgcGFnZUlELCB1
aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFRha2VTY3JlZW5zaG90KHVpbnQ2NF90IHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAgIEdldENvb2tpZXNGb3JGcmFtZSh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAg
ICAgRGVsZXRlQ29va2llKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IGNvb2tpZU5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>