<?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>176664</bug_id>
          
          <creation_ts>2017-09-10 00:09:19 -0700</creation_ts>
          <short_desc>[iOS DnD] Elements in the DOM with the `draggable` attribute should be draggable</short_desc>
          <delta_ts>2017-09-11 12:06:05 -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>WebKit2</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>176672</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1347219</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-10 00:09:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/32596156&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347221</commentid>
    <comment_count>1</comment_count>
      <attachid>320385</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-10 00:27:51 -0700</bug_when>
    <thetext>Created attachment 320385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347528</commentid>
    <comment_count>2</comment_count>
      <attachid>320385</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-11 12:06:04 -0700</bug_when>
    <thetext>Comment on attachment 320385
Patch

Clearing flags on attachment: 320385

Committed r221870: &lt;http://trac.webkit.org/changeset/221870&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347529</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-11 12:06:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320385</attachid>
            <date>2017-09-10 00:27:51 -0700</date>
            <delta_ts>2017-09-11 12:06:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176664-20170910002750.patch</filename>
            <type>text/plain</type>
            <size>41949</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4MGE0OTI0MzU3OGQ5M2Rk
ODAxMTljNDUxY2E5YWY1Mzk3YzQyMzUuLmYxNDJlNmNhN2EwYTE5MjVjMGMxMzg4MjNkYmYyMzc2
ZTQ5ZDdlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTctMDktMTAgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBEbkRdIEVsZW1l
bnRzIGluIHRoZSBET00gd2l0aCB0aGUgYGRyYWdnYWJsZWAgYXR0cmlidXRlIHNob3VsZCBiZSBk
cmFnZ2FibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjY2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTYxNTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZXMgYSBzaW1wbGUgYWRqdXN0
bWVudCBpbiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OnByZXZpZXdGb3JEcmFnSXRlbSB0byBy
ZXNwZWN0IHRoZSBkcmFnIGltYWdlIHN1cHBsaWVkIHRvCisgICAgICAgIHRoZSBVSSBwcm9jZXNz
IGR1cmluZyBhICJESFRNTCItZGVmaW5lZCBkcmFnIChpLmUuIERyYWdTb3VyY2VBY3Rpb25ESFRN
TCkuCisKKyAgICAgICAgVGVzdDogRGF0YUludGVyYWN0aW9uVGVzdHMuQ2FuU3RhcnREcmFnT25E
aXZXaXRoRHJhZ2dhYmxlQXR0cmlidXRlCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFj
dGlvbkVudGVyZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVE
YXRhSW50ZXJhY3Rpb25VcGRhdGVkOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3NpbXVsYXRlRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lv
bkRpZEVuZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZVdpbGxC
ZWdpbkRhdGFJbnRlcmFjdGlvbldpdGhTZXNzaW9uOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3NpbXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9zaW11bGF0ZUl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOmF0TG9jYXRpb246
Y29tcGxldGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZVBy
ZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOmNvbXBsZXRpb246XSk6IERlbGV0ZWQuCisK
KyAgICAgICAgUmVtb3ZlIGFsbCAtX3NpbXVsYXRlKjogdGVzdGluZyBoZWxwZXJzIG9uIFdLV2Vi
Vmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzaG91bGRVc2VEcmFnSW1hZ2VUb0NyZWF0ZVByZXZpZXdGb3JEcmFn
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkVXNlVGV4dEluZGljYXRvclRvQ3JlYXRl
UHJldmlld0ZvckRyYWdTb3VyY2UpOgorCisgICAgICAgIEFkZCBzaG91bGRVc2VEcmFnSW1hZ2VU
b0NyZWF0ZVByZXZpZXdGb3JEcmFnU291cmNlLCB3aGljaCByZXR1cm5zIFlFUyB3aGVuIGRyYWdn
aW5nIGFuIGltYWdlIG9yIERIVE1MLWRlZmluZWQKKyAgICAgICAgZHJhZ2dhYmxlIGVsZW1lbnQg
YW5kIHRoZSBkcmFnIGltYWdlIGV4aXN0cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBwcmV2aWV3Rm9y
RHJhZ0l0ZW0gd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIGRyYWcKKyAgICAgICAgcHJldmlldyBmb3Ig
YSBnaXZlbiBVSURyYWdJdGVtLgorCisgICAgICAgIChXZWJLaXQ6OkRyYWdEcm9wSW50ZXJhY3Rp
b25TdGF0ZTo6cHJldmlld0ZvckRyYWdJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6c2hv
dWxkVXNlVGV4dEluZGljYXRvclRvQ3JlYXRlUHJldmlld0ZvckRyYWdBY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rp
b25VcGRhdGVkOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaW11bGF0
ZURhdGFJbnRlcmFjdGlvbkVuZGVkOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lv
bkRpZEVuZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2ltdWxhdGVX
aWxsQmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoU2Vzc2lvbjpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOl0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rp
b25TZXNzaW9uOmNvbXBsZXRpb246XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3NpbXVsYXRlSXRlbXNGb3JBZGRpbmdUb1Nlc3Npb246YXRMb2NhdGlvbjpjb21wbGV0aW9u
Ol0pOiBEZWxldGVkLgorCisgICAgICAgIFJlbW92ZSBhbGwgLV9zaW11bGF0ZSo6IHRlc3Rpbmcg
aGVscGVycyBvbiBXS0NvbnRlbnRWaWV3LgorCiAyMDE3LTA5LTA3ICBGcmVkZXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICAgTW92ZSBtb3JlIGNvZGUgZnJvbSBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TIHRvIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IGMzMGE2Nzc0YjM3Y2Q1MzU2NzMxMTEwYzRjMjZkYTYxMGM2YTk0MmUuLjRj
YWY2NjM1YTNmZWQyYzJmNGVkYTk5Y2EwYzhhZTIzZDcwMTZkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTc5Myw3MyArNTc5Myw2
IEBAIC0gKHZvaWQpX2V4ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21tYW5kIGFyZ3Vt
ZW50OihOU1N0cmluZyAqKWFyZ3VtZW50IGNvCiAKICNpZiBQTEFURk9STShJT1MpCiAKLS0gKHZv
aWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDooaWQpaW5mbwotewotI2lmIEVOQUJM
RShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uRW50ZXJlZDppbmZvXTsKLSNlbmRpZgotfQotCi0tIChOU1VJbnRlZ2VyKV9zaW11bGF0
ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6KGlkKWluZm8KLXsKLSNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKLSAgICByZXR1cm4gW19jb250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rp
b25VcGRhdGVkOmluZm9dOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi0tICh2
b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246KGlkKWluZm8KLXsK
LSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0
ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246aW5mb107Ci0jZW5kaWYKLX0KLQotLSAo
dm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbmRlZDooaWQpaW5mbwotewotI2lmIEVOQUJM
RShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uRW5kZWQ6aW5mb107Ci0jZW5kaWYKLX0KLQotLSAodm9pZClfc2ltdWxhdGVEYXRhSW50
ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uCi17Ci0jaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCi0gICAgW19jb250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNz
aW9uRGlkRW5kOnNlc3Npb25dOwotI2VuZGlmCi19Ci0KLS0gKHZvaWQpX3NpbXVsYXRlV2lsbEJl
Z2luRGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246KGlkKXNlc3Npb24KLXsKLSNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0ZVdpbGxCZWdpbkRh
dGFJbnRlcmFjdGlvbldpdGhTZXNzaW9uOnNlc3Npb25dOwotI2VuZGlmCi19Ci0KLS0gKE5TQXJy
YXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uCi17Ci0jaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgcmV0dXJuIFtfY29udGVudFZpZXcgX3NpbXVsYXRlZEl0
ZW1zRm9yU2Vzc2lvbjpzZXNzaW9uXTsKLSNlbHNlCi0gICAgcmV0dXJuIEBbIF07Ci0jZW5kaWYK
LX0KLQotLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lv
biBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJh
eSAqKSljb21wbGV0aW9uCi17Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19j
b250ZW50VmlldyBfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjpzZXNzaW9uIGF0TG9j
YXRpb246bG9jYXRpb24gY29tcGxldGlvbjpjb21wbGV0aW9uXTsKLSNlbmRpZgotfQotCi0tICh2
b2lkKV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOihpZClzZXNzaW9u
IGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbgotewotI2lmIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlUHJlcGFyZUZvckRh
dGFJbnRlcmFjdGlvblNlc3Npb246c2Vzc2lvbiBjb21wbGV0aW9uOmNvbXBsZXRpb25dOwotI2Vu
ZGlmCi19Ci0KIC0gKENHUmVjdClfZHJhZ0NhcmV0UmVjdAogewogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAppbmRleCA4NDBiZWM3M2E0ZTMzMmE5ZTdlOTFjNjk0ZDZmMmVkYTY0NmY3
NGE0Li5jNmMzYmNiYzMyM2E0YzlhYmFkMTgxOWFiNDVhMjI3OGUzMDJmNGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
QEAgLTM3OCwxNiArMzc4LDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLUmVj
dEVkZ2UpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1iZXIgKl9zdGFi
bGVTdGF0ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIAogLSAoTlNEaWN0
aW9uYXJ5ICopX3Byb3BlcnRpZXNPZkxheWVyV2l0aElEOih1bnNpZ25lZCBsb25nIGxvbmcpbGF5
ZXJJRCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci0KLS0gKHZvaWQpX3NpbXVs
YXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDooaWQpaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7Ci0tIChOU1VJbnRlZ2VyKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0
ZWQ6KGlkKWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClf
c2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25QZXJmb3JtT3BlcmF0aW9uOihpZClpbmZvIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0
aW9uRW5kZWQ6KGlkKWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAo
dm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NpbXVsYXRlV2lsbEJl
Z2luRGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOwotLSAoTlNBcnJheSAqKV9zaW11bGF0ZWRJdGVtc0ZvclNlc3Np
b246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9p
ZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9u
OihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0
aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NpbXVsYXRl
UHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2lu
dClsb2NhdGlvbjsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2Ry
YWdDYXJldFJlY3QgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUu
bW0KaW5kZXggZTUyZGJhOTk1YmQ1YmExYTg4N2YzYWU0Zjg4ZjkxNmQ0MjkzMThiNS4uY2QzMGQy
YmZhZjc4MWIyZjgxZmQ0ZTRkYTE2OGUyMmRhMjZhZWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tCkBAIC05
NCwxMyArOTQsMjQgQEAgc3RhdGljIFJldGFpblB0cjxVSUltYWdlPiB1aUltYWdlRm9ySW1hZ2Uo
SW1hZ2UqIGltYWdlKQogICAgIHJldHVybiBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdp
dGhDR0ltYWdlOmNnSW1hZ2UuZ2V0KCldKTsKIH0KIAotc3RhdGljIGJvb2wgc2hvdWxkVXNlVGV4
dEluZGljYXRvclRvQ3JlYXRlUHJldmlld0ZvckRyYWdBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiBh
Y3Rpb24pCitzdGF0aWMgYm9vbCBzaG91bGRVc2VEcmFnSW1hZ2VUb0NyZWF0ZVByZXZpZXdGb3JE
cmFnU291cmNlKGNvbnN0IERyYWdTb3VyY2VTdGF0ZSYgc291cmNlKQogewotICAgIGlmIChhY3Rp
b24gJiAoRHJhZ1NvdXJjZUFjdGlvbkxpbmsgfCBEcmFnU291cmNlQWN0aW9uU2VsZWN0aW9uKSkK
KyAgICBpZiAoIXNvdXJjZS5pbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIHNvdXJjZS5hY3Rpb24gJiAoRHJhZ1NvdXJjZUFjdGlvbkRIVE1MIHwgRHJhZ1NvdXJjZUFj
dGlvbkltYWdlKTsKK30KKworc3RhdGljIGJvb2wgc2hvdWxkVXNlVGV4dEluZGljYXRvclRvQ3Jl
YXRlUHJldmlld0ZvckRyYWdTb3VyY2UoY29uc3QgRHJhZ1NvdXJjZVN0YXRlJiBzb3VyY2UpCit7
CisgICAgaWYgKCFzb3VyY2UuaW5kaWNhdG9yRGF0YSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKHNvdXJjZS5hY3Rpb24gJiAoRHJhZ1NvdXJjZUFjdGlvbkxpbmsgfCBEcmFnU291
cmNlQWN0aW9uU2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICNpZiBFTkFCTEUo
QVRUQUNITUVOVF9FTEVNRU5UKQotICAgIGlmIChhY3Rpb24gJiBEcmFnU291cmNlQWN0aW9uQXR0
YWNobWVudCkKKyAgICBpZiAoc291cmNlLmFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25BdHRhY2ht
ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCkBAIC0xNDgsMTIgKzE1OSwxMiBA
QCBVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKkRyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6cHJldmll
d0ZvckRyYWdJdGVtKFVJRHJhZ0l0ZW0gKgogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgYXV0
byYgc291cmNlID0gZm91bmRTb3VyY2UudmFsdWUoKTsKLSAgICBpZiAoKHNvdXJjZS5hY3Rpb24g
JiBEcmFnU291cmNlQWN0aW9uSW1hZ2UpICYmIHNvdXJjZS5pbWFnZSkgeworICAgIGlmIChzaG91
bGRVc2VEcmFnSW1hZ2VUb0NyZWF0ZVByZXZpZXdGb3JEcmFnU291cmNlKHNvdXJjZSkpIHsKICAg
ICAgICAgVmVjdG9yPEZsb2F0UmVjdD4gZW1wdHlDbGlwcGluZ1JlY3RzOwogICAgICAgICByZXR1
cm4gY3JlYXRlVGFyZ2V0ZWREcmFnUHJldmlldyhzb3VyY2UuaW1hZ2UuZ2V0KCksIGNvbnRlbnRW
aWV3LCBwcmV2aWV3Q29udGFpbmVyLCBzb3VyY2UuZWxlbWVudEJvdW5kcywgZW1wdHlDbGlwcGlu
Z1JlY3RzLCBuaWwpOwogICAgIH0KIAotICAgIGlmIChzaG91bGRVc2VUZXh0SW5kaWNhdG9yVG9D
cmVhdGVQcmV2aWV3Rm9yRHJhZ0FjdGlvbihzb3VyY2UuYWN0aW9uKSAmJiBzb3VyY2UuaW5kaWNh
dG9yRGF0YSkgeworICAgIGlmIChzaG91bGRVc2VUZXh0SW5kaWNhdG9yVG9DcmVhdGVQcmV2aWV3
Rm9yRHJhZ1NvdXJjZShzb3VyY2UpKSB7CiAgICAgICAgIGF1dG8gaW5kaWNhdG9yID0gc291cmNl
LmluZGljYXRvckRhdGEudmFsdWUoKTsKICAgICAgICAgYXV0byB0ZXh0SW5kaWNhdG9ySW1hZ2Ug
PSB1aUltYWdlRm9ySW1hZ2UoaW5kaWNhdG9yLmNvbnRlbnRJbWFnZS5nZXQoKSk7CiAgICAgICAg
IHJldHVybiBjcmVhdGVUYXJnZXRlZERyYWdQcmV2aWV3KHRleHRJbmRpY2F0b3JJbWFnZS5nZXQo
KSwgY29udGVudFZpZXcsIHByZXZpZXdDb250YWluZXIsIGluZGljYXRvci50ZXh0Qm91bmRpbmdS
ZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLCBpbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1Jl
Y3RDb29yZGluYXRlcywgW1VJQ29sb3IgY29sb3JXaXRoQ0dDb2xvcjpjYWNoZWRDR0NvbG9yKGlu
ZGljYXRvci5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggN2Rm
OWJkMjYxOGNlZDViMjYxNWNhYjU1OWI5MzlmNmI4ZmRhZmIwZi4uNmQ3YjFhMTJmMzMxZjU1NmUw
MjA4Zjg4Y2QyNDQ3ZmE4MjA1MDc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzI1LDI0ICszMjUsMTMg
QEAgRk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FD
VElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zdGFydERyYWc6KFJldGFpblB0cjxDR0ltYWdl
UmVmPilpbWFnZSBpdGVtOihjb25zdCBXZWJDb3JlOjpEcmFnSXRlbSYpaXRlbTsKIC0gKHZvaWQp
X2RpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGF0YT4pZGF0YTsKIC0gKHZvaWQpX2RpZENoYW5nZURhdGFJbnRlcmFjdGlv
bkNhcmV0UmVjdDooQ0dSZWN0KXByZXZpb3VzUmVjdCBjdXJyZW50UmVjdDooQ0dSZWN0KXJlY3Q7
Ci0KLS0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDooaWQpaW5mbzsKLS0g
KE5TVUludGVnZXIpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDooaWQpaW5mbzsKLS0g
KHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbjooaWQpaW5mbzsK
LS0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5kZWQ6KGlkKWluZm87Ci0tICh2b2lk
KV9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25EaWRFbmQ6KGlkKXNlc3Npb247Ci0tICh2
b2lkKV9zaW11bGF0ZVdpbGxCZWdpbkRhdGFJbnRlcmFjdGlvbldpdGhTZXNzaW9uOihpZClzZXNz
aW9uOwotLSAoTlNBcnJheSAqKV9zaW11bGF0ZWRJdGVtc0ZvclNlc3Npb246KGlkKXNlc3Npb247
Ci0tICh2b2lkKV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOihpZClz
ZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbjsKLS0gKHZvaWQp
X3NpbXVsYXRlSXRlbXNGb3JBZGRpbmdUb1Nlc3Npb246KGlkKXNlc3Npb24gYXRMb2NhdGlvbjoo
Q0dQb2ludClsb2NhdGlvbiBjb21wbGV0aW9uOih2b2lkKF4pKE5TQXJyYXkgKikpY29tcGxldGlv
bjsKICNlbmRpZgogCi0tICh2b2lkKV9zaW11bGF0ZUxvbmdQcmVzc0FjdGlvbkF0TG9jYXRpb246
KENHUG9pbnQpbG9jYXRpb247Ci0KIEBlbmQKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChX
S1Rlc3RpbmcpCiAKKy0gKHZvaWQpX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjoo
Q0dQb2ludClsb2NhdGlvbjsKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzoo
TlNJbnRlZ2VyKXJvd0luZGV4OwogLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50
ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggMTA2M2VlMjhkZmE5OTRiOTEwYTQxM2EwNzgzZDQ4OGI4MzkxMzc0OC4uMGY5ZDIxYzE3
ODE2N2E2NmNlZWI1MDA4OTZjMDY1OTQ2OTU5MTcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00ODIz
LDU0ICs0ODIzLDExIEBAIC0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlv
biAqKWludGVyYWN0aW9uIHNlc3Npb25EaWRFbmQ6KGlkIDxVSURyCiAgICAgX3BhZ2UtPmRyYWdF
bmRlZChyb3VuZGVkSW50UG9pbnQoY2xpZW50KSwgcm91bmRlZEludFBvaW50KGdsb2JhbCksIERy
YWdPcGVyYXRpb25Ob25lKTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gVW5pdCB0ZXN0aW5nIHN1cHBv
cnQKLQotLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClzZXNzaW9u
Ci17Ci0gICAgW3NlbGYgZHJvcEludGVyYWN0aW9uOl9kcm9wSW50ZXJhY3Rpb24uZ2V0KCkgc2Vz
c2lvbkRpZEVudGVyOnNlc3Npb25dOwotfQotCi0tIChOU1VJbnRlZ2VyKV9zaW11bGF0ZURhdGFJ
bnRlcmFjdGlvblVwZGF0ZWQ6KGlkKXNlc3Npb24KLXsKLSAgICByZXR1cm4gW3NlbGYgZHJvcElu
dGVyYWN0aW9uOl9kcm9wSW50ZXJhY3Rpb24uZ2V0KCkgc2Vzc2lvbkRpZFVwZGF0ZTpzZXNzaW9u
XS5vcGVyYXRpb247Ci19Ci0KLS0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5kZWQ6
KGlkKXNlc3Npb24KLXsKLSAgICBbc2VsZiBkcm9wSW50ZXJhY3Rpb246X2Ryb3BJbnRlcmFjdGlv
bi5nZXQoKSBzZXNzaW9uRGlkRW5kOnNlc3Npb25dOwotfQotCi0tICh2b2lkKV9zaW11bGF0ZURh
dGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246KGlkKXNlc3Npb24KLXsKLSAgICBbc2VsZiBk
cm9wSW50ZXJhY3Rpb246X2Ryb3BJbnRlcmFjdGlvbi5nZXQoKSBwZXJmb3JtRHJvcDpzZXNzaW9u
XTsKLX0KLQotLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihp
ZClzZXNzaW9uCi17Ci0gICAgW3NlbGYgZHJhZ0ludGVyYWN0aW9uOl9kcmFnSW50ZXJhY3Rpb24u
Z2V0KCkgc2Vzc2lvbjpzZXNzaW9uIGRpZEVuZFdpdGhPcGVyYXRpb246VUlEcm9wT3BlcmF0aW9u
Q29weV07Ci19Ci0KLS0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0
aFNlc3Npb246KGlkKXNlc3Npb24KLXsKLSAgICBbc2VsZiBkcmFnSW50ZXJhY3Rpb246X2RyYWdJ
bnRlcmFjdGlvbi5nZXQoKSBzZXNzaW9uV2lsbEJlZ2luOnNlc3Npb25dOwotfQotCi0tIChOU0Fy
cmF5ICopX3NpbXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbgotewotICAgIHJldHVy
biBbc2VsZiBkcmFnSW50ZXJhY3Rpb246X2RyYWdJbnRlcmFjdGlvbi5nZXQoKSBpdGVtc0ZvckJl
Z2lubmluZ1Nlc3Npb246c2Vzc2lvbl07Ci19Ci0KLS0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZv
ckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hf
YmxvY2tfdCljb21wbGV0aW9uCi17Ci0gICAgW3NlbGYgX2RyYWdJbnRlcmFjdGlvbjpfZHJhZ0lu
dGVyYWN0aW9uLmdldCgpIHByZXBhcmVGb3JTZXNzaW9uOnNlc3Npb24gY29tcGxldGlvbjpjb21w
bGV0aW9uXTsKLX0KKyNlbmRpZgogCi0tICh2b2lkKV9zaW11bGF0ZUl0ZW1zRm9yQWRkaW5nVG9T
ZXNzaW9uOihpZClzZXNzaW9uIGF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gY29tcGxldGlv
bjoodm9pZCheKShOU0FycmF5ICopKWNvbXBsZXRpb24KLXsKLSAgICBbc2VsZiBfZHJhZ0ludGVy
YWN0aW9uOl9kcmFnSW50ZXJhY3Rpb24uZ2V0KCkgaXRlbXNGb3JBZGRpbmdUb1Nlc3Npb246c2Vz
c2lvbiB3aXRoVG91Y2hBdFBvaW50OmxvY2F0aW9uIGNvbXBsZXRpb246Y29tcGxldGlvbl07Ci19
CitAZW5kCiAKLSNlbmRpZgorQGltcGxlbWVudGF0aW9uIFdLQ29udGVudFZpZXcgKFdLVGVzdGlu
ZykKIAogLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50
KWxvY2F0aW9uCiB7CkBAIC00ODgxLDEwICs0ODM4LDYgQEAgLSAodm9pZClfc2ltdWxhdGVMb25n
UHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uCiAgICAgfSBmb3JSZXF1ZXN0
OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbikp
XTsKIH0KIAotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyAoV0tUZXN0aW5n
KQotCiAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KE5TSW50ZWdlcilyb3dJ
bmRleAogewogICAgIGlmIChbX2lucHV0UGVyaXBoZXJhbCBpc0tpbmRPZkNsYXNzOltXS0Zvcm1T
ZWxlY3RDb250cm9sIHNlbGZdXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2MzdlMTNhMGUyODdhMDQzMzg3MWViMDQ5Y2Q3Y2Y0NjY1NzZiNzBh
Li43MjYxOWVkMGY3YjIxOWI3NmQwZjFlYzQ1MjIyMWU1ZDcxNDcxZDQ2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIw
MTctMDktMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPUyBEbkRdIEVsZW1lbnRzIGluIHRoZSBET00gd2l0aCB0aGUgYGRyYWdnYWJsZWAgYXR0
cmlidXRlIHNob3VsZCBiZSBkcmFnZ2FibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NjY2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTYx
NTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIG5ldyBBUEkgdGVzdCBjaGVja2luZyB0aGF0IGVsZW1lbnRzIG1hcmtlZCBhcyBkcmFnIHNv
dXJjZXMgdmlhIHRoZSBgZHJhZ2dhYmxlYCBhdHRyaWJ1dGUgY2FuIGJlIGRyYWdnZWQKKyAgICAg
ICAgd2l0aCBhIG5vbi1udWxsIGRyYWcgcHJldmlldy4gQWRkaXRpb25hbGx5LCByZWZhY3RvciB0
aGUgZHJhZyBhbmQgZHJvcCBzaW11bGF0b3IgdG8gbm90IHBsdW1iIGRyYWcvZHJvcAorICAgICAg
ICBpbnRlcmFjdGlvbiBkZWxlZ2F0ZSBjYWxscyB0aHJvdWdoIHRvIHRoZSBXS0NvbnRlbnRWaWV3
IHZpYSAtX3NpbXVsYXRlKi1wcmVmaXhlZCB0ZXN0aW5nIFNQSSwgYnV0IHJhdGhlcgorICAgICAg
ICBieSBncmFiYmluZyB0aGUgV0tXZWJWaWV3J3MgZHJhZyBhbmQgZHJvcCBpbnRlcmFjdGlvbiBk
ZWxlZ2F0ZXMgKGkuZS4gdGhlIFdLQ29udGVudFZpZXcpIGFuZCBjYWxsaW5nIGRlbGVnYXRlCisg
ICAgICAgIG1ldGhvZHMgZGlyZWN0bHkuIFRoaXMgYXZvaWRzIHJlcXVpcmluZyBib2lsZXJwbGF0
ZSBwbHVtYmluZyBvbiBXS1dlYlZpZXcgYW5kIFdLQ29udGVudFZpZXcgZm9yIGVhY2ggb2YgdGhl
IGRyYWcKKyAgICAgICAgYW5kIGRyb3AgZGVsZWdhdGUgbWV0aG9kcywgc28gdGhlc2UgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSBXS1dlYlZpZXcgYW5kIFdLQ29udGVudFZpZXcuCisKKyAgICAgICAg
QWRkaXRpb25hbGx5LCByZW5hbWVzIE1vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBhbmQgTW9ja0Rh
dGFJbnRlcmFjdGlvblNlc3Npb24gdG8gTW9ja0RyYWdTZXNzaW9uIGFuZAorICAgICAgICBNb2Nr
RHJvcFNlc3Npb24sIHJlc3BlY3RpdmVseSwgYW5kIGFkanVzdHMgdGhlaXIgaXZhcnMgb24gRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yIHRvIG1hdGNoLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9jdXN0b20tZHJhZ2dhYmxlLWRpdi5odG1sOiBB
ZGRlZC4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdCBoYXJuZXNzIGNvdmVyaW5nIGRyYWdnaW5n
IGFuZCBkcm9wcGluZyBlbGVtZW50cyB3aXRoIHRoZSBkcmFnZ2FibGUgYXR0cmlidXRlLCB1c2lu
ZyBEYXRhVHJhbnNmZXIKKyAgICAgICAgQVBJIChzZXREYXRhIGFuZCBnZXREYXRhKSBhcyB3ZWxs
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVz
dHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBkcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZHJh
Z0ludGVyYWN0aW9uRGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyb3BJbnRlcmFj
dGlvbl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZHJhZ0ludGVyYWN0aW9uXSk6CisKKyAgICAg
ICAgQWRkIHRlc3RpbmcgdXRpbGl0aWVzIHRvIGFzayBhIFdLV2ViVmlldyBmb3IgaW5mb3JtYXRp
b24gYWJvdXQgaXRzIGRyYWcvZHJvcCBpbnRlcmFjdGlvbnMgYW5kIGRlbGVnYXRlcy4gSW4gdGhp
cworICAgICAgICBjYXNlLCB0aGlzIHdpbGwgcmV0dXJuIHRoZSBXS1dlYlZpZXcncyBXS0NvbnRl
bnRWaWV3LgorCisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBfcmVzZXRTaW11
bGF0ZWRTdGF0ZV0pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2ltdWxh
dGVBbGxUb3VjaGVzQ2FuY2VsZWQ6XSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVs
YXRvciBydW5Gcm9tOnRvOmFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uczpdKToKKyAgICAg
ICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIF9jb25jbHVkZURhdGFJbnRlcmFjdGlvbkFu
ZFBlcmZvcm1PcGVyYXRpb25JZk5lY2Vzc2FyeV0pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IgX3NlbmRRdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3RdKToKKyAgICAgICAg
KC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIF9hZHZhbmNlUHJvZ3Jlc3NdKToKKworICAgICAg
ICBXaGVuIGJlZ2lubmluZyBhIGRyYWcgc2Vzc2lvbiwgYXNrIHRoZSBkZWxlZ2F0ZSBmb3IgdGFy
Z2V0ZWQgbGlmdCBwcmV2aWV3cyBhbmQgdmVyaWZ5IHRoYXQgdGhlc2UgYXJlIG5vbi1udWxsLgor
ICAgICAgICBUaGlzIGNoZWNrIHdvdWxkIGZhaWwgcHJpb3IgdG8gdGhlIHR3ZWFrIGluIERyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZSBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICgtW0RhdGFJbnRl
cmFjdGlvblNpbXVsYXRvciBfd2ViVmlldzpzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50Ol0pOgor
ICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gaW5pdFdpdGhQcm92aWRlcnM6bG9j
YXRpb246d2luZG93OmFsbG93TW92ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bTW9ja0RhdGFP
cGVyYXRpb25TZXNzaW9uIHNlc3Npb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1bTW9ja0RhdGFP
cGVyYXRpb25TZXNzaW9uIGlzTG9jYWxdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bTW9ja0RhdGFP
cGVyYXRpb25TZXNzaW9uIHByb2dyZXNzXSk6IERlbGV0ZWQuCisgICAgICAgICgtW01vY2tEYXRh
T3BlcmF0aW9uU2Vzc2lvbiBzZXRQcm9ncmVzc0luZGljYXRvclN0eWxlOl0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gcHJvZ3Jlc3NJbmRpY2F0b3JTdHls
ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gb3BlcmF0
aW9uTWFza10pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24g
bG9jYWxEcmFnU2Vzc2lvbl0pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0YU9wZXJhdGlv
blNlc3Npb24gaGFzSXRlbXNDb25mb3JtaW5nVG9UeXBlSWRlbnRpZmllcjpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGNhbkNyZWF0ZUl0ZW1zT2ZDbGFz
czpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uIGxvYWRP
YmplY3RzT2ZDbGFzczpjb21wbGV0aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0
YUludGVyYWN0aW9uU2Vzc2lvbiBpbml0V2l0aFdpbmRvdzphbGxvd01vdmU6XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW01vY2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9uIGxvY2FsT3BlcmF0aW9uTWFz
a10pOiBEZWxldGVkLgorICAgICAgICAoLVtNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbiBleHRl
cm5hbE9wZXJhdGlvbk1hc2tdKTogRGVsZXRlZC4KKworICAgICAgICBSZXBsYWNlIHZhcmlvdXMg
cGxhY2VzIHdoZXJlIHdlIGNhbGxlZCAtX3NpbXVsYXRlKiBtZXRob2RzIG9uIFdLV2ViVmlldyB3
aXRoIGNhbGxzIHRvIHRoZQorICAgICAgICBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlIG9yIFVJ
RHJvcEludGVyYWN0aW9uRGVsZWdhdGUgKHRoZSBXS0NvbnRlbnRWaWV3KSBpbnN0ZWFkLiBBbHNv
LCBhZGp1c3QgZm9yIHNvbWUKKyAgICAgICAgbWVjaGFuaWNhbCByZW5hbWluZyBvZiBkcmFnIGFu
ZCBkcm9wIHNlc3Npb25zLgorCisgICAgICAgICgtW01vY2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9u
IHNlc3Npb25dKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQ
SS5oOgorCiAyMDE3LTA5LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtEaXJlY3RvcnkgVXBsb2FkXSBFeHRlbmQgZHJhZyBhbmQgZHJvcCBzdXBw
b3J0IHRvIGlPUwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NThlMWVmYWNmNzIzYjBkOTNm
ZmQ1NTBkM2Q3MTBiMDg4ZDQ1MDlhLi44MDhhYTJmZDAxZGZmMmI3MDNiYTk3MjJkMTNiOGQxNGY4
M2RkMzVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjg5LDYgKzY4OSw3IEBACiAJCUY0
ODU2Q0EzMUU2NDlFQTgwMDlEN0VFNyAvKiBhdHRhY2htZW50LWVsZW1lbnQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg1NkNBMjFF
NjQ5OEE4MDA5RDdFRTcgLyogYXR0YWNobWVudC1lbGVtZW50Lmh0bWwgKi87IH07CiAJCUY0QTMy
RUM0MUYwNUYzODUwMDQ3QzU0NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlvbi1vZmZzY3Jl
ZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEEzMkVDMzFGMDVGMzc4MDA0N0M1NDQgLyogZHJhZ3N0YXJ0LWNoYW5nZS1zZWxlY3Rp
b24tb2Zmc2NyZWVuLmh0bWwgKi87IH07CiAJCUY0QTMyRUNCMUYwNjQzMzcwMDQ3QzU0NCAvKiBj
b250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBMzJFQ0ExRjA2NDJGNDAwNDdDNTQ0IC8qIGNv
bnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCAqLzsgfTsKKwkJRjRBQjU3OEExRjY1MTY1NDAw
REIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBQjU3ODkxRjY1MTY0QjAwREIwREEx
IC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi87IH07CiAJCUY0QjgyNUQ4MUVGNERCRkIw
MDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEI4MjVENjFFRjREQkQ0MDA2RTQxN0YgLyog
Y29tcHJlc3NlZC1maWxlcy56aXAgKi87IH07CiAJCUY0QkZBNjhFMUU0QUQwODAwMDE1NDI5OCAv
KiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkZBNjhDMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5k
RHJvcFBhc3RlYm9hcmRUZXN0cy5tbSAqLzsgfTsKIAkJRjRDMkFCMjIxREQ2RDk1RTAwRTA2RDVC
IC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEMyQUIyMTFERDZEOTQxMDBFMDZENUIg
LyogZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sICovOyB9OwpAQCAtODE1LDYgKzgxNiw3
IEBACiAJCQkJNTE0MkIyNzMxNTE3QzhDODAwQzMyQjE5IC8qIENvbnRleHRNZW51Q2FuQ29weVVS
TC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDMjkzNjk2MUQ1QzAwRUQwMERFQUIx
RSAvKiBDb29raWVNZXNzYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0
ODExRTIwMTIyNzAwNDE2RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0QUI1NzhBMUY2NTE2NTQwMERCMERBMSAvKiBj
dXN0b20tZHJhZ2dhYmxlLWRpdi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTI5MEY0
Mjc1MTcyQTIyMUMwMDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDUxMkUxMzFGNjBDNDQ2MDBCQjM2OUUgLyogRGF0YVRy
YW5zZmVySXRlbS1nZXRBc0VudHJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQzA3
RTZDQjIxM0ZENzM5MzAwMzhCMjJCIC8qIGRldmljZVBpeGVsUmF0aW8uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKQEAgLTE3MjIsNiArMTcyNCw3IEBACiAJCUY0OTMyNDdDMUY0NERGOEQwMDZG
NDMzNiAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNEEzMkVDMzFGMDVGMzc4MDA0N0M1NDQgLyogZHJhZ3N0YXJ0
LWNoYW5nZS1zZWxlY3Rpb24tb2Zmc2NyZWVuLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZHJhZ3N0YXJ0LWNo
YW5nZS1zZWxlY3Rpb24tb2Zmc2NyZWVuLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEEzMkVDQTFGMDY0MkY0MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFt
ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QUI1Nzg5MUY2NTE2NEIwMERCMERBMSAvKiBjdXN0
b20tZHJhZ2dhYmxlLWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImN1c3Rv
bS1kcmFnZ2FibGUtZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEI4
MjVENjFFRjREQkQ0MDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxlcy56aXAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLnppcDsgcGF0aCA9
ICJjb21wcmVzc2VkLWZpbGVzLnppcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
QkZBNjhDMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9wUGFzdGVi
b2FyZFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEMyQUIyMTFERDZE
OTQxMDBFMDZENUIgLyogZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTU1LDYgKzIxNTgsNyBAQAogCQkJCUY0QTMyRUNB
MUYwNjQyRjQwMDQ3QzU0NCAvKiBjb250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgKi8sCiAJ
CQkJQTE2RjY2QjkxQzQwRUEyMDAwQkQ0RDI0IC8qIENvbnRlbnRGaWx0ZXJpbmcuaHRtbCAqLywK
IAkJCQk1QzI5MzY5NDFENUJGRDE5MDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sICovLAor
CQkJCUY0QUI1Nzg5MUY2NTE2NEIwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dhYmxlLWRpdi5odG1s
ICovLAogCQkJCUY0NTEyRTEyMUY2MEM0MzQwMEJCMzY5RSAvKiBEYXRhVHJhbnNmZXJJdGVtLWdl
dEFzRW50cnkuaHRtbCAqLywKIAkJCQkwNzk5QzM0QTFFQkEzMkY0MDAzQjc1MzIgLyogZGlzYWJs
ZUdldFVzZXJNZWRpYS5odG1sICovLAogCQkJCUY0MUFCOTlFMUVGNDY5MkMwMDgzRkEwOCAvKiBk
aXYtYW5kLWxhcmdlLWltYWdlLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL2N1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2N1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDg4NjIyNjM0MDA3MDQ1M2E2YjRlYTE3NmQyZTMyODQ2MjY5ZmYwNwotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvY3Vz
dG9tLWRyYWdnYWJsZS1kaXYuaHRtbApAQCAtMCwwICsxLDU1IEBACis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0
eWxlPgorICAgIGJvZHksIGh0bWwgeworICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIHdpZHRo
OiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBw
bGUtc3lzdGVtOworICAgIH0KKworICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDA7CisgICAg
fQorCisgICAgI3NvdXJjZSwgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4Owor
ICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Owor
ICAgICAgICBib3JkZXI6IDFweCBncmF5IHNvbGlkOworICAgIH0KKworICAgICNpdGVtIHsKKyAg
ICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOworICAgIH0KKzwvc3R5bGU+CisKKzxib2R5PgorPGRpdiBpZD0ic291
cmNlIj4KKzxkaXYgZHJhZ2dhYmxlPSJ0cnVlIiBpZD0iaXRlbSI+PC9kaXY+Cis8L2Rpdj4KKzxk
aXYgaWQ9ImRlc3RpbmF0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj4KKyAgICA8
ZGl2PlRvIG1hbnVhbGx5IHRlc3QsIGRyYWcgYW5kIGRyb3AgdGhlIHJlZCBzcXVhcmUgaW4gdGhl
IHRvcCBjb250YWluZXIgaW50byB0aGUgYm90dG9tIGNvbnRhaW5lci48L2Rpdj4KKyAgICA8ZGl2
PlVwb24gZHJvcCwgdGhlIHNxdWFyZSBzaG91bGQgdHVybiBncmVlbiBhbmQgc2hvdyAiUEFTUyIg
YXMgdGV4dC48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorCis8c2NyaXB0PgoraXRlbS5hZGRFdmVu
dExpc3RlbmVyKCJkcmFnc3RhcnQiLCBldmVudCA9PiBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0
YSgidGV4dC9wbGFpbiIsIGl0ZW0uaWQpKTsKK2Rlc3RpbmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
ImRyYWdlbnRlciIsIGV2ZW50ID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpOworZGVzdGluYXRp
b24uYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBldmVudCA9PiBldmVudC5wcmV2ZW50RGVm
YXVsdCgpKTsKK2Rlc3RpbmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBldmVudCA9PiB7
CisgICAgbGV0IGlkZW50aWZpZXIgPSBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dC9w
bGFpbiIpOworICAgIGxldCBzb3VyY2VJdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRl
bnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VJdGVtKQorICAgICAgICByZXR1cm47CisKKyAgICBz
b3VyY2VJdGVtLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7CisgICAgc291cmNlSXRl
bS5zdHlsZS5jb2xvciA9ICJ3aGl0ZSI7CisgICAgc291cmNlSXRlbS5pbm5lckhUTUwgPSAiPGNv
ZGU+UEFTUzwvY29kZT4iOworICAgIGRlc3RpbmF0aW9uLmFwcGVuZENoaWxkKHNvdXJjZUl0ZW0p
OworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpp
bmRleCAyNDRhMjg1MmRkNTYyODhlMTQ1ZTM4OTBmOWVkMTY4NDQ5M2EwNjY4Li42MzQxMjZjODgy
MDRmODJkN2Q1NTQyNzQ0NjRkMzc5YjBhM2NiY2Q0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmgiCiAjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVUlL
aXRTUEkuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKICNpbXBv
cnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KICNpbXBvcnQgPFVJ
S2l0L05TSXRlbVByb3ZpZGVyK1VJS2l0QWRkaXRpb25zLmg+CkBAIC01MjUsNiArNTI2LDE3IEBA
IFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEVudGVyQW5kTGVhdmVFdmVudHMpCiAgICAgY2hl
Y2tTZWxlY3Rpb25SZWN0c1dpdGhMb2dnaW5nKEBbIF0sIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3IgZmluYWxTZWxlY3Rpb25SZWN0c10pOwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3Rz
LCBDYW5TdGFydERyYWdPbkRpdldpdGhEcmFnZ2FibGVBdHRyaWJ1dGUpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFRlc3RQYWdlTmFtZWQ6QCJjdXN0b20tZHJhZ2dhYmxlLWRpdiJdOworCisgICAgYXV0byBkYXRh
SW50ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
IGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgxMDAsIDEwMCkgdG86Q0dQb2ludE1h
a2UoMjUwLCAxMDApXTsKKworICAgIEVYUEVDVF9HVChbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
IHNvdXJjZUl0ZW1Qcm92aWRlcnNdLmNvdW50LCAwVUwpOworfQorCiBURVNUKERhdGFJbnRlcmFj
dGlvblRlc3RzLCBFeHRlcm5hbFNvdXJjZVBsYWluVGV4dFRvSUZyYW1lKQogewogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CkBAIC0xMzA2LDcgKzEzMTgsOCBAQCBURVNUKERh
dGFJbnRlcmFjdGlvblRlc3RzLCBVbnJlc3BvbnNpdmVQYWdlRG9lc05vdEhhbmdVSSkKICAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aGlsZSgxKTsiIGNvbXBsZXRpb25IYW5kbGVy
Om5pbF07CiAKICAgICAvLyBUaGUgdGVzdCBwYXNzZXMgaWYgd2UgY2FuIHByZXBhcmUgZm9yIGRh
dGEgaW50ZXJhY3Rpb24gd2l0aG91dCB0aW1pbmcgb3V0LgotICAgIFt3ZWJWaWV3IF9zaW11bGF0
ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOm5pbCBjb21wbGV0aW9uOl4oKSB7IH1d
OworICAgIGF1dG8gZHJhZ1Nlc3Npb24gPSBhZG9wdE5TKFtbTW9ja0RyYWdTZXNzaW9uIGFsbG9j
XSBpbml0XSk7CisgICAgWyhpZCA8VUlEcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZV9Gb3JXZWJLaXRP
bmx5Pilbd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZV0gX2RyYWdJbnRlcmFjdGlvbjpb
d2ViVmlldyBkcmFnSW50ZXJhY3Rpb25dIHByZXBhcmVGb3JTZXNzaW9uOmRyYWdTZXNzaW9uLmdl
dCgpIGNvbXBsZXRpb246XigpIHsgfV07CiB9CiAKIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMs
IFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmRMb2FkaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaAppbmRleCBhMTMzMmRlZjg0ODhj
OWM4YjlmNjQ0MjRiNzJhODQ0MzU0ODgxN2RhLi41NWY2Nzg1NWIxYzM3ZGY0M2I1MmNlYzA2Yjk3
YjFjN2I3OTgzODZmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IuaApAQCAtNzcsOCArNzcsMjYgQEAKICNpbXBvcnQgPFdlYktpdC9f
V0tJbnB1dERlbGVnYXRlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAotQGNsYXNzIE1v
Y2tEYXRhT3BlcmF0aW9uU2Vzc2lvbjsKLUBjbGFzcyBNb2NrRGF0YUludGVyYWN0aW9uU2Vzc2lv
bjsKK0BjbGFzcyBNb2NrRHJvcFNlc3Npb247CitAY2xhc3MgTW9ja0RyYWdTZXNzaW9uOworCitA
aW50ZXJmYWNlIE1vY2tEcmFnRHJvcFNlc3Npb24gOiBOU09iamVjdCA8VUlEcmFnRHJvcFNlc3Np
b24+IHsKK0Bwcml2YXRlCisgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9tb2NrSXRlbXM7CisgICAg
UmV0YWluUHRyPFVJV2luZG93PiBfd2luZG93OworfQorQHByb3BlcnR5IChub25hdG9taWMpIENH
UG9pbnQgbW9ja0xvY2F0aW9uSW5XaW5kb3c7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBh
bGxvd01vdmU7CitAZW5kCisKK0BpbnRlcmZhY2UgTW9ja0Ryb3BTZXNzaW9uIDogTW9ja0RyYWdE
cm9wU2Vzc2lvbiA8VUlEcm9wU2Vzc2lvbj4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcp
IGlkIGxvY2FsQ29udGV4dDsKK0BlbmQKKworQGludGVyZmFjZSBNb2NrRHJhZ1Nlc3Npb24gOiBN
b2NrRHJhZ0Ryb3BTZXNzaW9uIDxVSURyYWdTZXNzaW9uPgorQHByb3BlcnR5IChub25hdG9taWMs
IHN0cm9uZykgaWQgbG9jYWxDb250ZXh0OworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykg
aWQgY29udGV4dDsKK0BlbmQKIAogZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0
aW9uRW50ZXJFdmVudE5hbWU7CiBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBEYXRhSW50ZXJhY3Rp
b25PdmVyRXZlbnROYW1lOwpAQCAtOTYsMTEgKzExNCwxOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogICAgIERhdGFJbnRlcmFjdGlvblBlcmZv
cm1pbmcgPSA0CiB9OwogCitAaW50ZXJmYWNlIFdLV2ViVmlldyAoRHJhZ0FuZERyb3BUZXN0aW5n
KQorLSAoaWQgPFVJRHJvcEludGVyYWN0aW9uRGVsZWdhdGU+KWRyb3BJbnRlcmFjdGlvbkRlbGVn
YXRlOworLSAoaWQgPFVJRHJhZ0ludGVyYWN0aW9uRGVsZWdhdGU+KWRyYWdJbnRlcmFjdGlvbkRl
bGVnYXRlOworLSAoVUlEcm9wSW50ZXJhY3Rpb24gKilkcm9wSW50ZXJhY3Rpb247CistIChVSURy
YWdJbnRlcmFjdGlvbiAqKWRyYWdJbnRlcmFjdGlvbjsKK0BlbmQKKwogQGludGVyZmFjZSBEYXRh
SW50ZXJhY3Rpb25TaW11bGF0b3IgOiBOU09iamVjdDxXS1VJRGVsZWdhdGVQcml2YXRlLCBfV0tJ
bnB1dERlbGVnYXRlPiB7CiBAcHJpdmF0ZQogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBf
d2ViVmlldzsKLSAgICBSZXRhaW5QdHI8TW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24+IF9kYXRh
SW50ZXJhY3Rpb25TZXNzaW9uOwotICAgIFJldGFpblB0cjxNb2NrRGF0YU9wZXJhdGlvblNlc3Np
b24+IF9kYXRhT3BlcmF0aW9uU2Vzc2lvbjsKKyAgICBSZXRhaW5QdHI8TW9ja0RyYWdTZXNzaW9u
PiBfZHJhZ1Nlc3Npb247CisgICAgUmV0YWluUHRyPE1vY2tEcm9wU2Vzc2lvbj4gX2Ryb3BTZXNz
aW9uOwogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gX29ic2VydmVkRXZlbnROYW1lczsK
ICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2V4dGVybmFsSXRlbVByb3ZpZGVyczsKICAgICBSZXRh
aW5QdHI8TlNBcnJheSAqPiBfc291cmNlSXRlbVByb3ZpZGVyczsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQppbmRleCBhNGVlZmQx
NzFlNDgxMjI4YmMwOWZkMjc0MzVjNGVhNzliY2QxNTY4Li41MWVlZGRhZTliNWRjZmVhOTVmMjc4
YWRhNmJmNzY1ZWEzYzBhZjc5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9E
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3Mv
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCkBAIC0zMCw5ICszMCwxMSBAQAogCiAjaW1wb3J0
ICJJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKIAogI2ltcG9ydCA8VUlLaXQvVUlEcmFnSW50ZXJhY3Rp
b24uaD4KICNpbXBvcnQgPFVJS2l0L1VJRHJhZ0l0ZW0uaD4KKyNpbXBvcnQgPFVJS2l0L1VJSW50
ZXJhY3Rpb24uaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxVSUtp
dC9VSURyYWdTZXNzaW9uLmg+CkBAIC01OCwxMyArNjAsNDMgQEAgU09GVF9MSU5LKFVJS2l0LCBV
SUFwcGxpY2F0aW9uSW5zdGFudGlhdGVTaW5nbGV0b24sIHZvaWQsIChDbGFzcyBzaW5nbGV0b25D
bGFzcykKIAogdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKLUBpbnRlcmZhY2UgTW9j
a0RyYWdEcm9wU2Vzc2lvbiA6IE5TT2JqZWN0IDxVSURyYWdEcm9wU2Vzc2lvbj4gewotQHByaXZh
dGUKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gX21vY2tJdGVtczsKLSAgICBSZXRhaW5QdHI8VUlX
aW5kb3c+IF93aW5kb3c7CitAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IChEcmFnQW5kRHJvcFRl
c3RpbmcpCisKKy0gKFVJVmlldyAqKV9kcmFnRHJvcEludGVyYWN0aW9uVmlldworeworICAgIHJl
dHVybiBbc2VsZiB2YWx1ZUZvcktleTpAIl9jdXJyZW50Q29udGVudFZpZXciXTsKK30KKworLSAo
aWQgPFVJRHJvcEludGVyYWN0aW9uRGVsZWdhdGU+KWRyb3BJbnRlcmFjdGlvbkRlbGVnYXRlCit7
CisgICAgcmV0dXJuIChpZCA8VUlEcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZT4pc2VsZi5fZHJhZ0Ry
b3BJbnRlcmFjdGlvblZpZXc7Cit9CisKKy0gKGlkIDxVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRl
PilkcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZQoreworICAgIHJldHVybiAoaWQgPFVJRHJhZ0ludGVy
YWN0aW9uRGVsZWdhdGU+KXNlbGYuX2RyYWdEcm9wSW50ZXJhY3Rpb25WaWV3OworfQorCistIChV
SURyb3BJbnRlcmFjdGlvbiAqKWRyb3BJbnRlcmFjdGlvbgoreworICAgIFVJVmlldyAqaW50ZXJh
Y3Rpb25WaWV3ID0gc2VsZi5fZHJhZ0Ryb3BJbnRlcmFjdGlvblZpZXc7CisgICAgZm9yIChpZCA8
VUlJbnRlcmFjdGlvbj4gaW50ZXJhY3Rpb24gaW4gaW50ZXJhY3Rpb25WaWV3LmludGVyYWN0aW9u
cykgeworICAgICAgICBpZiAoW2ludGVyYWN0aW9uIGlzS2luZE9mQ2xhc3M6W1VJRHJvcEludGVy
YWN0aW9uIGNsYXNzXV0pCisgICAgICAgICAgICByZXR1cm4gKFVJRHJvcEludGVyYWN0aW9uICop
aW50ZXJhY3Rpb247CisgICAgfQorICAgIHJldHVybiBuaWw7Cit9CisKKy0gKFVJRHJhZ0ludGVy
YWN0aW9uICopZHJhZ0ludGVyYWN0aW9uCit7CisgICAgVUlWaWV3ICppbnRlcmFjdGlvblZpZXcg
PSBzZWxmLl9kcmFnRHJvcEludGVyYWN0aW9uVmlldzsKKyAgICBmb3IgKGlkIDxVSUludGVyYWN0
aW9uPiBpbnRlcmFjdGlvbiBpbiBpbnRlcmFjdGlvblZpZXcuaW50ZXJhY3Rpb25zKSB7CisgICAg
ICAgIGlmIChbaW50ZXJhY3Rpb24gaXNLaW5kT2ZDbGFzczpbVUlEcmFnSW50ZXJhY3Rpb24gY2xh
c3NdXSkKKyAgICAgICAgICAgIHJldHVybiAoVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
bjsKKyAgICB9CisgICAgcmV0dXJuIG5pbDsKIH0KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1Bv
aW50IG1vY2tMb2NhdGlvbkluV2luZG93OwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxs
b3dNb3ZlOworCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBNb2NrRHJhZ0Ryb3BTZXNzaW9uCkBA
IC0xNTcsMTEgKzE4OSw3IEBAIE5TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0aW9uUGVyZm9y
bU9wZXJhdGlvbkV2ZW50TmFtZSA9IEAiZHJvcCI7CiBOU1N0cmluZyAqIGNvbnN0IERhdGFJbnRl
cmFjdGlvbkxlYXZlRXZlbnROYW1lID0gQCJkcmFnbGVhdmUiOwogTlNTdHJpbmcgKiBjb25zdCBE
YXRhSW50ZXJhY3Rpb25TdGFydEV2ZW50TmFtZSA9IEAiZHJhZ3N0YXJ0IjsKIAotQGludGVyZmFj
ZSBNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24gOiBNb2NrRHJhZ0Ryb3BTZXNzaW9uIDxVSURyb3BT
ZXNzaW9uPgotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgaWQgbG9jYWxDb250ZXh0Owot
QGVuZAotCi1AaW1wbGVtZW50YXRpb24gTW9ja0RhdGFPcGVyYXRpb25TZXNzaW9uCitAaW1wbGVt
ZW50YXRpb24gTW9ja0Ryb3BTZXNzaW9uCiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFByb3Zp
ZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqKXByb3ZpZGVycyBsb2NhdGlvbjooQ0dQ
b2ludClsb2NhdGlvbkluV2luZG93IHdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cgYWxsb3dNb3Zl
OihCT09MKWFsbG93TW92ZQogewpAQCAtMjI2LDEyICsyNTQsNyBAQCAtIChOU1Byb2dyZXNzICop
bG9hZE9iamVjdHNPZkNsYXNzOihDbGFzczxOU0l0ZW1Qcm92aWRlclJlYWRpbmc+KWFDbGFzcyBj
b21wbGV0aQogCiBAZW5kCiAKLUBpbnRlcmZhY2UgTW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24g
OiBNb2NrRHJhZ0Ryb3BTZXNzaW9uIDxVSURyYWdTZXNzaW9uPgotQHByb3BlcnR5IChub25hdG9t
aWMsIHN0cm9uZykgaWQgbG9jYWxDb250ZXh0OwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9u
ZykgaWQgY29udGV4dDsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE1vY2tEYXRhSW50ZXJhY3Rp
b25TZXNzaW9uCitAaW1wbGVtZW50YXRpb24gTW9ja0RyYWdTZXNzaW9uCiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFdpbmRvdzooVUlXaW5kb3cgKil3aW5kb3cgYWxsb3dNb3ZlOihCT09MKWFs
bG93TW92ZQogewpAQCAtMzE0LDggKzMzNyw4IEBAIC0gKHZvaWQpX3Jlc2V0U2ltdWxhdGVkU3Rh
dGUKICAgICBfaXNEb25lV2l0aEN1cnJlbnRSdW4gPSBmYWxzZTsKICAgICBfb2JzZXJ2ZWRFdmVu
dE5hbWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CiAgICAgX2Zp
bmFsU2VsZWN0aW9uUmVjdHMgPSBAWyBdOwotICAgIF9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uID0g
bmlsOwotICAgIF9kYXRhT3BlcmF0aW9uU2Vzc2lvbiA9IG5pbDsKKyAgICBfZHJhZ1Nlc3Npb24g
PSBuaWw7CisgICAgX2Ryb3BTZXNzaW9uID0gbmlsOwogICAgIF9zaG91bGRQZXJmb3JtT3BlcmF0
aW9uID0gTk87CiAgICAgX2xhc3RLbm93bkRyYWdDYXJldFJlY3QgPSBDR1JlY3RaZXJvOwogICAg
IF9yZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNCeVByb2dyZXNzID0gbmls
OwpAQCAtMzMzLDggKzM1Niw4IEBAIC0gKHZvaWQpc2ltdWxhdGVBbGxUb3VjaGVzQ2FuY2VsZWQ6
KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAgICAgX3BoYXNlID0gRGF0YUludGVyYWN0
aW9uQ2FuY2VsbGVkOwogICAgIF9jdXJyZW50UHJvZ3Jlc3MgPSAxOwogICAgIF9pc0RvbmVXaXRo
Q3VycmVudFJ1biA9IHRydWU7Ci0gICAgaWYgKF9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uKQotICAg
ICAgICBbX3dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lvbkRpZEVuZDpfZGF0
YUludGVyYWN0aW9uU2Vzc2lvbi5nZXQoKV07CisgICAgaWYgKF9kcmFnU2Vzc2lvbikKKyAgICAg
ICAgW1tfd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZV0gZHJhZ0ludGVyYWN0aW9uOltf
d2ViVmlldyBkcmFnSW50ZXJhY3Rpb25dIHNlc3Npb246X2RyYWdTZXNzaW9uLmdldCgpIGRpZEVu
ZFdpdGhPcGVyYXRpb246VUlEcm9wT3BlcmF0aW9uQ29weV07CiB9CiAKIC0gKHZvaWQpcnVuRnJv
bTooQ0dQb2ludClzdGFydExvY2F0aW9uIHRvOihDR1BvaW50KWVuZExvY2F0aW9uCkBAIC0zNjcs
MTMgKzM5MCwxMyBAQCAtICh2b2lkKXJ1bkZyb206KENHUG9pbnQpc3RhcnRMb2NhdGlvbiB0bzoo
Q0dQb2ludCllbmRMb2NhdGlvbiBhZGRpdGlvbmFsSXRlbVJlcQogICAgIF9lbmRMb2NhdGlvbiA9
IGVuZExvY2F0aW9uOwogCiAgICAgaWYgKHNlbGYuZXh0ZXJuYWxJdGVtUHJvdmlkZXJzLmNvdW50
KSB7Ci0gICAgICAgIF9kYXRhT3BlcmF0aW9uU2Vzc2lvbiA9IGFkb3B0TlMoW1tNb2NrRGF0YU9w
ZXJhdGlvblNlc3Npb24gYWxsb2NdIGluaXRXaXRoUHJvdmlkZXJzOnNlbGYuZXh0ZXJuYWxJdGVt
UHJvdmlkZXJzIGxvY2F0aW9uOl9zdGFydExvY2F0aW9uIHdpbmRvdzpbX3dlYlZpZXcgd2luZG93
XSBhbGxvd01vdmU6c2VsZi5zaG91bGRBbGxvd01vdmVPcGVyYXRpb25dKTsKKyAgICAgICAgX2Ry
b3BTZXNzaW9uID0gYWRvcHROUyhbW01vY2tEcm9wU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhQcm92
aWRlcnM6c2VsZi5leHRlcm5hbEl0ZW1Qcm92aWRlcnMgbG9jYXRpb246X3N0YXJ0TG9jYXRpb24g
d2luZG93Oltfd2ViVmlldyB3aW5kb3ddIGFsbG93TW92ZTpzZWxmLnNob3VsZEFsbG93TW92ZU9w
ZXJhdGlvbl0pOwogICAgICAgICBfcGhhc2UgPSBEYXRhSW50ZXJhY3Rpb25CZWdhbjsKICAgICAg
ICAgW3NlbGYgX2FkdmFuY2VQcm9ncmVzc107CiAgICAgfSBlbHNlIHsKLSAgICAgICAgX2RhdGFJ
bnRlcmFjdGlvblNlc3Npb24gPSBhZG9wdE5TKFtbTW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24g
YWxsb2NdIGluaXRXaXRoV2luZG93Oltfd2ViVmlldyB3aW5kb3ddIGFsbG93TW92ZTpzZWxmLnNo
b3VsZEFsbG93TW92ZU9wZXJhdGlvbl0pOwotICAgICAgICBbX2RhdGFJbnRlcmFjdGlvblNlc3Np
b24gc2V0TW9ja0xvY2F0aW9uSW5XaW5kb3c6X3N0YXJ0TG9jYXRpb25dOwotICAgICAgICBbX3dl
YlZpZXcgX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246X2RhdGFJbnRl
cmFjdGlvblNlc3Npb24uZ2V0KCkgY29tcGxldGlvbjpeKCkgeworICAgICAgICBfZHJhZ1Nlc3Np
b24gPSBhZG9wdE5TKFtbTW9ja0RyYWdTZXNzaW9uIGFsbG9jXSBpbml0V2l0aFdpbmRvdzpbX3dl
YlZpZXcgd2luZG93XSBhbGxvd01vdmU6c2VsZi5zaG91bGRBbGxvd01vdmVPcGVyYXRpb25dKTsK
KyAgICAgICAgW19kcmFnU2Vzc2lvbiBzZXRNb2NrTG9jYXRpb25JbldpbmRvdzpfc3RhcnRMb2Nh
dGlvbl07CisgICAgICAgIFsoaWQgPFVJRHJhZ0ludGVyYWN0aW9uRGVsZWdhdGVfRm9yV2ViS2l0
T25seT4pW193ZWJWaWV3IGRyYWdJbnRlcmFjdGlvbkRlbGVnYXRlXSBfZHJhZ0ludGVyYWN0aW9u
Oltfd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25dIHByZXBhcmVGb3JTZXNzaW9uOl9kcmFnU2Vzc2lv
bi5nZXQoKSBjb21wbGV0aW9uOl4oKSB7CiAgICAgICAgICAgICBEYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3IgKndlYWtTZWxmID0gc3Ryb25nU2VsZi5nZXQoKTsKICAgICAgICAgICAgIGlmICh3ZWFr
U2VsZi0+X3BoYXNlID09IERhdGFJbnRlcmFjdGlvbkNhbmNlbGxlZCkKICAgICAgICAgICAgICAg
ICByZXR1cm47CkBAIC0zOTksMTcgKzQyMiwxNyBAQCAtICh2b2lkKV9jb25jbHVkZURhdGFJbnRl
cmFjdGlvbkFuZFBlcmZvcm1PcGVyYXRpb25JZk5lY2Vzc2FyeQogewogICAgIF9sYXN0S25vd25E
cmFnQ2FyZXRSZWN0ID0gW193ZWJWaWV3IF9kcmFnQ2FyZXRSZWN0XTsKICAgICBpZiAoX3Nob3Vs
ZFBlcmZvcm1PcGVyYXRpb24pIHsKLSAgICAgICAgW193ZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRl
cmFjdGlvblBlcmZvcm1PcGVyYXRpb246X2RhdGFPcGVyYXRpb25TZXNzaW9uLmdldCgpXTsKKyAg
ICAgICAgW1tfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZV0gZHJvcEludGVyYWN0aW9u
Oltfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25dIHBlcmZvcm1Ecm9wOl9kcm9wU2Vzc2lvbi5nZXQo
KV07CiAgICAgICAgIF9waGFzZSA9IERhdGFJbnRlcmFjdGlvblBlcmZvcm1pbmc7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgX2lzRG9uZVdpdGhDdXJyZW50UnVuID0gWUVTOwogICAgICAgICBfcGhh
c2UgPSBEYXRhSW50ZXJhY3Rpb25DYW5jZWxsZWQ7CiAgICAgfQogCi0gICAgW193ZWJWaWV3IF9z
aW11bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOl9kYXRhT3BlcmF0aW9uU2Vzc2lvbi5nZXQoKV07
CisgICAgW1tfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZV0gZHJvcEludGVyYWN0aW9u
Oltfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25dIHNlc3Npb25EaWRFbmQ6X2Ryb3BTZXNzaW9uLmdl
dCgpXTsKIAotICAgIGlmIChfZGF0YUludGVyYWN0aW9uU2Vzc2lvbikKLSAgICAgICAgW193ZWJW
aWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25EaWRFbmQ6X2RhdGFJbnRlcmFjdGlv
blNlc3Npb24uZ2V0KCldOworICAgIGlmIChfZHJhZ1Nlc3Npb24pCisgICAgICAgIFtbX3dlYlZp
ZXcgZHJhZ0ludGVyYWN0aW9uRGVsZWdhdGVdIGRyYWdJbnRlcmFjdGlvbjpbX3dlYlZpZXcgZHJh
Z0ludGVyYWN0aW9uXSBzZXNzaW9uOl9kcmFnU2Vzc2lvbi5nZXQoKSBkaWRFbmRXaXRoT3BlcmF0
aW9uOlVJRHJvcE9wZXJhdGlvbkNvcHldOwogfQogCiAtICh2b2lkKV9lbnF1ZXVlUGVuZGluZ0Fk
ZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucwpAQCAtNDM2LDcgKzQ1OSw3IEBAIC0gKEJPT0wp
X3NlbmRRdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3QKICAgICBbX3F1ZXVlZEFkZGl0aW9uYWxJ
dGVtUmVxdWVzdExvY2F0aW9ucyByZW1vdmVPYmplY3RBdEluZGV4OjBdOwogCiAgICAgYXV0byBy
ZXF1ZXN0TG9jYXRpb24gPSBbW193ZWJWaWV3IHdpbmRvd10gY29udmVydFBvaW50OltyZXF1ZXN0
TG9jYXRpb25WYWx1ZSBDR1BvaW50VmFsdWVdIHRvVmlldzpfd2ViVmlldy5nZXQoKV07Ci0gICAg
W193ZWJWaWV3IF9zaW11bGF0ZUl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOl9kYXRhSW50ZXJhY3Rp
b25TZXNzaW9uLmdldCgpIGF0TG9jYXRpb246cmVxdWVzdExvY2F0aW9uIGNvbXBsZXRpb246W2Ry
YWdTZXNzaW9uID0gX2RhdGFJbnRlcmFjdGlvblNlc3Npb24sIGRyb3BTZXNzaW9uID0gX2RhdGFP
cGVyYXRpb25TZXNzaW9uXSAoTlNBcnJheSAqaXRlbXMpIHsKKyAgICBbKGlkIDxVSURyYWdJbnRl
cmFjdGlvbkRlbGVnYXRlX1Byb3Bvc2VkX1NQSV8zMzE0NjgwMz4pW193ZWJWaWV3IGRyYWdJbnRl
cmFjdGlvbkRlbGVnYXRlXSBfZHJhZ0ludGVyYWN0aW9uOltfd2ViVmlldyBkcmFnSW50ZXJhY3Rp
b25dIGl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOl9kcmFnU2Vzc2lvbi5nZXQoKSB3aXRoVG91Y2hB
dFBvaW50OnJlcXVlc3RMb2NhdGlvbiBjb21wbGV0aW9uOltkcmFnU2Vzc2lvbiA9IF9kcmFnU2Vz
c2lvbiwgZHJvcFNlc3Npb24gPSBfZHJvcFNlc3Npb25dIChOU0FycmF5ICppdGVtcykgewogICAg
ICAgICBbZHJhZ1Nlc3Npb24gYWRkSXRlbXM6aXRlbXNdOwogICAgICAgICBbZHJvcFNlc3Npb24g
YWRkSXRlbXM6aXRlbXNdOwogICAgIH1dOwpAQCAtNDU0LDggKzQ3Nyw4IEBAIC0gKHZvaWQpX2Fk
dmFuY2VQcm9ncmVzcwogICAgIF9sYXN0S25vd25EcmFnQ2FyZXRSZWN0ID0gW193ZWJWaWV3IF9k
cmFnQ2FyZXRSZWN0XTsKICAgICBfY3VycmVudFByb2dyZXNzICs9IHByb2dyZXNzSW5jcmVtZW50
U3RlcDsKICAgICBDR1BvaW50IGxvY2F0aW9uSW5XaW5kb3cgPSBzZWxmLl9jdXJyZW50TG9jYXRp
b247Ci0gICAgW19kYXRhSW50ZXJhY3Rpb25TZXNzaW9uIHNldE1vY2tMb2NhdGlvbkluV2luZG93
OmxvY2F0aW9uSW5XaW5kb3ddOwotICAgIFtfZGF0YU9wZXJhdGlvblNlc3Npb24gc2V0TW9ja0xv
Y2F0aW9uSW5XaW5kb3c6bG9jYXRpb25JbldpbmRvd107CisgICAgW19kcmFnU2Vzc2lvbiBzZXRN
b2NrTG9jYXRpb25JbldpbmRvdzpsb2NhdGlvbkluV2luZG93XTsKKyAgICBbX2Ryb3BTZXNzaW9u
IHNldE1vY2tMb2NhdGlvbkluV2luZG93OmxvY2F0aW9uSW5XaW5kb3ddOwogCiAgICAgaWYgKF9j
dXJyZW50UHJvZ3Jlc3MgPj0gMSkgewogICAgICAgICBfY3VycmVudFByb2dyZXNzID0gMTsKQEAg
LTQ2Niw3ICs0ODksNyBAQCAtICh2b2lkKV9hZHZhbmNlUHJvZ3Jlc3MKICAgICBzd2l0Y2ggKF9w
aGFzZSkgewogICAgIGNhc2UgRGF0YUludGVyYWN0aW9uQmVnaW5uaW5nOiB7CiAgICAgICAgIE5T
TXV0YWJsZUFycmF5PFVJSXRlbVByb3ZpZGVyICo+ICppdGVtUHJvdmlkZXJzID0gW05TTXV0YWJs
ZUFycmF5IGFycmF5XTsKLSAgICAgICAgTlNBcnJheSAqaXRlbXMgPSBbX3dlYlZpZXcgX3NpbXVs
YXRlZEl0ZW1zRm9yU2Vzc2lvbjpfZGF0YUludGVyYWN0aW9uU2Vzc2lvbi5nZXQoKV07CisgICAg
ICAgIE5TQXJyYXkgKml0ZW1zID0gW1tfd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZV0g
ZHJhZ0ludGVyYWN0aW9uOltfd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25dIGl0ZW1zRm9yQmVnaW5u
aW5nU2Vzc2lvbjpfZHJhZ1Nlc3Npb24uZ2V0KCldOwogICAgICAgICBpZiAoIWl0ZW1zLmNvdW50
KSB7CiAgICAgICAgICAgICBfcGhhc2UgPSBEYXRhSW50ZXJhY3Rpb25DYW5jZWxsZWQ7CiAgICAg
ICAgICAgICBfY3VycmVudFByb2dyZXNzID0gMTsKQEAgLTQ3NCwxMSArNDk3LDE0IEBAIC0gKHZv
aWQpX2FkdmFuY2VQcm9ncmVzcwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgZm9yIChVSURyYWdJdGVtICppdGVtIGluIGl0ZW1zKQorICAgICAgICBmb3IgKFVJRHJh
Z0l0ZW0gKml0ZW0gaW4gaXRlbXMpIHsKICAgICAgICAgICAgIFtpdGVtUHJvdmlkZXJzIGFkZE9i
amVjdDppdGVtLml0ZW1Qcm92aWRlcl07CisgICAgICAgICAgICBVSVRhcmdldGVkRHJhZ1ByZXZp
ZXcgKmxpZnRQcmV2aWV3ID0gW1tfd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZV0gZHJh
Z0ludGVyYWN0aW9uOltfd2ViVmlldyBkcmFnSW50ZXJhY3Rpb25dIHByZXZpZXdGb3JMaWZ0aW5n
SXRlbTppdGVtIHNlc3Npb246X2RyYWdTZXNzaW9uLmdldCgpXTsKKyAgICAgICAgICAgIEVYUEVD
VF9UUlVFKCEhbGlmdFByZXZpZXcpOworICAgICAgICB9CiAKLSAgICAgICAgX2RhdGFPcGVyYXRp
b25TZXNzaW9uID0gYWRvcHROUyhbW01vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbiBhbGxvY10gaW5p
dFdpdGhQcm92aWRlcnM6aXRlbVByb3ZpZGVycyBsb2NhdGlvbjpzZWxmLl9jdXJyZW50TG9jYXRp
b24gd2luZG93Oltfd2ViVmlldyB3aW5kb3ddIGFsbG93TW92ZTpzZWxmLnNob3VsZEFsbG93TW92
ZU9wZXJhdGlvbl0pOwotICAgICAgICBbX2RhdGFJbnRlcmFjdGlvblNlc3Npb24gc2V0SXRlbXM6
aXRlbXNdOworICAgICAgICBfZHJvcFNlc3Npb24gPSBhZG9wdE5TKFtbTW9ja0Ryb3BTZXNzaW9u
IGFsbG9jXSBpbml0V2l0aFByb3ZpZGVyczppdGVtUHJvdmlkZXJzIGxvY2F0aW9uOnNlbGYuX2N1
cnJlbnRMb2NhdGlvbiB3aW5kb3c6W193ZWJWaWV3IHdpbmRvd10gYWxsb3dNb3ZlOnNlbGYuc2hv
dWxkQWxsb3dNb3ZlT3BlcmF0aW9uXSk7CisgICAgICAgIFtfZHJhZ1Nlc3Npb24gc2V0SXRlbXM6
aXRlbXNdOwogICAgICAgICBfc291cmNlSXRlbVByb3ZpZGVycyA9IGl0ZW1Qcm92aWRlcnM7CiAg
ICAgICAgIGlmIChzZWxmLnNob3dDdXN0b21BY3Rpb25TaGVldEJsb2NrKSB7CiAgICAgICAgICAg
ICAvLyBEZWZlciBwcm9ncmVzcyB1bnRpbCB0aGUgY3VzdG9tIGFjdGlvbiBzaGVldCBpcyBkaXNt
aXNzZWQuCkBAIC00ODcsNyArNTEzLDcgQEAgLSAodm9pZClfYWR2YW5jZVByb2dyZXNzCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBbX3dlYlZpZXcgX3NpbXVsYXRl
V2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246X2RhdGFJbnRlcmFjdGlvblNlc3Np
b24uZ2V0KCldOworICAgICAgICBbW193ZWJWaWV3IGRyYWdJbnRlcmFjdGlvbkRlbGVnYXRlXSBk
cmFnSW50ZXJhY3Rpb246W193ZWJWaWV3IGRyYWdJbnRlcmFjdGlvbl0gc2Vzc2lvbldpbGxCZWdp
bjpfZHJhZ1Nlc3Npb24uZ2V0KCldOwogCiAgICAgICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHJl
dGFpbmVkV2ViVmlldyA9IF93ZWJWaWV3OwogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBeKCkgewpAQCAtNDk4LDEyICs1MjQsMTIgQEAgLSAodm9pZClf
YWR2YW5jZVByb2dyZXNzCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIERhdGFJbnRl
cmFjdGlvbkJlZ2FuOgotICAgICAgICBbX3dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9u
RW50ZXJlZDpfZGF0YU9wZXJhdGlvblNlc3Npb24uZ2V0KCldOworICAgICAgICBbW193ZWJWaWV3
IGRyb3BJbnRlcmFjdGlvbkRlbGVnYXRlXSBkcm9wSW50ZXJhY3Rpb246W193ZWJWaWV3IGRyb3BJ
bnRlcmFjdGlvbl0gc2Vzc2lvbkRpZEVudGVyOl9kcm9wU2Vzc2lvbi5nZXQoKV07CiAgICAgICAg
IF9waGFzZSA9IERhdGFJbnRlcmFjdGlvbkVudGVyZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGF0YUludGVyYWN0aW9uRW50ZXJlZDogewotICAgICAgICBhdXRvIG9wZXJhdGlvbiA9IHN0
YXRpY19jYXN0PFVJRHJvcE9wZXJhdGlvbj4oW193ZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFj
dGlvblVwZGF0ZWQ6X2RhdGFPcGVyYXRpb25TZXNzaW9uLmdldCgpXSk7Ci0gICAgICAgIF9zaG91
bGRQZXJmb3JtT3BlcmF0aW9uID0gb3BlcmF0aW9uID09IFVJRHJvcE9wZXJhdGlvbkNvcHkgfHwg
KFtfZGF0YU9wZXJhdGlvblNlc3Npb24gYWxsb3dzTW92ZU9wZXJhdGlvbl0gJiYgb3BlcmF0aW9u
ICE9IFVJRHJvcE9wZXJhdGlvbkNhbmNlbCk7CisgICAgICAgIGF1dG8gb3BlcmF0aW9uID0gc3Rh
dGljX2Nhc3Q8VUlEcm9wT3BlcmF0aW9uPihbW193ZWJWaWV3IGRyb3BJbnRlcmFjdGlvbkRlbGVn
YXRlXSBkcm9wSW50ZXJhY3Rpb246W193ZWJWaWV3IGRyb3BJbnRlcmFjdGlvbl0gc2Vzc2lvbkRp
ZFVwZGF0ZTpfZHJvcFNlc3Npb24uZ2V0KCldLm9wZXJhdGlvbik7CisgICAgICAgIF9zaG91bGRQ
ZXJmb3JtT3BlcmF0aW9uID0gb3BlcmF0aW9uID09IFVJRHJvcE9wZXJhdGlvbkNvcHkgfHwgKFtf
ZHJvcFNlc3Npb24gYWxsb3dzTW92ZU9wZXJhdGlvbl0gJiYgb3BlcmF0aW9uICE9IFVJRHJvcE9w
ZXJhdGlvbkNhbmNlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgpAQCAt
NTg5LDcgKzYxNSw3IEBAIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hv
d0N1c3RvbVNoZWV0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlCiAgICAgUmV0YWluUHRyPERh
dGFJbnRlcmFjdGlvblNpbXVsYXRvcj4gc3Ryb25nU2VsZiA9IHNlbGY7CiAgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXigpIHsKICAgICAgICAgRGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yICp3ZWFrU2VsZiA9IHN0cm9uZ1NlbGYuZ2V0KCk7Ci0gICAgICAgIFt3
ZWFrU2VsZi0+X3dlYlZpZXcgX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aFNl
c3Npb246d2Vha1NlbGYtPl9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uLmdldCgpXTsKKyAgICAgICAg
W1t3ZWFrU2VsZi0+X3dlYlZpZXcgZHJhZ0ludGVyYWN0aW9uRGVsZWdhdGVdIGRyYWdJbnRlcmFj
dGlvbjpbd2Vha1NlbGYtPl93ZWJWaWV3IGRyYWdJbnRlcmFjdGlvbl0gc2Vzc2lvbldpbGxCZWdp
bjp3ZWFrU2VsZi0+X2RyYWdTZXNzaW9uLmdldCgpXTsKICAgICAgICAgd2Vha1NlbGYtPl9waGFz
ZSA9IERhdGFJbnRlcmFjdGlvbkJlZ2FuOwogICAgICAgICBbd2Vha1NlbGYgX3NjaGVkdWxlQWR2
YW5jZVByb2dyZXNzXTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
aW9zL1VJS2l0U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCmluZGV4
IDlkY2IyMjMxMWJjMzFkZTE1ZDU1NWM2ZDExYjJlZjQ2ZWVjZjFjOTAuLmUwMmY1MzY3ZjE3Njk4
OWUyYjhlNzE3NmJhYWRmMzE3YjkyMmZhYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvaW9zL1VJS2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEku
aApAQCAtMjUsOSArMjUsMTYgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2lmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTEwMDAwCitAcHJvdG9jb2wgVUlEcmFnU2Vzc2lv
bjsKK0BjbGFzcyBVSURyYWdJbnRlcmFjdGlvbjsKK0BjbGFzcyBVSURyYWdJdGVtOworI2VuZGlm
CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01B
WF9BTExPV0VEID49IDExMDAwMAogCiAjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0aW9uX1ByaXZh
dGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJRHJhZ0ludGVyYWN0aW9uX1ByaXZhdGUuaD4KIAogI2Vs
c2UKIApAQCAtMzcsNiArNDQsMTkgQEAgdm9pZCBVSUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSh2b2lk
KTsKIAogV1RGX0VYVEVSTl9DX0VORAogCisjaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSAxMTAwMDAKK0Bwcm90b2NvbCBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlX0Zvcldl
YktpdE9ubHkgPFVJRHJhZ0ludGVyYWN0aW9uRGVsZWdhdGU+CitAb3B0aW9uYWwKKy0gKHZvaWQp
X2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJl
Rm9yU2Vzc2lvbjooaWQ8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lvbiBjb21wbGV0aW9uOih2b2lkKF4p
KHZvaWQpKWNvbXBsZXRpb247CitAZW5kCisjZW5kaWYgLy8gX19JUEhPTkVfT1NfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxMTAwMDAKKwogI2VuZGlmCiAKKyNpZiBfX0lQSE9ORV9PU19WRVJTSU9O
X01BWF9BTExPV0VEID49IDExMDAwMAorQHByb3RvY29sIFVJRHJhZ0ludGVyYWN0aW9uRGVsZWdh
dGVfUHJvcG9zZWRfU1BJXzMzMTQ2ODAzIDxVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlPgorLSAo
dm9pZClfZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGl0
ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOihpZCA8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lvbiB3aXRoVG91
Y2hBdFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheTxVSURy
YWdJdGVtICo+ICopKWNvbXBsZXRpb247CitAZW5kCisjZW5kaWYgLy8gX19JUEhPTkVfT1NfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSAxMTAwMDAKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>