<?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>7148</bug_id>
          
          <creation_ts>2006-02-08 21:33:38 -0800</creation_ts>
          <short_desc>Add drag and drop support to DumpRenderTree</short_desc>
          <delta_ts>2006-02-20 14:56:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          <cc>vicki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31912</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-02-08 21:33:38 -0800</bug_when>
    <thetext>It would be sweet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31935</commentid>
    <comment_count>1</comment_count>
      <attachid>6362</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-02-09 03:22:33 -0800</bug_when>
    <thetext>Created attachment 6362
patch

First cut.  Works but I&apos;d like comments.  Setting the review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31936</commentid>
    <comment_count>2</comment_count>
      <attachid>6363</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-02-09 03:23:56 -0800</bug_when>
    <thetext>Created attachment 6363
patch

oops wrong patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32029</commentid>
    <comment_count>3</comment_count>
      <attachid>6363</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-10 08:30:22 -0800</bug_when>
    <thetext>Comment on attachment 6363
patch

If a page is not a test in itself, you should put it in a resources subdirectory. That way the test script won&apos;t generate separate results for the test.

If updateFocusState is now SPI, can we remove the _setWindowHasFocus: and _setDisplaysWithFocusAttributes: SPI? Also, why doesn&apos;t setDisplaysWithFocusAttributes: call updateFocusState?

I don&apos;t think it&apos;s a good technique to have DumpRenderTree pose as WebHTMLView. We do that with AppKit classes because we don&apos;t have any alternative, but since DumpRenderTree and WebHTMLView are both part of WebKit, we can expose whatever we need as SPI or API instead of doing the &quot;pose&quot; thing. For example, we could have an SPI delegate method on the UI delegate to start drags. But I suppose we could land it with the posing if that&apos;s significantly easier to write.

This otherwise looks pretty good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33532</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-02-20 14:56:31 -0800</bug_when>
    <thetext>I landed a fix for this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6362</attachid>
            <date>2006-02-09 03:22:33 -0800</date>
            <delta_ts>2006-02-09 03:23:56 -0800</delta_ts>
            <desc>patch</desc>
            <filename>7148.txt</filename>
            <type>text/plain</type>
            <size>22857</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTI3MTEpCisrKyBKYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0zOTAsNyArMzkwLDcgQEAKIAkJOTMzQTM0OTkwMzhBRTdDNjAwODYzNUNFIC8qIGdyYW1tYXIu
eSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS55YWNjOyBwYXRoID0gZ3Jh
bW1hci55OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTkzM0Ez
NDlBMDM4QUU3QzYwMDg2MzVDRSAvKiBpZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTkzM0EzNDlEMDM4QUU4MEYwMDg2MzVDRSAv
KiBpZGVudGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gaWRlbnRpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKLQkJOTM1RjY5RjYwODI0NEZFQTAwM0QxQTQ1IC8qIGRmdGFibGVzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBkZnRhYmxlczsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJOTM1RjY5RjYwODI0NEZFQTAw
M0QxQTQ1IC8qIGRmdGFibGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFi
bGUiOyBwYXRoID0gZGZ0YWJsZXM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTkzNjRCMjczMDQ1QjdENkMwMEE5Q0FDMSAvKiBmcGNvbnN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZnBjb25zdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTM3MzUyNEUwMzhEQThD
MjAwODYzNUNFIC8qIGNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgfTsKIAkJOTM3NEQzQTcwMzhEOUQ3NDAwODYzNUNFIC8qIHNjb3BlX2NoYWluLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc2NvcGVf
Y2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy10by1jb250ZW50ZWRpdGFibGUtaWZy
YW1lLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFtZS1leHBlY3RlZC5jaGVja3N1
bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctdG8t
Y29udGVudGVkaXRhYmxlLWlmcmFtZS1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSBAQAorZWMxNzg4YWFmNzQwYjIwZTIzODkzYTU3NTBlM2JiMzQKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250
ZW50ZWRpdGFibGUtaWZyYW1lLXNyYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGVudGVkaXRhYmxlLWlmcmFtZS1zcmMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29u
dGVudGVkaXRhYmxlLWlmcmFtZS1zcmMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxIEBACitUaGlzIGlzIG5vdCB0ZXN0IGluIGl0c2VsZiwgaXQgaXMgdXNlZCBhcyB0aGUgc3Jj
IG9mIGFuIGlmcmFtZSBpbiBkcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFt
ZS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy10
by1jb250ZW50ZWRpdGFibGUtaWZyYW1lLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2
bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZW50ZWRpdGFibGUtaWZyYW1lLXNyYy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRlbnRlZGl0YWJs
ZS1pZnJhbWUtc3JjLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9jb250ZW50ZWRpdGFibGUtaWZyYW1lLXNyYy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEyIEBACis8Ym9keSBiZ2NvbG9yPSJsaWdodHllbGxvdyIgY29udGVudGVkaXRhYmxl
PgorCis8c2NyaXB0PgoraWYgKCFwYXJlbnQuZnJhbWVzWzBdKSB7CisgICAgZG9jdW1lbnQud3Jp
dGUoIlRoaXMgaXMgbm90IHRlc3QgaW4gaXRzZWxmLCBpdCBpcyB1c2VkIGFzIHRoZSBzcmMgb2Yg
YW4gaWZyYW1lIGluIGRyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFtZSIpOworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9IAorCis8L3NjcmlwdD4KKworPC9ib2R5PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy10by1jb250ZW50ZWRpdGFibGUt
aWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFtZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0Tm9kZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFj
aW5nRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAg
b2YgQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0luc2VydEFjdGlv
bkRyb3BwZWQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gMCBvZiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gMCBvZiBJTUcgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mIEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDAsMCkgc2l6
ZSA4MDB4NTg0CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDgw
MHgyMTIKKyAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDIw
OHgyMDggW2JvcmRlcjogKDRweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDIwMHgyMDAKKyAgICAgICAgICAgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXpl
IDIwMHgyMDAKKyAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICAgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxODR4MTg0IFtiZ2NvbG9yPSNGRkZG
RTBdCisgICAgICAgICAgICAgICAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6ZSA3Nngx
MDMKKyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDIwOCwxOTQpIHNpemUgNHgxOAorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyMDgsMTk0KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVy
SW1hZ2Uge0lNR30gYXQgKDIxMiwxMDUpIHNpemUgNzZ4MTAzCisgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgxNiwy
MjgpIHNpemUgNzY4eDU0CisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDApIHNp
emUgNzI4eDE4CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTQK
KyAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDE1OHgxOAorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTU4OiAiTW91c2luZyBkb3duIG9uIGltYWdl
IgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwxOCkgc2l6ZSA3Mjh4MTgKKyAg
ICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgwLDApIHNpemUgMHgxNAorICAgICAgICAgIFJl
bmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMTQ4eDE4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAxNDg6ICJEcmFnZ2luZyB0byBkZXN0aW5hdGlvbiIKKyAgICAgICAg
UmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMzYpIHNpemUgNzI4eDE4CisgICAgICAgICAgUmVu
ZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTQKKyAgICAgICAgICBSZW5kZXJUZXh0IHtU
RVhUfSBhdCAoMCwwKSBzaXplIDYxeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA2MTogIkRyb3BwaW5nIgorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxk
IDAge0lNR30gb2YgY2hpbGQgMCB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQK
K3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMSBvZiBjaGlsZCAwIHtJTUd9IG9mIGNoaWxkIDAg
e0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRl
ZGl0YWJsZS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFtZS5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDU4IEBACis8aHRtbD4KKworPGhlYWQ+Cis8c2NyaXB0PgorDXZhciBzdGFy
dFggPSAyMjU7DXZhciBzdGFydFkgPSAxNzU7DXZhciBlbmRYID0gMTAwOw12YXIgZW5kWSA9IDEw
MDsKKw0KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7DSAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7DSAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJsaSIpOw0gICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlKTsNICAgIA0gICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7DSAgICBsaS5hcHBlbmRDaGls
ZCh0ZXh0KTsNfQorCitmdW5jdGlvbiBydW5UZXN0KCkgCit7CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIGVsc2UgeworICAgICAgICBsb2coIlRoaXMgdGVzdCB1c2VzIER1bXBSZW5k
ZXJUcmVlJ3MgZHJhZyAmIGRyb3Agc3VwcG9ydCB0byB0ZXN0IHRoYXQgYW4gaW1hZ2UgY2FuIHN1
Y2Nlc3NmdWxseSBiZSBkcm9wcGVkIGludG8gYSBjb250ZW50ZWRpdGFibGUgaWZyYW1lLiAgVG8g
cnVuIGl0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBpbnRvIHRoZSBpZnJhbWUgYW5kIGRyb3Ag
aXQuICBJdCBzaG91bGQgYXBwZWFyIGluc2lkZSB0aGUgaWZyYW1lLiIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisJd2luZG93LnNldFRpbWVvdXQoJ3N0ZXAxKCknLCA1KTsKK30KKworZnVu
Y3Rpb24gc3RlcDEoKQoreworICAgIGxvZygiTW91c2luZyBkb3duIG9uIGltYWdlIik7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRYLCBzdGFydFkpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworCisgICAgd2luZG93LnNldFRpbWVvdXQoJ3N0ZXAyKCknLCAxMDAwKTsK
K30KKworZnVuY3Rpb24gc3RlcDIoKSB7CisgICAgbG9nKCJEcmFnZ2luZyB0byBkZXN0aW5hdGlv
biIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGVuZFggKyAxLCBlbmRZICsgMSk7Cisg
ICAgCisgICAgd2luZG93LnNldFRpbWVvdXQoJ3N0ZXAzKCknLCAyMDApOw0gICAgCit9CisKK2Z1
bmN0aW9uIHN0ZXAzKCkgew0gICAgbG9nKCJEcm9wcGluZyIpOw0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oZW5kWCwgZW5kWSk7DQorICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAK
KyAgICB3aW5kb3cuc2V0VGltZW91dCgnc3RlcDQoKScsIDIwMCk7Cit9CisKK2Z1bmN0aW9uIHN0
ZXA0KCkKK3sNICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+
CisKKzxib2R5IHN0eWxlPSJwYWRkaW5nOjA7IG1hcmdpbjowIj4gIAorCis8aWZyYW1lIHN0eWxl
PSJtYXJnaW46IDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBib3JkZXI6IDRweCBz
b2xpZCBibGFjazsiIHNyYz0iY29udGVudGVkaXRhYmxlLWlmcmFtZS1zcmMuaHRtbCI+PC9pZnJh
bWU+CisKKzxpbWcgc3JjPSIuLi9hYmUuanBnIj4KKzx1bCBzdHlsZT0ibGlzdC1zdHlsZTpjaXJj
bGU7IG1hcmdpbjogMWVtOyIgaWQ9ImNvbnNvbGUiPjwvdWw+Cis8c2NyaXB0PnJ1blRlc3QoKTwv
c2NyaXB0PgorPC9ib2R5PgpJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViSFRNTFZpZXcubQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJIVE1MVmlldy5tCShyZXZpc2lvbiAxMjcxMSkK
KysrIFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm0JKHdvcmtpbmcgY29weSkKQEAgLTE5Myw3
ICsxOTMsNiBAQAogLSAodm9pZClfZGVsZXRlU2VsZWN0aW9uOwogLSAoQk9PTClfY2FuU21hcnRS
ZXBsYWNlV2l0aFBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQ7CiAtIChOU1Zp
ZXcgKilfaGl0Vmlld0ZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQ7Ci0tICh2b2lkKXVwZGF0ZUZv
Y3VzU3RhdGU7CiAtICh2b2lkKV93cml0ZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkVHlwZXM6KE5T
QXJyYXkgKil0eXBlcyB0b1Bhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgY2Fj
aGVkQXR0cmlidXRlZFN0cmluZzooTlNBdHRyaWJ1dGVkU3RyaW5nICopYXR0cmlidXRlZFN0cmlu
ZzsKIEBlbmQKIApAQCAtNjI2LDI5ICs2MjUsNiBAQAogICAgIH0KIH0KIAotLSAodm9pZCl1cGRh
dGVGb2N1c1N0YXRlCi17Ci0gICAgLy8gVGhpcyBtZXRob2QgZG9lcyB0aGUgam9iIG9mIHVwZGF0
aW5nIHRoZSB2aWV3IGJhc2VkIG9uIHRoZSB2aWV3J3MgZmlyc3RSZXNwb25kZXItbmVzcyBhbmQK
LSAgICAvLyB0aGUgd2luZG93IGtleS1uZXNzIG9mIHRoZSB3aW5kb3cgY29udGFpbmluZyB0aGlz
IHZpZXcuIFRoaXMgaW52b2x2ZXMgZm91ciBraW5kcyBvZiAKLSAgICAvLyBkcmF3aW5nIHVwZGF0
ZXMgcmlnaHQgbm93LCBhbGwgaGFuZGxlZCBpbiBXZWJDb3JlIGluIHJlc3BvbnNlIHRvIHRoZSBj
YWxsIG92ZXIgdGhlIGJyaWRnZS4gCi0gICAgLy8gCi0gICAgLy8gVGhlIGZvdXIgZGlzcGxheSBh
dHRyaWJ1dGVzIGFyZSBhcyBmb2xsb3dzOgotICAgIC8vIAotICAgIC8vIDEuIFRoZSBiYWNrZ3Jv
dW5kIGNvbG9yIHVzZWQgdG8gZHJhdyBiZWhpbmQgc2VsZWN0ZWQgY29udGVudCAoYWN0aXZlIHwg
aW5hY3RpdmUgY29sb3IpCi0gICAgLy8gMi4gQ2FyZXQgYmxpbmtpbmcgKGJsaW5rcyB8IGRvZXMg
bm90IGJsaW5rKQotICAgIC8vIDMuIFRoZSBkcmF3aW5nIG9mIGEgZm9jdXMgcmluZyBhcm91bmQg
bGlua3MgaW4gd2ViIHBhZ2VzLgotICAgIC8vIDQuIENoYW5naW5nIHRoZSB0aW50IG9mIGNvbnRy
b2xzIGZyb20gY2xlYXIgdG8gYXF1YS9ncmFwaGl0ZSBhbmQgdmljZSB2ZXJzYQotICAgIC8vCi0g
ICAgLy8gQWxzbywgdGhpcyBpcyByZXNwb25zaWJsZSBmb3IgbGV0dGluZyB0aGUgYnJpZGdlIGtu
b3cgaWYgdGhlIHdpbmRvdyBoYXMgZ2FpbmVkIG9yIGxvc3QgZm9jdXMKLSAgICAvLyBzbyB3ZSBj
YW4gc2VuZCBmb2N1cyBhbmQgYmx1ciBldmVudHMuCi0KLSAgICBCT09MIHdpbmRvd0lzS2V5ID0g
W1tzZWxmIHdpbmRvd10gaXNLZXlXaW5kb3ddOwotICAgIEJPT0wgZmxhZyA9ICFfcHJpdmF0ZS0+
cmVzaWduaW5nRmlyc3RSZXNwb25kZXIgJiYgd2luZG93SXNLZXkgJiYgW3NlbGYgX3dlYl9maXJz
dFJlc3BvbmRlckNhdXNlc0ZvY3VzRGlzcGxheV07Ci0gICAgCi0gICAgW3NlbGYgX3NldERpc3Bs
YXlzV2l0aEZvY3VzQXR0cmlidXRlczpmbGFnXTsKLSAgICBbc2VsZiBfc2V0V2luZG93SGFzRm9j
dXM6d2luZG93SXNLZXldOwotfQotCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJIVE1MVmll
dyAoV2ViUHJpdmF0ZSkKQEAgLTE2NjIsNiArMTYzOCwyOSBAQAogICAgIFtbc2VsZiBfYnJpZGdl
XSBzZXREaXNwbGF5c1dpdGhGb2N1c0F0dHJpYnV0ZXM6ZmxhZ107CiB9CiAKKy0gKHZvaWQpdXBk
YXRlRm9jdXNTdGF0ZQoreworICAgIC8vIFRoaXMgbWV0aG9kIGRvZXMgdGhlIGpvYiBvZiB1cGRh
dGluZyB0aGUgdmlldyBiYXNlZCBvbiB0aGUgdmlldydzIGZpcnN0UmVzcG9uZGVyLW5lc3MgYW5k
CisgICAgLy8gdGhlIHdpbmRvdyBrZXktbmVzcyBvZiB0aGUgd2luZG93IGNvbnRhaW5pbmcgdGhp
cyB2aWV3LiBUaGlzIGludm9sdmVzIGZvdXIga2luZHMgb2YgCisgICAgLy8gZHJhd2luZyB1cGRh
dGVzIHJpZ2h0IG5vdywgYWxsIGhhbmRsZWQgaW4gV2ViQ29yZSBpbiByZXNwb25zZSB0byB0aGUg
Y2FsbCBvdmVyIHRoZSBicmlkZ2UuIAorICAgIC8vIAorICAgIC8vIFRoZSBmb3VyIGRpc3BsYXkg
YXR0cmlidXRlcyBhcmUgYXMgZm9sbG93czoKKyAgICAvLyAKKyAgICAvLyAxLiBUaGUgYmFja2dy
b3VuZCBjb2xvciB1c2VkIHRvIGRyYXcgYmVoaW5kIHNlbGVjdGVkIGNvbnRlbnQgKGFjdGl2ZSB8
IGluYWN0aXZlIGNvbG9yKQorICAgIC8vIDIuIENhcmV0IGJsaW5raW5nIChibGlua3MgfCBkb2Vz
IG5vdCBibGluaykKKyAgICAvLyAzLiBUaGUgZHJhd2luZyBvZiBhIGZvY3VzIHJpbmcgYXJvdW5k
IGxpbmtzIGluIHdlYiBwYWdlcy4KKyAgICAvLyA0LiBDaGFuZ2luZyB0aGUgdGludCBvZiBjb250
cm9scyBmcm9tIGNsZWFyIHRvIGFxdWEvZ3JhcGhpdGUgYW5kIHZpY2UgdmVyc2EKKyAgICAvLwor
ICAgIC8vIEFsc28sIHRoaXMgaXMgcmVzcG9uc2libGUgZm9yIGxldHRpbmcgdGhlIGJyaWRnZSBr
bm93IGlmIHRoZSB3aW5kb3cgaGFzIGdhaW5lZCBvciBsb3N0IGZvY3VzCisgICAgLy8gc28gd2Ug
Y2FuIHNlbmQgZm9jdXMgYW5kIGJsdXIgZXZlbnRzLgorCisgICAgQk9PTCB3aW5kb3dJc0tleSA9
IFtbc2VsZiB3aW5kb3ddIGlzS2V5V2luZG93XTsKKyAgICBCT09MIGZsYWcgPSAhX3ByaXZhdGUt
PnJlc2lnbmluZ0ZpcnN0UmVzcG9uZGVyICYmIHdpbmRvd0lzS2V5ICYmIFtzZWxmIF93ZWJfZmly
c3RSZXNwb25kZXJDYXVzZXNGb2N1c0Rpc3BsYXldOworICAgIAorICAgIFtzZWxmIF9zZXREaXNw
bGF5c1dpdGhGb2N1c0F0dHJpYnV0ZXM6ZmxhZ107CisgICAgW3NlbGYgX3NldFdpbmRvd0hhc0Zv
Y3VzOndpbmRvd0lzS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTlNWaWV3IChX
ZWJIVE1MVmlld0ZpbGVJbnRlcm5hbCkKSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3UHJpdmF0
ZS5oCShyZXZpc2lvbiAxMjcxMSkKKysrIFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3UHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw1ICs5Niw2IEBACiAvLyBNYWRlIGludG8gU1BJIHNv
IHRoYXQgRHVtcFJlbmRlclRyZWUgY291bGQgdGVzdCB0aGUgYmVoYXZpb3IgYW5kIGFwcGVhcmFu
Y2Ugb2YgYSBXZWJIVE1MVmlldyB0aGF0IGlzIGZvY3VzZWQuCiAtICh2b2lkKV9zZXRXaW5kb3dI
YXNGb2N1czooQk9PTClmbGFnOwogLSAodm9pZClfc2V0RGlzcGxheXNXaXRoRm9jdXNBdHRyaWJ1
dGVzOihCT09MKWZsYWc7CistICh2b2lkKXVwZGF0ZUZvY3VzU3RhdGU7CiAKIEBlbmQKSW5kZXg6
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLm0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUubQkocmV2aXNpb24g
MTI3MTEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5tCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSwzMiBAQAogI2ltcG9ydCAiTmF2aWdhdGlvbkNvbnRy
b2xsZXIuaCIKICNpbXBvcnQgIkFwcGxlU2NyaXB0Q29udHJvbGxlci5oIgogCitAaW50ZXJmYWNl
IER1bXBSZW5kZXJUcmVlV2ViSFRNTFZpZXcgOiBXZWJIVE1MVmlldworQGVuZAorCitAaW50ZXJm
YWNlIER1bXBSZW5kZXJUcmVlVmlldyA6IE5TVmlldworQGVuZAorCitAaW50ZXJmYWNlIER1bXBS
ZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIDogTlNPYmplY3QgPE5TRHJhZ2dpbmdJbmZvPgoreworQHBy
aXZhdGUKKyAgICBOU1NpemUgb2Zmc2V0OworICAgIE5TSW1hZ2UgKmRyYWdnZWRJbWFnZTsKKyAg
ICBOU1Bhc3RlYm9hcmQgKmRyYWdnaW5nUGFzdGVib2FyZDsKKyAgICBpZCBkcmFnZ2luZ1NvdXJj
ZTsKK30KKy0gKE5TV2luZG93ICopZHJhZ2dpbmdEZXN0aW5hdGlvbldpbmRvdzsKKy0gKE5TRHJh
Z09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2s7CistIChOU1BvaW50KWRyYWdn
aW5nTG9jYXRpb247CistIChOU1BvaW50KWRyYWdnZWRJbWFnZUxvY2F0aW9uOworLSAoTlNJbWFn
ZSAqKWRyYWdnZWRJbWFnZTsKKy0gKE5TUGFzdGVib2FyZCAqKWRyYWdnaW5nUGFzdGVib2FyZDsK
Ky0gKGlkKWRyYWdnaW5nU291cmNlOworLSAoaW50KWRyYWdnaW5nU2VxdWVuY2VOdW1iZXI7Cist
ICh2b2lkKXNsaWRlRHJhZ2dlZEltYWdlVG86KE5TUG9pbnQpc2NyZWVuUG9pbnQ7CistIChOU0Fy
cmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwgKilk
cm9wRGVzdGluYXRpb247CitAZW5kCisKIEBpbnRlcmZhY2UgRHVtcFJlbmRlclRyZWVQYXN0ZWJv
YXJkIDogTlNQYXN0ZWJvYXJkCiBAZW5kCiAKQEAgLTYzLDEyICs4OSwxMCBAQAogCiBAaW50ZXJm
YWNlIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgOiBOU09iamVjdAogewotICAgIE5TUG9pbnQgbGFz
dDsKICAgICBCT09MIGRvd247CiAgICAgaW50IGNsaWNrQ291bnQ7CiAgICAgTlNUaW1lSW50ZXJ2
YWwgbGFzdENsaWNrOwogfQotCiBAZW5kCiAKIHN0YXRpYyB2b2lkIGR1bXBSZW5kZXJUcmVlKGNv
bnN0IGNoYXIgKmZpbGVuYW1lKTsKQEAgLTg2LDYgKzExMCwxMCBAQAogc3RhdGljIEJPT0wgcHJp
bnRTZXBhcmF0b3JzOwogc3RhdGljIE5TU3RyaW5nICpjdXJyZW50VGVzdCA9IG5pbDsKIHN0YXRp
YyBOU1Bhc3RlYm9hcmQgKmxvY2FsUGFzdGVib2FyZDsKK3N0YXRpYyBCT09MIHdpbmRvd0hhc0Zv
Y3VzID0gWUVTOworc3RhdGljIEJPT0wgZGlzcGxheVdpdGhGb2N1c0F0dHJpYnV0ZXMgPSBZRVM7
CitzdGF0aWMgTlNQb2ludCBsYXN0TW91c2VQb3NpdGlvbjsKK3N0YXRpYyBEdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvOwogCiBzdGF0aWMgQ01Qcm9maWxlUmVmIGN1cnJl
bnRDb2xvclByb2ZpbGUgPSAwOwogc3RhdGljIHZvaWQgcmVzdG9yZUNvbG9yU3BhY2UoaW50IGln
bm9yZWQpCkBAIC0xNDAsNiArMTY4LDggQEAKICAgICBbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBs
aWNhdGlvbl07CiAKICAgICBjbGFzc19wb3NlQXMob2JqY19nZXRDbGFzcygiRHVtcFJlbmRlclRy
ZWVQYXN0ZWJvYXJkIiksIG9iamNfZ2V0Q2xhc3MoIk5TUGFzdGVib2FyZCIpKTsKKyAgICBjbGFz
c19wb3NlQXMob2JqY19nZXRDbGFzcygiRHVtcFJlbmRlclRyZWVWaWV3IiksIG9iamNfZ2V0Q2xh
c3MoIk5TVmlldyIpKTsKKyAgICBjbGFzc19wb3NlQXMob2JqY19nZXRDbGFzcygiRHVtcFJlbmRl
clRyZWVXZWJIVE1MVmlldyIpLCBvYmpjX2dldENsYXNzKCJXZWJIVE1MVmlldyIpKTsKICAgICAK
ICAgICBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKICAgICAgICAgeyJwaXhlbC10ZXN0cyIs
IG5vX2FyZ3VtZW50LCAmZHVtcFBpeGVscywgWUVTfSwKQEAgLTE5Myw3ICsyMjMsOCBAQAogICAg
IGxvY2FsUGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhVbmlxdWVOYW1l
XTsKICAgICBuYXZpZ2F0aW9uQ29udHJvbGxlciA9IFtbTmF2aWdhdGlvbkNvbnRyb2xsZXIgYWxs
b2NdIGluaXRdOwogCi0gICAgV2ViVmlldyAqd2ViVmlldyA9IFtbV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07CisgICAgTlNTaXplIHNpemUg
PSBOU01ha2VTaXplKDgwMCwgNjAwKTsKKyAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5o
ZWlnaHQpXTsKICAgICBXYWl0VW50aWxEb25lRGVsZWdhdGUgKmRlbGVnYXRlID0gW1tXYWl0VW50
aWxEb25lRGVsZWdhdGUgYWxsb2NdIGluaXRdOwogICAgIEVkaXRpbmdEZWxlZ2F0ZSAqZWRpdGlu
Z0RlbGVnYXRlID0gW1tFZGl0aW5nRGVsZWdhdGUgYWxsb2NdIGluaXRdOwogICAgIFt3ZWJWaWV3
IHNldEZyYW1lTG9hZERlbGVnYXRlOmRlbGVnYXRlXTsKQEAgLTIwMSw2ICsyMzIsMTAgQEAKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlXTsKICAgICBmcmFtZSA9IFt3ZWJWaWV3
IG1haW5GcmFtZV07CiAgICAgCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxs
b2NdIGluaXRdOworICAgIFt3aW5kb3cgc2V0Q29udGVudFZpZXc6d2ViVmlld107CisgICAgW3dp
bmRvdyBzZXRDb250ZW50U2l6ZTpzaXplXTsKKyAgICAKICAgICBbd2ViVmlldyBzZXRDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6WUVTXTsKICAgICAKICAgICAvLyBGb3IgcmVhc29ucyB0
aGF0IGFyZSBub3QgZW50aXJlbHkgY2xlYXIsIHRoZSBmb2xsb3dpbmcgcGFpciBvZiBjYWxscyBt
YWtlcyBXZWJWaWV3IGhhbmRsZSBpdHMKQEAgLTIzNyw2ICsyNzIsNyBAQAogICAgIFt3ZWJWaWV3
IHJlbGVhc2VdOwogICAgIFtkZWxlZ2F0ZSByZWxlYXNlXTsKICAgICBbZWRpdGluZ0RlbGVnYXRl
IHJlbGVhc2VdOworICAgIFt3aW5kb3cgcmVsZWFzZV07CiAKICAgICBbbG9jYWxQYXN0ZWJvYXJk
IHJlbGVhc2VHbG9iYWxseV07CiAgICAgbG9jYWxQYXN0ZWJvYXJkID0gbmlsOwpAQCAtMzI5LDEw
ICszNjUsMTAgQEAKIHsKICAgICBpZiAoZnJhbWUgPT0gZikKICAgICAgICAgcmVhZHlUb0R1bXAg
PSBOTzsKLSAgICAgICAgCi0gICAgaWYgKFtbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3
XSBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKSB7Ci0gICAgICAgIFsoV2ViSFRN
TFZpZXcgKilbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBfc2V0V2luZG93SGFzRm9j
dXM6WUVTXTsKLSAgICAgICAgWyhXZWJIVE1MVmlldyAqKVtbZnJhbWUgZnJhbWVWaWV3XSBkb2N1
bWVudFZpZXddIF9zZXREaXNwbGF5c1dpdGhGb2N1c0F0dHJpYnV0ZXM6WUVTXTsKKyAgICAKKyAg
ICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtbZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXdd
OworICAgIGlmIChbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNz
XV0pIHsKKyAgICAgICAgWyhXZWJIVE1MVmlldyAqKWRvY3VtZW50VmlldyB1cGRhdGVGb2N1c1N0
YXRlXTsKICAgICB9CiB9CiAKQEAgLTU1NywxNCArNTkzLDE5IEBACiAKIC0gKHZvaWQpc2V0V2lu
ZG93SGFzRm9jdXM6KEJPT0wpZmxhZwogewotICAgIGlmIChbW1tmcmFtZSBmcmFtZVZpZXddIGRv
Y3VtZW50Vmlld10gaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKLSAgICAgICAg
WyhXZWJIVE1MVmlldyAqKVtbZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIF9zZXRXaW5k
b3dIYXNGb2N1czpmbGFnXTsKKyAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtbZnJhbWUgZnJh
bWVWaWV3XSBkb2N1bWVudFZpZXddOworICAgIGlmIChbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xh
c3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsKKyAgICAgICAgd2luZG93SGFzRm9jdXMgPSBmbGFn
OworICAgICAgICBbKFdlYkhUTUxWaWV3ICopZG9jdW1lbnRWaWV3IHVwZGF0ZUZvY3VzU3RhdGVd
OworICAgIH0KIH0KIAogLSAodm9pZClzZXREaXNwbGF5c1dpdGhGb2N1c0F0dHJpYnV0ZXM6KEJP
T0wpZmxhZwogewotICAgIGlmIChbW1tmcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gaXNL
aW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKLSAgICAgICAgWyhXZWJIVE1MVmlldyAq
KVtbZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIF9zZXREaXNwbGF5c1dpdGhGb2N1c0F0
dHJpYnV0ZXM6ZmxhZ107CisgICAgaWYgKFtbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3
XSBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKSB7CisgICAgICAgIGRpc3BsYXlX
aXRoRm9jdXNBdHRyaWJ1dGVzID0gZmxhZzsKKyAgICAgICAgWyhXZWJIVE1MVmlldyAqKVtbZnJh
bWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIF9zZXRXaW5kb3dIYXNGb2N1czpmbGFnXTsKKyAg
ICB9CiB9CiAKIEBlbmQKQEAgLTU4OSw3ICs2MzAsNiBAQAogCiAtIChpZClpbml0CiB7Ci0gICAg
bGFzdCA9IE5TTWFrZVBvaW50KDAsIDApOwogICAgIGRvd24gPSBOTzsKICAgICBjbGlja0NvdW50
ID0gMDsKICAgICBsYXN0Q2xpY2sgPSAwOwpAQCAtNjAzLDcgKzY0Myw3IEBACiAgICAgICAgIGNs
aWNrQ291bnQgPSAxOwogICAgIGVsc2UKICAgICAgICAgY2xpY2tDb3VudCsrOwotICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBs
b2NhdGlvbjpsYXN0IG1vZGlmaWVyRmxhZ3M6bmlsIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRU
aW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGV2ZW50TnVtYmVyOm5pbCBjbGlja0NvdW50OmNsaWNrQ291bnQgcHJlc3N1cmU6bmls
XTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xl
ZnRNb3VzZURvd24gbG9jYXRpb246bGFzdE1vdXNlUG9zaXRpb24gbW9kaWZpZXJGbGFnczpuaWwg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6bmlsIGNsaWNrQ291
bnQ6Y2xpY2tDb3VudCBwcmVzc3VyZTpuaWxdOwogCiAgICAgTlNWaWV3ICpzdWJWaWV3ID0gW1tm
cmFtZSB3ZWJWaWV3XSBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV07CiAgICAgaWYg
KHN1YlZpZXcpIHsKQEAgLTYxNSwyNSArNjU1LDM0IEBACiAtICh2b2lkKW1vdXNlVXAKIHsKICAg
ICBbW1tmcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKLSAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0
aW9uOmxhc3QgbW9kaWZpZXJGbGFnczpuaWwgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUo
KSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gZXZlbnROdW1iZXI6bmlsIGNsaWNrQ291bnQ6Y2xpY2tDb3VudCBwcmVzc3VyZTpuaWxdOwor
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1v
dXNlVXAgbG9jYXRpb246bGFzdE1vdXNlUG9zaXRpb24gbW9kaWZpZXJGbGFnczpuaWwgdGltZXN0
YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltOU0dyYXBo
aWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6bmlsIGNsaWNrQ291bnQ6Y2xp
Y2tDb3VudCBwcmVzc3VyZTpuaWxdOwogCiAgICAgTlNWaWV3ICpzdWJWaWV3ID0gW1tmcmFtZSB3
ZWJWaWV3XSBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV07CiAgICAgaWYgKHN1YlZp
ZXcpIHsKICAgICAgICAgW3N1YlZpZXcgbW91c2VVcDpldmVudF07CiAgICAgICAgIGRvd24gPSBO
TzsKICAgICAgICAgbGFzdENsaWNrID0gW2V2ZW50IHRpbWVzdGFtcF07CisgICAgICAgIGlmIChk
cmFnZ2luZ0luZm8pIHsKKyAgICAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbZnJhbWUgd2Vi
Vmlld107CisgICAgICAgICAgICBpZiAoW3dlYlZpZXcgZHJhZ2dpbmdVcGRhdGVkOmRyYWdnaW5n
SW5mb10gIT0gTlNEcmFnT3BlcmF0aW9uTm9uZSkKKyAgICAgICAgICAgICAgICBbd2ViVmlldyBw
ZXJmb3JtRHJhZ09wZXJhdGlvbjpkcmFnZ2luZ0luZm9dOworICAgICAgICAgICAgW2RyYWdnaW5n
SW5mbyByZWxlYXNlXTsKKyAgICAgICAgICAgIGRyYWdnaW5nSW5mbyA9IG5pbDsKKyAgICAgICAg
fQogICAgIH0KIH0KIAogLSAodm9pZCltb3VzZU1vdmVUb1g6KGludCl4IFk6KGludCl5CiB7Ci0g
ICAgbGFzdCA9IE5TTWFrZVBvaW50KHgsIFtbZnJhbWUgd2ViVmlld10gZnJhbWVdLnNpemUuaGVp
Z2h0IC0geSk7Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6KGRvd24gPyBOU0xlZnRNb3VzZURyYWdnZWQgOiBOU01vdXNlTW92ZWQpIGxvY2F0aW9uOmxh
c3QgbW9kaWZpZXJGbGFnczpuaWwgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5k
b3dOdW1iZXI6MCBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZl
bnROdW1iZXI6bmlsIGNsaWNrQ291bnQ6KGRvd24gPyBjbGlja0NvdW50IDogMCkgcHJlc3N1cmU6
bmlsXTsKKyAgICBsYXN0TW91c2VQb3NpdGlvbiA9IE5TTWFrZVBvaW50KHgsIFtbZnJhbWUgd2Vi
Vmlld10gZnJhbWVdLnNpemUuaGVpZ2h0IC0geSk7CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6KGRvd24gPyBOU0xlZnRNb3VzZURyYWdnZWQgOiBOU01v
dXNlTW92ZWQpIGxvY2F0aW9uOmxhc3RNb3VzZVBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bmlsIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOm5pbCBjbGlja0NvdW50
Oihkb3duID8gY2xpY2tDb3VudCA6IDApIHByZXNzdXJlOm5pbF07CiAKICAgICBOU1ZpZXcgKnN1
YlZpZXcgPSBbW2ZyYW1lIHdlYlZpZXddIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
XTsKICAgICBpZiAoc3ViVmlldykgewotICAgICAgICBpZiAoZG93bikKKyAgICAgICAgaWYgKGRv
d24pIHsKICAgICAgICAgICAgIFtzdWJWaWV3IG1vdXNlRHJhZ2dlZDpldmVudF07CisgICAgICAg
ICAgICBbW2ZyYW1lIHdlYlZpZXddIGRyYWdnaW5nVXBkYXRlZDpkcmFnZ2luZ0luZm9dOworICAg
ICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFtzdWJWaWV3IG1vdXNlTW92ZWQ6ZXZl
bnRdOwogICAgIH0KQEAgLTY3Niw2ICs3MjUsOSBAQAogICAgIH0KICAgICBwb29sID0gW1tOU0F1
dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07CiAgICAgW1tmcmFtZSB3ZWJWaWV3XSBzZXRTZWxl
Y3RlZERPTVJhbmdlOm5pbCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbV07
CisgICAgaWYgKGRyYWdnaW5nSW5mbykKKyAgICAgICAgW2RyYWdnaW5nSW5mbyByZWxlYXNlXTsK
KyAgICBkcmFnZ2luZ0luZm8gPSBuaWw7CiAgICAgW3Bvb2wgcmVsZWFzZV07CiB9CiAKQEAgLTcw
NiwzICs3NTgsMTAwIEBACiB9CiAKIEBlbmQKKworQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJU
cmVlV2ViSFRNTFZpZXcKKworLy8gSW50ZXJjZXB0IHVwZGF0ZUZvY3VzU3RhdGUgY2FsbHMgbWFk
ZSBmcm9tIGluc2lkZSBXZWJLaXQgc28gdGhhdCB3ZSBjYW4gdHJpY2sgZXZlcnlvbmUgaW50byB0
aGlua2luZyB0aGF0IHRoZSBXZWJIVE1MVmlldyBoYXMgZm9jdXMuCisvLyBUaGlzIGZ1bmN0aW9u
IGFzc3VtZXMgaXQga25vd3Mgd2hhdCBnb2VzIG9uIGluc2lkZSBbV2ViSFRNTFZpZXcgdXBkYXRl
Rm9jdXNTdGF0ZV0uCistICh2b2lkKXVwZGF0ZUZvY3VzU3RhdGUKK3sKKyAgICBbc3VwZXIgX3Nl
dFdpbmRvd0hhc0ZvY3VzOndpbmRvd0hhc0ZvY3VzXTsKKyAgICBbc3VwZXIgX3NldERpc3BsYXlz
V2l0aEZvY3VzQXR0cmlidXRlczpkaXNwbGF5V2l0aEZvY3VzQXR0cmlidXRlc107Cit9CisKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvCisKKy0gKGlk
KWluaXRXaXRoSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIG9mZnNldDooTlNTaXplKW8gcGFzdGVi
b2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJkIHNvdXJjZTooaWQpc291cmNlCit7CisgICAgZHJh
Z2dlZEltYWdlID0gW2FuSW1hZ2UgcmV0YWluXTsKKyAgICBkcmFnZ2luZ1Bhc3RlYm9hcmQgPSBb
cGJvYXJkIHJldGFpbl07CisgICAgZHJhZ2dpbmdTb3VyY2UgPSBbc291cmNlIHJldGFpbl07Cisg
ICAgb2Zmc2V0ID0gbzsKKyAgICAKKyAgICByZXR1cm4gW3N1cGVyIGluaXRdOworfQorCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBbZHJhZ2dlZEltYWdlIHJlbGVhc2VdOworICAgIFtkcmFnZ2lu
Z1Bhc3RlYm9hcmQgcmVsZWFzZV07CisgICAgW2RyYWdnaW5nU291cmNlIHJlbGVhc2VdOworICAg
IFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoTlNXaW5kb3cgKilkcmFnZ2luZ0Rlc3RpbmF0aW9u
V2luZG93IHsKKyAgICByZXR1cm4gW1tmcmFtZSB3ZWJWaWV3XSB3aW5kb3ddOworfQorCistIChO
U0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrIHsKKyAgICByZXR1cm4g
W2RyYWdnaW5nU291cmNlIGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza0ZvckxvY2FsOllFU107
Cit9CisKKy0gKE5TUG9pbnQpZHJhZ2dpbmdMb2NhdGlvbgoreyAKKyAgICByZXR1cm4gbGFzdE1v
dXNlUG9zaXRpb247IAorfQorCistIChOU1BvaW50KWRyYWdnZWRJbWFnZUxvY2F0aW9uIAorewor
ICAgIHJldHVybiBOU01ha2VQb2ludChsYXN0TW91c2VQb3NpdGlvbi54ICsgb2Zmc2V0LndpZHRo
LCBsYXN0TW91c2VQb3NpdGlvbi55ICsgb2Zmc2V0LmhlaWdodCk7Cit9CisKKy0gKE5TSW1hZ2Ug
KilkcmFnZ2VkSW1hZ2UKK3sKKyAgICByZXR1cm4gZHJhZ2dlZEltYWdlOworfQorCistIChOU1Bh
c3RlYm9hcmQgKilkcmFnZ2luZ1Bhc3RlYm9hcmQKK3sKKyAgICByZXR1cm4gZHJhZ2dpbmdQYXN0
ZWJvYXJkOworfQorCistIChpZClkcmFnZ2luZ1NvdXJjZQoreworICAgIHJldHVybiBkcmFnZ2lu
Z1NvdXJjZTsKK30KKworLSAoaW50KWRyYWdnaW5nU2VxdWVuY2VOdW1iZXIKK3sKKyAgICBOU0xv
ZyhAIkR1bXBSZW5kZXJUcmVlIGRvZXNuJ3Qgc3VwcG9ydCBkcmFnZ2luZ1NlcXVlbmNlTnVtYmVy
Iik7CisgICAgcmV0dXJuIDA7Cit9CisKKy0gKHZvaWQpc2xpZGVEcmFnZ2VkSW1hZ2VUbzooTlNQ
b2ludClzY3JlZW5Qb2ludAoreworICAgIE5TTG9nKEAiRHVtcFJlbmRlclRyZWUgZG9lc24ndCBz
dXBwb3J0IHNsaWRlRHJhZ2dlZEltYWdlVG86Iik7Cit9CisKKy0gKE5TQXJyYXkgKiluYW1lc09m
UHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOihOU1VSTCAqKWRyb3BEZXN0aW5hdGlv
bgoreworICAgIE5TTG9nKEAiRHVtcFJlbmRlclRyZWUgZG9lc24ndCBzdXBwb3J0IG5hbWVzT2ZQ
cm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246Iik7CisgICAgcmV0dXJuIG5pbDsKK30K
KworQGVuZAorCitAaW1wbGVtZW50YXRpb24gRHVtcFJlbmRlclRyZWVWaWV3CisKKy8vIEludGVy
Y2VwdCB0aGUgZHJhZyBraWNrIG9mZiB0aGF0J3MgZ29pbmcgZnJvbSBXZWJIVE1MVmlldyB0byBO
U1ZpZXcuICBEb24ndCBwYXNzIGl0IGFsb25nIHRvIEFwcEtpdCwgc2luY2UgQXBwS2l0IHdvdWxk
bid0IHNlbmQgZHJhZ2dpbmcgdXBkYXRlcyB0byBvdXIgaW52aXNpYmxlIFdlYlZpZXcuCistICh2
b2lkKWRyYWdJbWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgYXQ6KE5TUG9pbnQpdmlld0xvY2F0aW9u
IG9mZnNldDooTlNTaXplKWluaXRpYWxPZmZzZXQgZXZlbnQ6KE5TRXZlbnQgKilldmVudCBwYXN0
ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYm9hcmQgc291cmNlOihpZClzb3VyY2VPYmogc2xpZGVC
YWNrOihCT09MKXNsaWRlRmxhZworeworICAgIGlmIChkcmFnZ2luZ0luZm8pCisgICAgICAgIFtk
cmFnZ2luZ0luZm8gcmVsZWFzZV07CisgICAgZHJhZ2dpbmdJbmZvID0gW1tEdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mbyBhbGxvY10gaW5pdFdpdGhJbWFnZTphbkltYWdlIG9mZnNldDppbml0aWFs
T2Zmc2V0IHBhc3RlYm9hcmQ6cGJvYXJkIHNvdXJjZTpzb3VyY2VPYmpdOworfQorCitAZW5kCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6363</attachid>
            <date>2006-02-09 03:23:56 -0800</date>
            <delta_ts>2006-02-10 08:30:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>7148.txt</filename>
            <type>text/plain</type>
            <size>20926</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctdG8tY29udGVudGVkaXRh
YmxlLWlmcmFtZS1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUtZXhwZWN0ZWQu
Y2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
cmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEgQEAKK2VjMTc4OGFhZjc0MGIyMGUyMzg5M2E1NzUwZTNiYjM0ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vY29udGVudGVkaXRhYmxlLWlmcmFtZS1zcmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRlbnRlZGl0YWJsZS1pZnJhbWUtc3Jj
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2NvbnRlbnRlZGl0YWJsZS1pZnJhbWUtc3JjLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSBAQAorVGhpcyBpcyBub3QgdGVzdCBpbiBpdHNlbGYsIGl0IGlzIHVzZWQgYXMg
dGhlIHNyYyBvZiBhbiBpZnJhbWUgaW4gZHJhZy10by1jb250ZW50ZWRpdGFibGUtaWZyYW1lCklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRlZGl0YWJs
ZS1pZnJhbWUtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RyYWctdG8tY29udGVudGVkaXRhYmxlLWlmcmFtZS1leHBlY3RlZC5wbmcKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO
YW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGVudGVkaXRhYmxlLWlmcmFtZS1zcmMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZW50
ZWRpdGFibGUtaWZyYW1lLXNyYy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vY29udGVudGVkaXRhYmxlLWlmcmFtZS1zcmMuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMiBAQAorPGJvZHkgYmdjb2xvcj0ibGlnaHR5ZWxsb3ciIGNvbnRlbnRl
ZGl0YWJsZT4KKworPHNjcmlwdD4KK2lmICghcGFyZW50LmZyYW1lc1swXSkgeworICAgIGRvY3Vt
ZW50LndyaXRlKCJUaGlzIGlzIG5vdCB0ZXN0IGluIGl0c2VsZiwgaXQgaXMgdXNlZCBhcyB0aGUg
c3JjIG9mIGFuIGlmcmFtZSBpbiBkcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUiKTsKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfSAKKworPC9zY3JpcHQ+CisKKzwvYm9keT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctdG8tY29udGVudGVk
aXRhYmxlLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdtZW50
IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAwIG9mIEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNl
cnRBY3Rpb25Ecm9wcGVkCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDAgb2YgQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgSU1HID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICgw
LDApIHNpemUgODAweDU4NAorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkg
c2l6ZSA4MDB4MjEyCisgICAgICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkg
c2l6ZSAyMDh4MjA4IFtib3JkZXI6ICg0cHggc29saWQgIzAwMDAwMCldCisgICAgICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAgICAgICAgICBSZW5kZXJDYW52YXMgYXQgKDAs
MCkgc2l6ZSAyMDB4MjAwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisg
ICAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAg
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTg0eDE4NCBbYmdjb2xv
cj0jRkZGRkUwXQorICAgICAgICAgICAgICAgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNp
emUgNzZ4MTAzCisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgyMDgsMTk0KSBzaXplIDR4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjA4LDE5NCkgd2lkdGggNDogIiAiCisgICAgICAg
IFJlbmRlckltYWdlIHtJTUd9IGF0ICgyMTIsMTA1KSBzaXplIDc2eDEwMworICAgICAgICBSZW5k
ZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge1VMfSBh
dCAoMTYsMjI4KSBzaXplIDc2OHg1NAorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0
MCwwKSBzaXplIDcyOHgxOAorICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6
ZSAweDE0CisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxNTh4MTgK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE1ODogIk1vdXNpbmcgZG93biBv
biBpbWFnZSIKKyAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMTgpIHNpemUgNzI4
eDE4CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTQKKyAgICAg
ICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDE0OHgxOAorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTQ4OiAiRHJhZ2dpbmcgdG8gZGVzdGluYXRpb24iCisg
ICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDM2KSBzaXplIDcyOHgxOAorICAgICAg
ICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDE0CisgICAgICAgICAgUmVuZGVy
VGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA2MXgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNjE6ICJEcm9wcGluZyIKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBv
ZiBjaGlsZCAwIHtJTUd9IG9mIGNoaWxkIDAge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDEgb2YgY2hpbGQgMCB7SU1HfSBvZiBj
aGlsZCAwIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy10by1jb250ZW50ZWRpdGFibGUtaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy10by1j
b250ZW50ZWRpdGFibGUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXRvLWNvbnRlbnRlZGl0YWJsZS1pZnJhbWUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorPGh0bWw+CisKKzxoZWFkPgorPHNjcmlwdD4KKw12
YXIgc3RhcnRYID0gMjI1Ow12YXIgc3RhcnRZID0gMTc1Ow12YXIgZW5kWCA9IDEwMDsNdmFyIGVu
ZFkgPSAxMDA7CisNCitmdW5jdGlvbiBsb2cobWVzc2FnZSkgew0gICAgdmFyIGNvbnNvbGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOw0gICAgdmFyIGxpID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsNICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUobWVzc2FnZSk7DSAgICANICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOw0gICAgbGkuYXBw
ZW5kQ2hpbGQodGV4dCk7DX0KKworZnVuY3Rpb24gcnVuVGVzdCgpIAoreworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbG9nKCJUaGlzIHRlc3QgdXNlcyBE
dW1wUmVuZGVyVHJlZSdzIGRyYWcgJiBkcm9wIHN1cHBvcnQgdG8gdGVzdCB0aGF0IGFuIGltYWdl
IGNhbiBzdWNjZXNzZnVsbHkgYmUgZHJvcHBlZCBpbnRvIGEgY29udGVudGVkaXRhYmxlIGlmcmFt
ZS4gIFRvIHJ1biBpdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2UgaW50byB0aGUgaWZyYW1lIGFu
ZCBkcm9wIGl0LiAgSXQgc2hvdWxkIGFwcGVhciBpbnNpZGUgdGhlIGlmcmFtZS4iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworCXdpbmRvdy5zZXRUaW1lb3V0KCdzdGVwMSgpJywgNSk7Cit9
CisKK2Z1bmN0aW9uIHN0ZXAxKCkKK3sKKyAgICBsb2coIk1vdXNpbmcgZG93biBvbiBpbWFnZSIp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKKworICAgIHdpbmRvdy5zZXRUaW1lb3V0KCdzdGVwMigpJywg
MTAwMCk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkgeworICAgIGxvZygiRHJhZ2dpbmcgdG8gZGVz
dGluYXRpb24iKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbmRYICsgMSwgZW5kWSAr
IDEpOworICAgIAorICAgIHdpbmRvdy5zZXRUaW1lb3V0KCdzdGVwMygpJywgMjAwKTsNICAgIAor
fQorCitmdW5jdGlvbiBzdGVwMygpIHsNICAgIGxvZygiRHJvcHBpbmciKTsNICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGVuZFgsIGVuZFkpOw0KKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgCisgICAgd2luZG93LnNldFRpbWVvdXQoJ3N0ZXA0KCknLCAyMDApOworfQorCitmdW5j
dGlvbiBzdGVwNCgpCit7DSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKKzwvc2NyaXB0Pgor
PC9oZWFkPgorCis8Ym9keSBzdHlsZT0icGFkZGluZzowOyBtYXJnaW46MCI+ICAKKworPGlmcmFt
ZSBzdHlsZT0ibWFyZ2luOiAwcHg7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYm9yZGVy
OiA0cHggc29saWQgYmxhY2s7IiBzcmM9ImNvbnRlbnRlZGl0YWJsZS1pZnJhbWUtc3JjLmh0bWwi
PjwvaWZyYW1lPgorCis8aW1nIHNyYz0iLi4vYWJlLmpwZyI+Cis8dWwgc3R5bGU9Imxpc3Qtc3R5
bGU6Y2lyY2xlOyBtYXJnaW46IDFlbTsiIGlkPSJjb25zb2xlIj48L3VsPgorPHNjcmlwdD5ydW5U
ZXN0KCk8L3NjcmlwdD4KKzwvYm9keT4KSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYlZpZXcvV2ViSFRNTFZpZXcubQkocmV2aXNpb24g
MTI3MTEpCisrKyBXZWJLaXQvV2ViVmlldy9XZWJIVE1MVmlldy5tCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTMsNyArMTkzLDYgQEAKIC0gKHZvaWQpX2RlbGV0ZVNlbGVjdGlvbjsKIC0gKEJPT0wpX2Nh
blNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkOwog
LSAoTlNWaWV3ICopX2hpdFZpZXdGb3JFdmVudDooTlNFdmVudCAqKWV2ZW50OwotLSAodm9pZCl1
cGRhdGVGb2N1c1N0YXRlOwogLSAodm9pZClfd3JpdGVTZWxlY3Rpb25XaXRoUGFzdGVib2FyZFR5
cGVzOihOU0FycmF5ICopdHlwZXMgdG9QYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJv
YXJkIGNhY2hlZEF0dHJpYnV0ZWRTdHJpbmc6KE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0
ZWRTdHJpbmc7CiBAZW5kCiAKQEAgLTYyNiwyOSArNjI1LDYgQEAKICAgICB9CiB9CiAKLS0gKHZv
aWQpdXBkYXRlRm9jdXNTdGF0ZQotewotICAgIC8vIFRoaXMgbWV0aG9kIGRvZXMgdGhlIGpvYiBv
ZiB1cGRhdGluZyB0aGUgdmlldyBiYXNlZCBvbiB0aGUgdmlldydzIGZpcnN0UmVzcG9uZGVyLW5l
c3MgYW5kCi0gICAgLy8gdGhlIHdpbmRvdyBrZXktbmVzcyBvZiB0aGUgd2luZG93IGNvbnRhaW5p
bmcgdGhpcyB2aWV3LiBUaGlzIGludm9sdmVzIGZvdXIga2luZHMgb2YgCi0gICAgLy8gZHJhd2lu
ZyB1cGRhdGVzIHJpZ2h0IG5vdywgYWxsIGhhbmRsZWQgaW4gV2ViQ29yZSBpbiByZXNwb25zZSB0
byB0aGUgY2FsbCBvdmVyIHRoZSBicmlkZ2UuIAotICAgIC8vIAotICAgIC8vIFRoZSBmb3VyIGRp
c3BsYXkgYXR0cmlidXRlcyBhcmUgYXMgZm9sbG93czoKLSAgICAvLyAKLSAgICAvLyAxLiBUaGUg
YmFja2dyb3VuZCBjb2xvciB1c2VkIHRvIGRyYXcgYmVoaW5kIHNlbGVjdGVkIGNvbnRlbnQgKGFj
dGl2ZSB8IGluYWN0aXZlIGNvbG9yKQotICAgIC8vIDIuIENhcmV0IGJsaW5raW5nIChibGlua3Mg
fCBkb2VzIG5vdCBibGluaykKLSAgICAvLyAzLiBUaGUgZHJhd2luZyBvZiBhIGZvY3VzIHJpbmcg
YXJvdW5kIGxpbmtzIGluIHdlYiBwYWdlcy4KLSAgICAvLyA0LiBDaGFuZ2luZyB0aGUgdGludCBv
ZiBjb250cm9scyBmcm9tIGNsZWFyIHRvIGFxdWEvZ3JhcGhpdGUgYW5kIHZpY2UgdmVyc2EKLSAg
ICAvLwotICAgIC8vIEFsc28sIHRoaXMgaXMgcmVzcG9uc2libGUgZm9yIGxldHRpbmcgdGhlIGJy
aWRnZSBrbm93IGlmIHRoZSB3aW5kb3cgaGFzIGdhaW5lZCBvciBsb3N0IGZvY3VzCi0gICAgLy8g
c28gd2UgY2FuIHNlbmQgZm9jdXMgYW5kIGJsdXIgZXZlbnRzLgotCi0gICAgQk9PTCB3aW5kb3dJ
c0tleSA9IFtbc2VsZiB3aW5kb3ddIGlzS2V5V2luZG93XTsKLSAgICBCT09MIGZsYWcgPSAhX3By
aXZhdGUtPnJlc2lnbmluZ0ZpcnN0UmVzcG9uZGVyICYmIHdpbmRvd0lzS2V5ICYmIFtzZWxmIF93
ZWJfZmlyc3RSZXNwb25kZXJDYXVzZXNGb2N1c0Rpc3BsYXldOwotICAgIAotICAgIFtzZWxmIF9z
ZXREaXNwbGF5c1dpdGhGb2N1c0F0dHJpYnV0ZXM6ZmxhZ107Ci0gICAgW3NlbGYgX3NldFdpbmRv
d0hhc0ZvY3VzOndpbmRvd0lzS2V5XTsKLX0KLQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
SFRNTFZpZXcgKFdlYlByaXZhdGUpCkBAIC0xNjYyLDYgKzE2MzgsMjkgQEAKICAgICBbW3NlbGYg
X2JyaWRnZV0gc2V0RGlzcGxheXNXaXRoRm9jdXNBdHRyaWJ1dGVzOmZsYWddOwogfQogCistICh2
b2lkKXVwZGF0ZUZvY3VzU3RhdGUKK3sKKyAgICAvLyBUaGlzIG1ldGhvZCBkb2VzIHRoZSBqb2Ig
b2YgdXBkYXRpbmcgdGhlIHZpZXcgYmFzZWQgb24gdGhlIHZpZXcncyBmaXJzdFJlc3BvbmRlci1u
ZXNzIGFuZAorICAgIC8vIHRoZSB3aW5kb3cga2V5LW5lc3Mgb2YgdGhlIHdpbmRvdyBjb250YWlu
aW5nIHRoaXMgdmlldy4gVGhpcyBpbnZvbHZlcyBmb3VyIGtpbmRzIG9mIAorICAgIC8vIGRyYXdp
bmcgdXBkYXRlcyByaWdodCBub3csIGFsbCBoYW5kbGVkIGluIFdlYkNvcmUgaW4gcmVzcG9uc2Ug
dG8gdGhlIGNhbGwgb3ZlciB0aGUgYnJpZGdlLiAKKyAgICAvLyAKKyAgICAvLyBUaGUgZm91ciBk
aXNwbGF5IGF0dHJpYnV0ZXMgYXJlIGFzIGZvbGxvd3M6CisgICAgLy8gCisgICAgLy8gMS4gVGhl
IGJhY2tncm91bmQgY29sb3IgdXNlZCB0byBkcmF3IGJlaGluZCBzZWxlY3RlZCBjb250ZW50IChh
Y3RpdmUgfCBpbmFjdGl2ZSBjb2xvcikKKyAgICAvLyAyLiBDYXJldCBibGlua2luZyAoYmxpbmtz
IHwgZG9lcyBub3QgYmxpbmspCisgICAgLy8gMy4gVGhlIGRyYXdpbmcgb2YgYSBmb2N1cyByaW5n
IGFyb3VuZCBsaW5rcyBpbiB3ZWIgcGFnZXMuCisgICAgLy8gNC4gQ2hhbmdpbmcgdGhlIHRpbnQg
b2YgY29udHJvbHMgZnJvbSBjbGVhciB0byBhcXVhL2dyYXBoaXRlIGFuZCB2aWNlIHZlcnNhCisg
ICAgLy8KKyAgICAvLyBBbHNvLCB0aGlzIGlzIHJlc3BvbnNpYmxlIGZvciBsZXR0aW5nIHRoZSBi
cmlkZ2Uga25vdyBpZiB0aGUgd2luZG93IGhhcyBnYWluZWQgb3IgbG9zdCBmb2N1cworICAgIC8v
IHNvIHdlIGNhbiBzZW5kIGZvY3VzIGFuZCBibHVyIGV2ZW50cy4KKworICAgIEJPT0wgd2luZG93
SXNLZXkgPSBbW3NlbGYgd2luZG93XSBpc0tleVdpbmRvd107CisgICAgQk9PTCBmbGFnID0gIV9w
cml2YXRlLT5yZXNpZ25pbmdGaXJzdFJlc3BvbmRlciAmJiB3aW5kb3dJc0tleSAmJiBbc2VsZiBf
d2ViX2ZpcnN0UmVzcG9uZGVyQ2F1c2VzRm9jdXNEaXNwbGF5XTsKKyAgICAKKyAgICBbc2VsZiBf
c2V0RGlzcGxheXNXaXRoRm9jdXNBdHRyaWJ1dGVzOmZsYWddOworICAgIFtzZWxmIF9zZXRXaW5k
b3dIYXNGb2N1czp3aW5kb3dJc0tleV07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE5T
VmlldyAoV2ViSFRNTFZpZXdGaWxlSW50ZXJuYWwpCkluZGV4OiBXZWJLaXQvV2ViVmlldy9XZWJI
VE1MVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJIVE1MVmll
d1ByaXZhdGUuaAkocmV2aXNpb24gMTI3MTEpCisrKyBXZWJLaXQvV2ViVmlldy9XZWJIVE1MVmll
d1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsNSArOTYsNiBAQAogLy8gTWFkZSBpbnRv
IFNQSSBzbyB0aGF0IER1bXBSZW5kZXJUcmVlIGNvdWxkIHRlc3QgdGhlIGJlaGF2aW9yIGFuZCBh
cHBlYXJhbmNlIG9mIGEgV2ViSFRNTFZpZXcgdGhhdCBpcyBmb2N1c2VkLgogLSAodm9pZClfc2V0
V2luZG93SGFzRm9jdXM6KEJPT0wpZmxhZzsKIC0gKHZvaWQpX3NldERpc3BsYXlzV2l0aEZvY3Vz
QXR0cmlidXRlczooQk9PTClmbGFnOworLSAodm9pZCl1cGRhdGVGb2N1c1N0YXRlOwogCiBAZW5k
CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLm0JKHJl
dmlzaW9uIDEyNzExKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUubQkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksMzIgQEAKICNpbXBvcnQgIk5hdmlnYXRp
b25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJBcHBsZVNjcmlwdENvbnRyb2xsZXIuaCIKIAorQGlu
dGVyZmFjZSBEdW1wUmVuZGVyVHJlZVdlYkhUTUxWaWV3IDogV2ViSFRNTFZpZXcKK0BlbmQKKwor
QGludGVyZmFjZSBEdW1wUmVuZGVyVHJlZVZpZXcgOiBOU1ZpZXcKK0BlbmQKKworQGludGVyZmFj
ZSBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyA6IE5TT2JqZWN0IDxOU0RyYWdnaW5nSW5mbz4K
K3sKK0Bwcml2YXRlCisgICAgTlNTaXplIG9mZnNldDsKKyAgICBOU0ltYWdlICpkcmFnZ2VkSW1h
Z2U7CisgICAgTlNQYXN0ZWJvYXJkICpkcmFnZ2luZ1Bhc3RlYm9hcmQ7CisgICAgaWQgZHJhZ2dp
bmdTb3VyY2U7Cit9CistIChOU1dpbmRvdyAqKWRyYWdnaW5nRGVzdGluYXRpb25XaW5kb3c7Cist
IChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrOworLSAoTlNQb2lu
dClkcmFnZ2luZ0xvY2F0aW9uOworLSAoTlNQb2ludClkcmFnZ2VkSW1hZ2VMb2NhdGlvbjsKKy0g
KE5TSW1hZ2UgKilkcmFnZ2VkSW1hZ2U7CistIChOU1Bhc3RlYm9hcmQgKilkcmFnZ2luZ1Bhc3Rl
Ym9hcmQ7CistIChpZClkcmFnZ2luZ1NvdXJjZTsKKy0gKGludClkcmFnZ2luZ1NlcXVlbmNlTnVt
YmVyOworLSAodm9pZClzbGlkZURyYWdnZWRJbWFnZVRvOihOU1BvaW50KXNjcmVlblBvaW50Owor
LSAoTlNBcnJheSAqKW5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246KE5T
VVJMICopZHJvcERlc3RpbmF0aW9uOworQGVuZAorCiBAaW50ZXJmYWNlIER1bXBSZW5kZXJUcmVl
UGFzdGVib2FyZCA6IE5TUGFzdGVib2FyZAogQGVuZAogCkBAIC02MywxMiArODksMTAgQEAKIAog
QGludGVyZmFjZSBFdmVudFNlbmRpbmdDb250cm9sbGVyIDogTlNPYmplY3QKIHsKLSAgICBOU1Bv
aW50IGxhc3Q7CiAgICAgQk9PTCBkb3duOwogICAgIGludCBjbGlja0NvdW50OwogICAgIE5TVGlt
ZUludGVydmFsIGxhc3RDbGljazsKIH0KLQogQGVuZAogCiBzdGF0aWMgdm9pZCBkdW1wUmVuZGVy
VHJlZShjb25zdCBjaGFyICpmaWxlbmFtZSk7CkBAIC04Niw2ICsxMTAsMTAgQEAKIHN0YXRpYyBC
T09MIHByaW50U2VwYXJhdG9yczsKIHN0YXRpYyBOU1N0cmluZyAqY3VycmVudFRlc3QgPSBuaWw7
CiBzdGF0aWMgTlNQYXN0ZWJvYXJkICpsb2NhbFBhc3RlYm9hcmQ7CitzdGF0aWMgQk9PTCB3aW5k
b3dIYXNGb2N1cyA9IFlFUzsKK3N0YXRpYyBCT09MIGRpc3BsYXlXaXRoRm9jdXNBdHRyaWJ1dGVz
ID0gWUVTOworc3RhdGljIE5TUG9pbnQgbGFzdE1vdXNlUG9zaXRpb247CitzdGF0aWMgRHVtcFJl
bmRlclRyZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbzsKIAogc3RhdGljIENNUHJvZmlsZVJl
ZiBjdXJyZW50Q29sb3JQcm9maWxlID0gMDsKIHN0YXRpYyB2b2lkIHJlc3RvcmVDb2xvclNwYWNl
KGludCBpZ25vcmVkKQpAQCAtMTQwLDYgKzE2OCw4IEBACiAgICAgW05TQXBwbGljYXRpb24gc2hh
cmVkQXBwbGljYXRpb25dOwogCiAgICAgY2xhc3NfcG9zZUFzKG9iamNfZ2V0Q2xhc3MoIkR1bXBS
ZW5kZXJUcmVlUGFzdGVib2FyZCIpLCBvYmpjX2dldENsYXNzKCJOU1Bhc3RlYm9hcmQiKSk7Cisg
ICAgY2xhc3NfcG9zZUFzKG9iamNfZ2V0Q2xhc3MoIkR1bXBSZW5kZXJUcmVlVmlldyIpLCBvYmpj
X2dldENsYXNzKCJOU1ZpZXciKSk7CisgICAgY2xhc3NfcG9zZUFzKG9iamNfZ2V0Q2xhc3MoIkR1
bXBSZW5kZXJUcmVlV2ViSFRNTFZpZXciKSwgb2JqY19nZXRDbGFzcygiV2ViSFRNTFZpZXciKSk7
CiAgICAgCiAgICAgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAgICAgICAgIHsicGl4ZWwt
dGVzdHMiLCBub19hcmd1bWVudCwgJmR1bXBQaXhlbHMsIFlFU30sCkBAIC0xOTMsNyArMjIzLDgg
QEAKICAgICBsb2NhbFBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoVW5p
cXVlTmFtZV07CiAgICAgbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBbW05hdmlnYXRpb25Db250cm9s
bGVyIGFsbG9jXSBpbml0XTsKIAotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldOworICAgIE5TU2l6
ZSBzaXplID0gTlNNYWtlU2l6ZSg4MDAsIDYwMCk7CisgICAgV2ViVmlldyAqd2ViVmlldyA9IFtb
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgs
IHNpemUuaGVpZ2h0KV07CiAgICAgV2FpdFVudGlsRG9uZURlbGVnYXRlICpkZWxlZ2F0ZSA9IFtb
V2FpdFVudGlsRG9uZURlbGVnYXRlIGFsbG9jXSBpbml0XTsKICAgICBFZGl0aW5nRGVsZWdhdGUg
KmVkaXRpbmdEZWxlZ2F0ZSA9IFtbRWRpdGluZ0RlbGVnYXRlIGFsbG9jXSBpbml0XTsKICAgICBb
d2ViVmlldyBzZXRGcmFtZUxvYWREZWxlZ2F0ZTpkZWxlZ2F0ZV07CkBAIC0yMDEsNiArMjMyLDEw
IEBACiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZV07CiAgICAgZnJhbWUgPSBb
d2ViVmlldyBtYWluRnJhbWVdOwogICAgIAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2lu
ZG93IGFsbG9jXSBpbml0XTsKKyAgICBbd2luZG93IHNldENvbnRlbnRWaWV3OndlYlZpZXddOwor
ICAgIFt3aW5kb3cgc2V0Q29udGVudFNpemU6c2l6ZV07CisgICAgCiAgICAgW3dlYlZpZXcgc2V0
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOllFU107CiAgICAgCiAgICAgLy8gRm9yIHJl
YXNvbnMgdGhhdCBhcmUgbm90IGVudGlyZWx5IGNsZWFyLCB0aGUgZm9sbG93aW5nIHBhaXIgb2Yg
Y2FsbHMgbWFrZXMgV2ViVmlldyBoYW5kbGUgaXRzCkBAIC0yMzcsNiArMjcyLDcgQEAKICAgICBb
d2ViVmlldyByZWxlYXNlXTsKICAgICBbZGVsZWdhdGUgcmVsZWFzZV07CiAgICAgW2VkaXRpbmdE
ZWxlZ2F0ZSByZWxlYXNlXTsKKyAgICBbd2luZG93IHJlbGVhc2VdOwogCiAgICAgW2xvY2FsUGFz
dGVib2FyZCByZWxlYXNlR2xvYmFsbHldOwogICAgIGxvY2FsUGFzdGVib2FyZCA9IG5pbDsKQEAg
LTMyOSwxMCArMzY1LDEwIEBACiB7CiAgICAgaWYgKGZyYW1lID09IGYpCiAgICAgICAgIHJlYWR5
VG9EdW1wID0gTk87Ci0gICAgICAgIAotICAgIGlmIChbW1tmcmFtZSBmcmFtZVZpZXddIGRvY3Vt
ZW50Vmlld10gaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewotICAgICAgICBb
KFdlYkhUTUxWaWV3ICopW1tmcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gX3NldFdpbmRv
d0hhc0ZvY3VzOllFU107Ci0gICAgICAgIFsoV2ViSFRNTFZpZXcgKilbW2ZyYW1lIGZyYW1lVmll
d10gZG9jdW1lbnRWaWV3XSBfc2V0RGlzcGxheXNXaXRoRm9jdXNBdHRyaWJ1dGVzOllFU107Cisg
ICAgCisgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1l
bnRWaWV3XTsKKyAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmll
dyBjbGFzc11dKSB7CisgICAgICAgIFsoV2ViSFRNTFZpZXcgKilkb2N1bWVudFZpZXcgdXBkYXRl
Rm9jdXNTdGF0ZV07CiAgICAgfQogfQogCkBAIC01NTcsMTQgKzU5MywxOSBAQAogCiAtICh2b2lk
KXNldFdpbmRvd0hhc0ZvY3VzOihCT09MKWZsYWcKIHsKLSAgICBpZiAoW1tbZnJhbWUgZnJhbWVW
aWV3XSBkb2N1bWVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pCi0g
ICAgICAgIFsoV2ViSFRNTFZpZXcgKilbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBf
c2V0V2luZG93SGFzRm9jdXM6ZmxhZ107CisgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2Zy
YW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKKyAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tp
bmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKSB7CisgICAgICAgIHdpbmRvd0hhc0ZvY3Vz
ID0gZmxhZzsKKyAgICAgICAgWyhXZWJIVE1MVmlldyAqKWRvY3VtZW50VmlldyB1cGRhdGVGb2N1
c1N0YXRlXTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpc2V0RGlzcGxheXNXaXRoRm9jdXNBdHRyaWJ1
dGVzOihCT09MKWZsYWcKIHsKLSAgICBpZiAoW1tbZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZp
ZXddIGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pCi0gICAgICAgIFsoV2ViSFRN
TFZpZXcgKilbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBfc2V0RGlzcGxheXNXaXRo
Rm9jdXNBdHRyaWJ1dGVzOmZsYWddOworICAgIGlmIChbW1tmcmFtZSBmcmFtZVZpZXddIGRvY3Vt
ZW50Vmlld10gaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgeworICAgICAgICBk
aXNwbGF5V2l0aEZvY3VzQXR0cmlidXRlcyA9IGZsYWc7CisgICAgICAgIFsoV2ViSFRNTFZpZXcg
KilbW2ZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBfc2V0V2luZG93SGFzRm9jdXM6Zmxh
Z107CisgICAgfQogfQogCiBAZW5kCkBAIC01ODksNyArNjMwLDYgQEAKIAogLSAoaWQpaW5pdAog
ewotICAgIGxhc3QgPSBOU01ha2VQb2ludCgwLCAwKTsKICAgICBkb3duID0gTk87CiAgICAgY2xp
Y2tDb3VudCA9IDA7CiAgICAgbGFzdENsaWNrID0gMDsKQEAgLTYwMyw3ICs2NDMsNyBAQAogICAg
ICAgICBjbGlja0NvdW50ID0gMTsKICAgICBlbHNlCiAgICAgICAgIGNsaWNrQ291bnQrKzsKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3Vz
ZURvd24gbG9jYXRpb246bGFzdCBtb2RpZmllckZsYWdzOm5pbCB0aW1lc3RhbXA6R2V0Q3VycmVu
dEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1
cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjpuaWwgY2xpY2tDb3VudDpjbGlja0NvdW50IHByZXNz
dXJlOm5pbF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmxhc3RNb3VzZVBvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bmlsIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29u
dGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOm5pbCBj
bGlja0NvdW50OmNsaWNrQ291bnQgcHJlc3N1cmU6bmlsXTsKIAogICAgIE5TVmlldyAqc3ViVmll
dyA9IFtbZnJhbWUgd2ViVmlld10gaGl0VGVzdDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dOwog
ICAgIGlmIChzdWJWaWV3KSB7CkBAIC02MTUsMjUgKzY1NSwzNCBAQAogLSAodm9pZCltb3VzZVVw
CiB7CiAgICAgW1tbZnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIGxheW91dF07Ci0gICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VV
cCBsb2NhdGlvbjpsYXN0IG1vZGlmaWVyRmxhZ3M6bmlsIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZl
bnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVu
dENvbnRleHRdIGV2ZW50TnVtYmVyOm5pbCBjbGlja0NvdW50OmNsaWNrQ291bnQgcHJlc3N1cmU6
bmlsXTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0xlZnRNb3VzZVVwIGxvY2F0aW9uOmxhc3RNb3VzZVBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bmls
IHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpb
TlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOm5pbCBjbGlja0Nv
dW50OmNsaWNrQ291bnQgcHJlc3N1cmU6bmlsXTsKIAogICAgIE5TVmlldyAqc3ViVmlldyA9IFtb
ZnJhbWUgd2ViVmlld10gaGl0VGVzdDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dOwogICAgIGlm
IChzdWJWaWV3KSB7CiAgICAgICAgIFtzdWJWaWV3IG1vdXNlVXA6ZXZlbnRdOwogICAgICAgICBk
b3duID0gTk87CiAgICAgICAgIGxhc3RDbGljayA9IFtldmVudCB0aW1lc3RhbXBdOworICAgICAg
ICBpZiAoZHJhZ2dpbmdJbmZvKSB7CisgICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW2Zy
YW1lIHdlYlZpZXddOworICAgICAgICAgICAgaWYgKFt3ZWJWaWV3IGRyYWdnaW5nVXBkYXRlZDpk
cmFnZ2luZ0luZm9dICE9IE5TRHJhZ09wZXJhdGlvbk5vbmUpCisgICAgICAgICAgICAgICAgW3dl
YlZpZXcgcGVyZm9ybURyYWdPcGVyYXRpb246ZHJhZ2dpbmdJbmZvXTsKKyAgICAgICAgICAgIFtk
cmFnZ2luZ0luZm8gcmVsZWFzZV07CisgICAgICAgICAgICBkcmFnZ2luZ0luZm8gPSBuaWw7Cisg
ICAgICAgIH0KICAgICB9CiB9CiAKIC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZOihpbnQp
eQogewotICAgIGxhc3QgPSBOU01ha2VQb2ludCh4LCBbW2ZyYW1lIHdlYlZpZXddIGZyYW1lXS5z
aXplLmhlaWdodCAtIHkpOwotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOihkb3duID8gTlNMZWZ0TW91c2VEcmFnZ2VkIDogTlNNb3VzZU1vdmVkKSBsb2Nh
dGlvbjpsYXN0IG1vZGlmaWVyRmxhZ3M6bmlsIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1l
KCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIGV2ZW50TnVtYmVyOm5pbCBjbGlja0NvdW50Oihkb3duID8gY2xpY2tDb3VudCA6IDApIHBy
ZXNzdXJlOm5pbF07CisgICAgbGFzdE1vdXNlUG9zaXRpb24gPSBOU01ha2VQb2ludCh4LCBbW2Zy
YW1lIHdlYlZpZXddIGZyYW1lXS5zaXplLmhlaWdodCAtIHkpOworICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOihkb3duID8gTlNMZWZ0TW91c2VEcmFnZ2Vk
IDogTlNNb3VzZU1vdmVkKSBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiBtb2RpZmllckZsYWdz
Om5pbCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNvbnRl
eHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjpuaWwgY2xp
Y2tDb3VudDooZG93biA/IGNsaWNrQ291bnQgOiAwKSBwcmVzc3VyZTpuaWxdOwogCiAgICAgTlNW
aWV3ICpzdWJWaWV3ID0gW1tmcmFtZSB3ZWJWaWV3XSBoaXRUZXN0OltldmVudCBsb2NhdGlvbklu
V2luZG93XV07CiAgICAgaWYgKHN1YlZpZXcpIHsKLSAgICAgICAgaWYgKGRvd24pCisgICAgICAg
IGlmIChkb3duKSB7CiAgICAgICAgICAgICBbc3ViVmlldyBtb3VzZURyYWdnZWQ6ZXZlbnRdOwor
ICAgICAgICAgICAgW1tmcmFtZSB3ZWJWaWV3XSBkcmFnZ2luZ1VwZGF0ZWQ6ZHJhZ2dpbmdJbmZv
XTsKKyAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBbc3ViVmlldyBtb3VzZU1v
dmVkOmV2ZW50XTsKICAgICB9CkBAIC02NzYsNiArNzI1LDkgQEAKICAgICB9CiAgICAgcG9vbCA9
IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwogICAgIFtbZnJhbWUgd2ViVmlld10g
c2V0U2VsZWN0ZWRET01SYW5nZTpuaWwgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW1dOworICAgIGlmIChkcmFnZ2luZ0luZm8pCisgICAgICAgIFtkcmFnZ2luZ0luZm8gcmVs
ZWFzZV07CisgICAgZHJhZ2dpbmdJbmZvID0gbmlsOwogICAgIFtwb29sIHJlbGVhc2VdOwogfQog
CkBAIC03MDYsMyArNzU4LDEwMCBAQAogfQogCiBAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBEdW1w
UmVuZGVyVHJlZVdlYkhUTUxWaWV3CisKKy8vIEludGVyY2VwdCB1cGRhdGVGb2N1c1N0YXRlIGNh
bGxzIG1hZGUgZnJvbSBpbnNpZGUgV2ViS2l0IHNvIHRoYXQgd2UgY2FuIHRyaWNrIGV2ZXJ5b25l
IGludG8gdGhpbmtpbmcgdGhhdCB0aGUgV2ViSFRNTFZpZXcgaGFzIGZvY3VzLgorLy8gVGhpcyBm
dW5jdGlvbiBhc3N1bWVzIGl0IGtub3dzIHdoYXQgZ29lcyBvbiBpbnNpZGUgW1dlYkhUTUxWaWV3
IHVwZGF0ZUZvY3VzU3RhdGVdLgorLSAodm9pZCl1cGRhdGVGb2N1c1N0YXRlCit7CisgICAgW3N1
cGVyIF9zZXRXaW5kb3dIYXNGb2N1czp3aW5kb3dIYXNGb2N1c107CisgICAgW3N1cGVyIF9zZXRE
aXNwbGF5c1dpdGhGb2N1c0F0dHJpYnV0ZXM6ZGlzcGxheVdpdGhGb2N1c0F0dHJpYnV0ZXNdOwor
fQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbwor
CistIChpZClpbml0V2l0aEltYWdlOihOU0ltYWdlICopYW5JbWFnZSBvZmZzZXQ6KE5TU2l6ZSlv
IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZQorewor
ICAgIGRyYWdnZWRJbWFnZSA9IFthbkltYWdlIHJldGFpbl07CisgICAgZHJhZ2dpbmdQYXN0ZWJv
YXJkID0gW3Bib2FyZCByZXRhaW5dOworICAgIGRyYWdnaW5nU291cmNlID0gW3NvdXJjZSByZXRh
aW5dOworICAgIG9mZnNldCA9IG87CisgICAgCisgICAgcmV0dXJuIFtzdXBlciBpbml0XTsKK30K
KworLSAodm9pZClkZWFsbG9jCit7CisgICAgW2RyYWdnZWRJbWFnZSByZWxlYXNlXTsKKyAgICBb
ZHJhZ2dpbmdQYXN0ZWJvYXJkIHJlbGVhc2VdOworICAgIFtkcmFnZ2luZ1NvdXJjZSByZWxlYXNl
XTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKE5TV2luZG93ICopZHJhZ2dpbmdEZXN0
aW5hdGlvbldpbmRvdyB7CisgICAgcmV0dXJuIFtbZnJhbWUgd2ViVmlld10gd2luZG93XTsKK30K
KworLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzayB7CisgICAg
cmV0dXJuIFtkcmFnZ2luZ1NvdXJjZSBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tGb3JMb2Nh
bDpZRVNdOworfQorCistIChOU1BvaW50KWRyYWdnaW5nTG9jYXRpb24KK3sgCisgICAgcmV0dXJu
IGxhc3RNb3VzZVBvc2l0aW9uOyAKK30KKworLSAoTlNQb2ludClkcmFnZ2VkSW1hZ2VMb2NhdGlv
biAKK3sKKyAgICByZXR1cm4gTlNNYWtlUG9pbnQobGFzdE1vdXNlUG9zaXRpb24ueCArIG9mZnNl
dC53aWR0aCwgbGFzdE1vdXNlUG9zaXRpb24ueSArIG9mZnNldC5oZWlnaHQpOworfQorCistIChO
U0ltYWdlICopZHJhZ2dlZEltYWdlCit7CisgICAgcmV0dXJuIGRyYWdnZWRJbWFnZTsKK30KKwor
LSAoTlNQYXN0ZWJvYXJkICopZHJhZ2dpbmdQYXN0ZWJvYXJkCit7CisgICAgcmV0dXJuIGRyYWdn
aW5nUGFzdGVib2FyZDsKK30KKworLSAoaWQpZHJhZ2dpbmdTb3VyY2UKK3sKKyAgICByZXR1cm4g
ZHJhZ2dpbmdTb3VyY2U7Cit9CisKKy0gKGludClkcmFnZ2luZ1NlcXVlbmNlTnVtYmVyCit7Cisg
ICAgTlNMb2coQCJEdW1wUmVuZGVyVHJlZSBkb2Vzbid0IHN1cHBvcnQgZHJhZ2dpbmdTZXF1ZW5j
ZU51bWJlciIpOworICAgIHJldHVybiAwOworfQorCistICh2b2lkKXNsaWRlRHJhZ2dlZEltYWdl
VG86KE5TUG9pbnQpc2NyZWVuUG9pbnQKK3sKKyAgICBOU0xvZyhAIkR1bXBSZW5kZXJUcmVlIGRv
ZXNuJ3Qgc3VwcG9ydCBzbGlkZURyYWdnZWRJbWFnZVRvOiIpOworfQorCistIChOU0FycmF5ICop
bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwgKilkcm9wRGVz
dGluYXRpb24KK3sKKyAgICBOU0xvZyhAIkR1bXBSZW5kZXJUcmVlIGRvZXNuJ3Qgc3VwcG9ydCBu
YW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOiIpOworICAgIHJldHVybiBu
aWw7Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlVmlldworCisv
LyBJbnRlcmNlcHQgdGhlIGRyYWcga2ljayBvZmYgdGhhdCdzIGdvaW5nIGZyb20gV2ViSFRNTFZp
ZXcgdG8gTlNWaWV3LiAgRG9uJ3QgcGFzcyBpdCBhbG9uZyB0byBBcHBLaXQsIHNpbmNlIEFwcEtp
dCB3b3VsZG4ndCBzZW5kIGRyYWdnaW5nIHVwZGF0ZXMgdG8gb3VyIGludmlzaWJsZSBXZWJWaWV3
LgorLSAodm9pZClkcmFnSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIGF0OihOU1BvaW50KXZpZXdM
b2NhdGlvbiBvZmZzZXQ6KE5TU2l6ZSlpbml0aWFsT2Zmc2V0IGV2ZW50OihOU0V2ZW50ICopZXZl
bnQgcGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJkIHNvdXJjZTooaWQpc291cmNlT2Jq
IHNsaWRlQmFjazooQk9PTClzbGlkZUZsYWcKK3sKKyAgICBpZiAoZHJhZ2dpbmdJbmZvKQorICAg
ICAgICBbZHJhZ2dpbmdJbmZvIHJlbGVhc2VdOworICAgIGRyYWdnaW5nSW5mbyA9IFtbRHVtcFJl
bmRlclRyZWVEcmFnZ2luZ0luZm8gYWxsb2NdIGluaXRXaXRoSW1hZ2U6YW5JbWFnZSBvZmZzZXQ6
aW5pdGlhbE9mZnNldCBwYXN0ZWJvYXJkOnBib2FyZCBzb3VyY2U6c291cmNlT2JqXTsKK30KKwor
QGVuZAorCg==
</data>
<flag name="review"
          id="1563"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>