<?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>58583</bug_id>
          
          <creation_ts>2011-04-14 15:17:24 -0700</creation_ts>
          <short_desc>WebKit2: Password field input does not switch to ASCII-compatible source</short_desc>
          <delta_ts>2011-04-15 18:19:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>386098</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-14 15:17:24 -0700</bug_when>
    <thetext>And it also doesn&apos;t enable secure event mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386099</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-14 15:17:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/9059651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386201</commentid>
    <comment_count>2</comment_count>
      <attachid>89690</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-14 17:10:44 -0700</bug_when>
    <thetext>Created attachment 89690
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386276</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-14 18:37:16 -0700</bug_when>
    <thetext>Attachment 89690 did not build on win:
Build output: http://queues.webkit.org/results/8442008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386480</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-15 02:00:30 -0700</bug_when>
    <thetext>Attachment 89690 did not build on chromium:
Build output: http://queues.webkit.org/results/8452094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386673</commentid>
    <comment_count>5</comment_count>
      <attachid>89690</attachid>
    <who name="">mitz</who>
    <bug_when>2011-04-15 09:30:59 -0700</bug_when>
    <thetext>Comment on attachment 89690
proposed fix

Looks okay but breaks some builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386735</commentid>
    <comment_count>6</comment_count>
      <attachid>89808</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-15 10:43:14 -0700</bug_when>
    <thetext>Created attachment 89808
updated fix

Mitz pointed out that WebPageProxy::selectionStateChanged() was wrong. I couldn&apos;t find any effect in testing, but it was wrong indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386742</commentid>
    <comment_count>7</comment_count>
      <attachid>89811</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-15 10:49:26 -0700</bug_when>
    <thetext>Created attachment 89811
also trying to fix chromium build

Not sure why it failed, EWS doesn&apos;t save enough context, and doesn&apos;t stop the build after a failure (boo!).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386779</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-15 11:39:09 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/83997&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387116</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-15 18:19:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/83997 might have broken GTK Linux 32-bit Debug
The following tests are not passing:
svg/W3C-SVG-1.1/animate-elem-82-t.svg</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89690</attachid>
            <date>2011-04-14 17:10:44 -0700</date>
            <delta_ts>2011-04-15 10:43:14 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>PasswordInputs.txt</filename>
            <type>text/plain</type>
            <size>23490</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODM5MDEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDQtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGFzc3dv
cmQgZmllbGQgaW5wdXQgZG9lcyBub3Qgc3dpdGNoIHRvIEFTQ0lJLWNvbXBhdGlibGUgc291cmNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODU4Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTA1OTY1MT4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bS5oOiBSZW1vdmVkIFdURl9VU0VfQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFLiBJdCdzIG5vdyBv
bmx5IHVzZWQgYnkgQ2hyb21pdW0sCisgICAgICAgIGFuZCBzaG91bGRuJ3QgYmUgZW5hYmxlZCBv
biBhbnkgb3RoZXIgcGxhdGZvcm1zLCBzbyB0aGVyZSBpcyBubyByZWFzb24gdG8gbWFrZSBpdAor
ICAgICAgICBjb25maWd1cmFibGUgdmlhIFBsYXRmb3JtLmguCisKIDIwMTEtMDQtMTQgIE9saXZl
ciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSByZW1vdmUg
YXNzZXJ0aW9uIHRoYXQncyBmaXJpbmcgYWxsIHRoZSB0aW1lLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzMiwxNSArNjMyLDEwIEBA
CiAjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCiAjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKSAqLwogCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBXVEZfVVNF
X0NBUkJPTl9TRUNVUkVfSU5QVVRfTU9ERSAxCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pCiAjZGVmaW5lIFdURl9VU0VfQ0YgMQogI2RlZmluZSBXVEZfVVNF
X1BUSFJFQURTIDEKICNkZWZpbmUgSEFWRV9QVEhSRUFEX1JXTE9DSyAxCi0jZGVmaW5lIFdURl9V
U0VfQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFIDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQlJF
V01QKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODM5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wNC0xNCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBQYXNzd29yZCBmaWVsZCBpbnB1dCBk
b2VzIG5vdCBzd2l0Y2ggdG8gQVNDSUktY29tcGF0aWJsZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NTgzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS85MDU5NjUxPgorCisgICAgICAgICogcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmVuYWJsZVNlY3VyZVRleHRJbnB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpkaXNhYmxlU2VjdXJlVGV4dElucHV0KToKKyAgICAgICAgVGhpcyBpcyBub3cgb25s
eSB1c2VkIGJ5IENocm9taXVtLiBUaGVyZSBpcyBubyBuZWVkIHRvIGNoYW5nZSBUU01Eb2N1bWVu
dCBwcm9wZXJ0aWVzIGluCisgICAgICAgIHJlbmRlcmVyIHByb2Nlc3MgKGFuZCByZWFsbHksIGFs
bCBzZWN1cmUgdGV4dCBpbnB1dCBsb2dpYyBpbiBXZWJDb3JlIHNob3VsZCBiZSBlbGltaW5hdGVk
KS4KKwogMjAxMS0wNC0xNCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNwcAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw0OSArMTAsMzMgQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlNlY3VyZVRleHRJbnB1dC5oIgogCi0jaWYgVVNFKENBUkJPTl9TRUNV
UkVfSU5QVVRfTU9ERSkKLSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KLSNlbmRpZgotCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFKQorLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIFdlYktpdCwgYmVjYXVzZSBicm93c2VyIHBy
b2Nlc3MgbmVlZHMgdG8gdHJhY2sgc2VjdXJlIGlucHV0IHN0YXRlIGFueXdheSB0byBtYW5pcHVs
YXRlIGlucHV0IGNvbnRleHRzLgogCi0jaWZkZWYgQlVJTERJTkdfT05fVElHRVIKLWNvbnN0IHNo
b3J0IGVuYWJsZVJvbWFuS2V5Ym9hcmRzT25seSA9IC0yMzsKLSNlbmRpZgorI2lmIFBMQVRGT1JN
KENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCiAKIHZvaWQgZW5hYmxlU2VjdXJlVGV4dElucHV0KCkK
IHsKICAgICBpZiAoSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAgICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VS
Ci0gICAgS2V5U2NyaXB0KGVuYWJsZVJvbWFuS2V5Ym9hcmRzT25seSk7Ci0jZWxzZQotICAgIC8v
IFdlYktpdCBzdWJzdGl0dXRlcyBuaWwgZm9yIGlucHV0IGNvbnRleHQgd2hlbiBpbiBwYXNzd29y
ZCBmaWVsZCwgd2hpY2ggY29ycmVzcG9uZHMgdG8gbnVsbCBUU01Eb2N1bWVudC4gU28sIHRoZXJl
IGlzCi0gICAgLy8gbm8gbmVlZCB0byBjYWxsIFRTTUdldEFjdGl2ZURvY3VtZW50KCksIHdoaWNo
IG1heSByZXR1cm4gYW4gaW5jb3JyZWN0IHJlc3VsdCB3aGVuIHNlbGVjdGlvbiBoYXNuJ3QgYmVl
biB5ZXQgdXBkYXRlZAotICAgIC8vIGFmdGVyIGZvY3VzaW5nIGEgbm9kZS4KLSAgICBDRkFycmF5
UmVmIGlucHV0U291cmNlcyA9IFRJU0NyZWF0ZUFTQ0lJQ2FwYWJsZUlucHV0U291cmNlTGlzdCgp
OwotICAgIFRTTVNldERvY3VtZW50UHJvcGVydHkoMCwga1RTTURvY3VtZW50RW5hYmxlZElucHV0
U291cmNlc1Byb3BlcnR5VGFnLCBzaXplb2YoQ0ZBcnJheVJlZiksICZpbnB1dFNvdXJjZXMpOwot
ICAgIENGUmVsZWFzZShpbnB1dFNvdXJjZXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgZGlzYWJsZVNl
Y3VyZVRleHRJbnB1dCgpCkBAIC02MCwxMyArNDQsOCBAQCB2b2lkIGRpc2FibGVTZWN1cmVUZXh0
SW5wdXQoKQogICAgIGlmICghSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKLSNpZmRlZiBCVUlMRElOR19P
Tl9USUdFUgotICAgIEtleVNjcmlwdChzbUtleUVuYWJsZUt5YmRzKTsKLSNlbHNlCi0gICAgVFNN
UmVtb3ZlRG9jdW1lbnRQcm9wZXJ0eSgwLCBrVFNNRG9jdW1lbnRFbmFibGVkSW5wdXRTb3VyY2Vz
UHJvcGVydHlUYWcpOwotI2VuZGlmCiB9CiAKLSNlbmRpZiAvLyBVU0UoQ0FSQk9OX1NFQ1VSRV9J
TlBVVF9NT0RFKQorI2VuZGlmIC8vIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzOTA5KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTEtMDQtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGFz
c3dvcmQgZmllbGQgaW5wdXQgZG9lcyBub3Qgc3dpdGNoIHRvIEFTQ0lJLWNvbXBhdGlibGUgc291
cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODU4
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTA1OTY1MT4KKworICAgICAgICBUaGUgaW1wbGVt
ZW50YXRpb24gaXMgbW9yZSBtb2Rlcm4gdGhhbiB3aGF0IHdlIGhhdmUgaW4gV0sxLiBJbnN0ZWFk
IG9mIHJldHVybmluZyBhIG51bGwKKyAgICAgICAgaW5wdXQgY29udGV4dCAoYXMgaW4gbm9uLWVk
aXRhYmxlIGNvbnRlbnQpLCB3ZSBub3cgc2V0IHBhZ2UgY29udGV4dCdzIHByb3BlcnRpZXMuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW06IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp1cGRhdGVTZWN1cmVJbnB1
dFN0YXRlKToKKyAgICAgICAgRm9yd2FyZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkgY2FsbCBm
cm9tIFdlYlBhZ2VQcm94eSB0byBXS1ZpZXcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6IEFTU0VSVCB0aGF0IHdl
IGRpZG4ndCBzb21laG93IGxlYXZlIHNlY3VyZSBpbnB1dCBldmVudHMgZW5hYmxlZC4KKyAgICAg
ICAgKC1bV0tWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXSk6IFVwZGF0ZSBzZWN1cmUgZXZlbnQg
bW9kZS4KKyAgICAgICAgKC1bV0tWaWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyXSk6IERpc2FibGUg
c2VjdXJlIGV2ZW50IG1vZGUuCisgICAgICAgICgtW1dLVmlldyBzZXRNYXJrZWRUZXh0OnNlbGVj
dGVkUmFuZ2U6cmVwbGFjZW1lbnRSYW5nZTpdKTogUHJldmVudCBtb3N0IGFkdmFuY2VkIGVkaXRp
bmcKKyAgICAgICAgYmVoYXZpb3JzIGluIHBhc3N3b3JkIGZpZWxkcywgbWF0Y2hpbmcgTlNTZWN1
cmVUZXh0SW5wdXRGaWVsZC4KKyAgICAgICAgKC1bV0tWaWV3IGF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wb3NlZFJhbmdlOmFjdHVhbFJhbmdlOl0pOiBEaXNhYmxlIFRTTSBEb2N1bWVudCBBY2Nl
c3MKKyAgICAgICAgaW4gcGFzc3dvcmQgZmllbGRzLiBUaGVyZSBpcyBhbHNvIGEgY2hlY2sgaW4g
d2ViIHByb2Nlc3MsIGJ1dCBpdCBkb2VzdCd0IGh1cnQgdG8gY2hlY2sgdHdpY2UuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkQmVjb21lS2V5Ol0pOiBDYWxsIF91cGRhdGVTZWN1cmVJbnB1
dFN0YXRlLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZFJlc2lnbktleTpdKTogQ2FsbCBf
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZS4KKyAgICAgICAgKC1bV0tWaWV3IF91cGRhdGVTZWN1cmVJ
bnB1dFN0YXRlXSk6IFVwZGF0ZSBzZWN1cmUgZXZlbnQgbW9kZSBhbmQgYWxsb3dlZCBpbnB1dCBz
b3VyY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDog
QWRkZWQgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDogKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5n
ZWQpOiBVcGRhdGUgc2VjdXJlCisgICAgICAgIGlucHV0IHN0YXRlIHdoZW4gZ29pbmcgaW4gb3Ig
b3V0IGEgcGFzc3dvcmQgZmllbGQuCisKIDIwMTEtMDQtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDgzNzUyKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0
LDYgKzEwNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQo
Y29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGNvbnN0IFRleHRJbnB1dFN0YXRlJiwgVmVj
dG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGV4
ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9v
bCBpc0xpbmtEcmFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNlY3VyZUlucHV0U3Rh
dGUoKSA9IDA7CiAjZW5kaWYKICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVhbCB2b2lkIGNv
bXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEz
Myw3ICsyMTMzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEZvcndhcmRMaXMK
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblN0YXRlQ2hhbmdlZChjb25zdCBTZWxlY3Rp
b25TdGF0ZSYgc2VsZWN0aW9uU3RhdGUpCiB7CisgICAgLy8gVGhpcyBpcyBhIHRlbXBvcmFyeSBz
dGF0ZS4gRmxpcHBpbmcgc2VjdXJlIGlucHV0IHN0YXRlIHRvbyBxdWlja2x5IGNhbiBleHBvc2Ug
cmFjZSBjb25kaXRpb25zLgorICAgIGlmIChzZWxlY3Rpb25TdGF0ZS5pc05vbmUpCisgICAgICAg
IHJldHVybjsKKworICAgIGJvb2wgY2hhbmdlZFNlY3VyZUlucHV0U3RhdGUgPSBtX3NlbGVjdGlv
blN0YXRlLmlzSW5QYXNzd29yZEZpZWxkICE9IHNlbGVjdGlvblN0YXRlLmlzSW5QYXNzd29yZEZp
ZWxkOwogICAgIG1fc2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKKyAgICBpZiAoY2hh
bmdlZFNlY3VyZUlucHV0U3RhdGUpCisgICAgICAgIG1fcGFnZUNsaWVudC0+dXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZSgpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4
Mzc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGNv
bnN0IFRleHRJbnB1dFN0YXRlJiwgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3Ry
aW5nJiBzZWxlY3Rvcik7CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBkcmFnSW1hZ2UsIGJvb2wgaXNMaW5rRHJhZyk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNl
Y3VyZUlucHV0U3RhdGUoKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZl
cnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwg
V2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiA4Mzc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDEs
NyArMzAxLDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldERyYWdJbWFnZShjb25zdCAKIAog
ICAgIFttX3drVmlldyBfc2V0RHJhZ0ltYWdlOmRyYWdOU0ltYWdlLmdldCgpIGF0OmNsaWVudFBv
c2l0aW9uIGxpbmtEcmFnOmlzTGlua0RyYWddOwogfQotICAgIAorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjp1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkKK3sKKyAgICBbbV93a1ZpZXcgX3VwZGF0ZVNl
Y3VyZUlucHV0U3RhdGVdOworfQorCiBGbG9hdFJlY3QgUGFnZUNsaWVudEltcGw6OmNvbnZlcnRU
b0RldmljZVNwYWNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICByZXR1cm4gW21fd2tW
aWV3IF9jb252ZXJ0VG9EZXZpY2VTcGFjZTpyZWN0XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9uIDgzNzUyKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQs
NiArMTU0LDggQEAgQGludGVyZmFjZSBXS1ZpZXdEYXRhIDogTlNPYmplY3QgewogCiAgICAgQk9P
TCBfaGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRlZ2VyIF9zcGVsbENoZWNr
ZXJEb2N1bWVudFRhZzsKKworICAgIEJPT0wgX2luU2VjdXJlSW5wdXRTdGF0ZTsKIH0KIEBlbmQK
IApAQCAtMjQ3LDYgKzI0OSw4IEBAIC0gKHZvaWQpZGVhbGxvYwogewogICAgIF9kYXRhLT5fcGFn
ZS0+Y2xvc2UoKTsKIAorICAgIEFTU0VSVCghX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpOwor
CiAgICAgW19kYXRhIHJlbGVhc2VdOwogICAgIF9kYXRhID0gbmlsOwogCkBAIC0yOTAsNyArMjk0
LDEwIEBAIC0gKEJPT0wpYmVjb21lRmlyc3RSZXNwb25kZXIKICAgICBOU1NlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24gPSBbW3NlbGYgd2luZG93XSBrZXlWaWV3U2VsZWN0aW9uRGlyZWN0aW9u
XTsKIAogICAgIF9kYXRhLT5faW5CZWNvbWVGaXJzdFJlc3BvbmRlciA9IHRydWU7CisgICAgCisg
ICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOwogICAgIF9kYXRhLT5fcGFnZS0+dmll
d1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9jdXNlZCk7CisKICAgICBfZGF0
YS0+X2luQmVjb21lRmlyc3RSZXNwb25kZXIgPSBmYWxzZTsKIAogICAgIGlmIChkaXJlY3Rpb24g
IT0gTlNEaXJlY3RTZWxlY3Rpb24pCkBAIC0zMDIsNyArMzA5LDEzIEBAIC0gKEJPT0wpYmVjb21l
Rmlyc3RSZXNwb25kZXIKIC0gKEJPT0wpcmVzaWduRmlyc3RSZXNwb25kZXIKIHsKICAgICBfZGF0
YS0+X2luUmVzaWduRmlyc3RSZXNwb25kZXIgPSB0cnVlOworCisgICAgaWYgKF9kYXRhLT5faW5T
ZWN1cmVJbnB1dFN0YXRlKSB7CisgICAgICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7Cisg
ICAgICAgIF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlID0gTk87CisgICAgfQogICAgIF9kYXRh
LT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9jdXNlZCk7
CisKICAgICBfZGF0YS0+X2luUmVzaWduRmlyc3RSZXNwb25kZXIgPSBmYWxzZTsKIAogICAgIHJl
dHVybiBZRVM7CkBAIC0xMzgwLDYgKzEzOTMsMjAgQEAgLSAodm9pZClzZXRNYXJrZWRUZXh0Oihp
ZClzdHJpbmcgc2VsZWN0ZQogICAgICAgICB0ZXh0ID0gc3RyaW5nOwogCiAgICAgVGV4dElucHV0
U3RhdGUgbmV3VGV4dElucHV0U3RhdGU7CisgICAgaWYgKF9kYXRhLT5fcGFnZS0+c2VsZWN0aW9u
U3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCkgeworICAgICAgICAvLyBJbiBwYXNzd29yZCBmaWVs
ZHMsIHdlIG9ubHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3QgYWxsb3cgaW5saW5l
IGlucHV0LCBtYXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxkLgorICAgICAgICAvLyBBbGxv
d2luZyBBU0NJSSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBmdWxsIFJvbWFuIGlu
cHV0IHdoZW4gdXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgorICAgICAgICBBU1NFUlQoIV9k
YXRhLT5fcGFnZS0+c2VsZWN0aW9uU3RhdGUoKS5oYXNDb21wb3NpdGlvbik7CisgICAgICAgIFtb
c3VwZXIgaW5wdXRDb250ZXh0XSBkaXNjYXJkTWFya2VkVGV4dF07IC8vIEluZm9ybSB0aGUgaW5w
dXQgbWV0aG9kIHRoYXQgd2Ugd29uJ3QgaGF2ZSBhbiBpbmxpbmUgaW5wdXQgYXJlYSBkZXNwaXRl
IGhhdmluZyBiZWVuIGFza2VkIHRvLgorICAgICAgICBpZiAoW3RleHQgbGVuZ3RoXSA9PSAxICYm
IFtbdGV4dCBkZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddIGNoYXJhY3RlckF0
SW5kZXg6MF0gPCAweDgwKSB7CisgICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPmluc2VydFRleHQo
dGV4dCwgcmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiwgTlNNYXhSYW5nZShyZXBsYWNlbWVudFJh
bmdlKSwgbmV3VGV4dElucHV0U3RhdGUpOworICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnMpCisg
ICAgICAgICAgICAgICAgcGFyYW1ldGVycy0+Y2FjaGVkVGV4dElucHV0U3RhdGUgPSBuZXdUZXh0
SW5wdXRTdGF0ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBOU0JlZXAoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIF9kYXRhLT5fcGFnZS0+c2V0Q29tcG9zaXRpb24odGV4
dCwgdW5kZXJsaW5lcywgbmV3U2VsUmFuZ2UubG9jYXRpb24sIE5TTWF4UmFuZ2UobmV3U2VsUmFu
Z2UpLCByZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uLCBOU01heFJhbmdlKHJlcGxhY2VtZW50UmFu
Z2UpLCBuZXdUZXh0SW5wdXRTdGF0ZSk7CiAgICAgaWYgKHBhcmFtZXRlcnMpCiAgICAgICAgIHBh
cmFtZXRlcnMtPmNhY2hlZFRleHRJbnB1dFN0YXRlID0gbmV3VGV4dElucHV0U3RhdGU7CkBAIC0x
NDA3LDYgKzE0MzQsOSBAQCAtIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3Vic3Ry
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCisgICAgaWYgKF9kYXRhLT5fcGFnZS0+c2Vs
ZWN0aW9uU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwog
ICAgIEF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0OwogICAgIF9kYXRhLT5fcGFnZS0+Z2V0QXR0cmli
dXRlZFN1YnN0cmluZ0Zyb21SYW5nZShuc1JhbmdlLmxvY2F0aW9uLCBOU01heFJhbmdlKG5zUmFu
Z2UpLCByZXN1bHQpOwogCkBAIC0xNzAwLDE1ICsxNzMwLDE5IEBAIC0gKHZvaWQpdmlld0RpZE1v
dmVUb1dpbmRvdwogLSAodm9pZClfd2luZG93RGlkQmVjb21lS2V5OihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewogICAgIE5TV2luZG93ICprZXlXaW5kb3cgPSBbbm90aWZpY2F0aW9u
IG9iamVjdF07Ci0gICAgaWYgKGtleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGtleVdpbmRv
dyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkKKyAgICBpZiAoa2V5V2luZG93ID09
IFtzZWxmIHdpbmRvd10gfHwga2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFjaGVkU2hl
ZXRdKSB7CisgICAgICAgIFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKICAgICAgICAg
X2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3V2luZG93
SXNBY3RpdmUpOworICAgIH0KIH0KIAogLSAodm9pZClfd2luZG93RGlkUmVzaWduS2V5OihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIE5TV2luZG93ICpmb3JtZXJLZXlXaW5k
b3cgPSBbbm90aWZpY2F0aW9uIG9iamVjdF07Ci0gICAgaWYgKGZvcm1lcktleVdpbmRvdyA9PSBb
c2VsZiB3aW5kb3ddIHx8IGZvcm1lcktleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hl
ZFNoZWV0XSkKKyAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09IFtzZWxmIHdpbmRvd10gfHwgZm9y
bWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFjaGVkU2hlZXRdKSB7CisgICAgICAg
IFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKICAgICAgICAgX2RhdGEtPl9wYWdlLT52
aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOworICAg
IH0KIH0KIAogLSAodm9pZClfd2luZG93RGlkTWluaWF0dXJpemU6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCkBAIC0yMjYxLDYgKzIyOTUsMzIgQEAgLSAodm9pZClfc2V0RHJhZ0ltYWdl
OihOU0ltYWdlICopaW1hZ2UgYQogICAgIF9kYXRhLT5fZHJhZ0hhc1N0YXJ0ZWQgPSBOTzsKIH0K
IAorLSAodm9pZClfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZQoreworICAgIGlmICghW1tzZWxmIHdp
bmRvd10gaXNLZXlXaW5kb3ddIHx8IChbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0gIT0g
c2VsZiAmJiAhX2RhdGEtPl9pbkJlY29tZUZpcnN0UmVzcG9uZGVyKSkgeworICAgICAgICBpZiAo
X2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAgICAgIERpc2FibGVTZWN1cmVF
dmVudElucHV0KCk7CisgICAgICAgICAgICBfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSA9IE5P
OworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gV0tWaWV3IGhhcyBh
IHNpbmdsZSBpbnB1dCBjb250ZXh0IGZvciBhbGwgZWRpdGFibGUgYXJlYXMgKGV4Y2VwdCBmb3Ig
cGx1Zy1pbnMpLgorICAgIE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFtzdXBlciBpbnB1
dENvbnRleHRdOworICAgIGJvb2wgaXNJblBhc3N3b3JkRmllbGQgPSBfZGF0YS0+X3BhZ2UtPnNl
bGVjdGlvblN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQ7CisKKyAgICBpZiAoaXNJblBhc3N3b3Jk
RmllbGQpIHsKKyAgICAgICAgaWYgKCFfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSkKKyAgICAg
ICAgICAgIEVuYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgc3RhdGljIE5TQXJyYXkg
KnJvbWFuSW5wdXRTb3VyY2VzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6Jk5T
QWxsUm9tYW5JbnB1dFNvdXJjZXNMb2NhbGVJZGVudGlmaWVyIGNvdW50OjFdOworICAgICAgICBb
Y29udGV4dCBzZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2NhbGVzOnJvbWFuSW5wdXRTb3VyY2VzXTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAoX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpCisg
ICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICBbY29udGV4dCBz
ZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2NhbGVzOm5pbF07CisgICAgfQorICAgIF9kYXRhLT5faW5T
ZWN1cmVJbnB1dFN0YXRlID0gaXNJblBhc3N3b3JkRmllbGQ7Cit9CisKIC0gKHZvaWQpX3NldERy
YXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemUKIHsKICAgICBpZiAoIV9kYXRhLT5fcGFnZS0+ZHJh
d2luZ0FyZWEoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
d0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3SW50ZXJuYWwuaAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2
ICs3NSw3IEBAIEBpbnRlcmZhY2UgV0tWaWV3IChJbnRlcm5hbCkKIC0gKHZvaWQpX2ZpbmRTdHJp
bmdJbkN1c3RvbVJlcHJlc2VudGF0aW9uOihOU1N0cmluZyAqKXN0cmluZyB3aXRoRmluZE9wdGlv
bnM6KFdlYktpdDo6RmluZE9wdGlvbnMpb3B0aW9ucyBtYXhNYXRjaENvdW50OihOU1VJbnRlZ2Vy
KWNvdW50OwogLSAodm9pZClfY291bnRTdHJpbmdNYXRjaGVzSW5DdXN0b21SZXByZXNlbnRhdGlv
bjooTlNTdHJpbmcgKilzdHJpbmcgd2l0aEZpbmRPcHRpb25zOihXZWJLaXQ6OkZpbmRPcHRpb25z
KW9wdGlvbnMgbWF4TWF0Y2hDb3VudDooTlNVSW50ZWdlciljb3VudDsKIC0gKHZvaWQpX3NldERy
YWdJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1BvaW50KWNsaWVudFBvaW50IGxpbmtEcmFn
OihCT09MKWxpbmtEcmFnOworLSAodm9pZClfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZTsKIAogLSAo
dm9pZClfc2V0RHJhd2luZ0FyZWFTaXplOihOU1NpemUpc2l6ZTsKIApJbmRleDogU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwkocmV2aXNpb24gODM5MTIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0wNC0xNCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQyOiBQYXNzd29yZCBmaWVsZCBpbnB1dCBkb2VzIG5vdCBzd2l0
Y2ggdG8gQVNDSUktY29tcGF0aWJsZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NTgzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MDU5
NjUxPgorCisgICAgICAgIE5vdyB0aGF0IFdlYkNvcmUgZG9lc24ndCBzZXQgc2VjdXJlIGlucHV0
IG1vZGUsIFdlYktpdCBoYXMgdG8uIEhhcHBpbHksIGl0IGFscmVhZHkgaGFzIHRoZQorICAgICAg
ICBuZWNlc3NhcnkgbG9naWMsIG5lZWRlZCB0byByZXR1cm4gYSBuaWwgdGV4dCBpbnB1dCBjb250
ZXh0IHdoZW4gaW4gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1M
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgY2xvc2VdKTogSWYgdGhlIHZpZXcgaXMg
c3RpbGwgZW5mb3JjaW5nIHNlY3VyZSBldmVudCBtb2RlLCBzdG9wLgorICAgICAgICAoLVtXZWJI
VE1MVmlldyB3aW5kb3dEaWRCZWNvbWVLZXk6XSk6IENhbGwgX3VwZGF0ZVNlY3VyZUlucHV0U3Rh
dGUuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IHdpbmRvd0RpZFJlc2lnbktleTpdKTogRGl0dG8u
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXSk6IENhbGwgX3Vw
ZGF0ZVNlY3VyZUlucHV0U3RhdGUuIEl0J3MgYSBiaXQgdHJpY2t5CisgICAgICAgIGJlY2F1c2Ug
dGhlIGZpcnN0IHJlc3BvbmRlciBpcyBzdGlsbCBkaWZmZXJlbnQgYW4gdGhpcyBwb2ludCwgc28g
c2V0IGEgYm9vbGVhbiB2YXJpYWJsZSB0bworICAgICAgICBsZXQgX3VwZGF0ZVNlY3VyZUlucHV0
U3RhdGUga25vdyB3aGF0J3MgZ29pbmcgb24uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IHJlc2ln
bkZpcnN0UmVzcG9uZGVyXSk6IERpc2FibGUgc2VjdXJlIGV2ZW50IG1vZGUgaWYgaXQncyBvbi4K
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdKTogVXBkYXRl
IEhJVG9vbGJveCBzZWN1cmUgZXZlbnQgaW5wdXQgc3RhdGUgYW5kCisgICAgICAgIGFsbG93ZWQg
aW5wdXQgc291cmNlcyBhY2NvcnNpbmcgdG8gY3VycmVudCBzZWxlY3Rpb24uCisgICAgICAgICgt
W1dlYkhUTUxWaWV3IF91cGRhdGVTZWxlY3Rpb25Gb3JJbnB1dE1hbmFnZXJdKTogQ2FsbCBfdXBk
YXRlU2VjdXJlSW5wdXRTdGF0ZS4KKwogMjAxMS0wNC0xNCAgUHJhdGlrIFNvbGFua2kgIDxwc29s
YW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiA4Mzc1
MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQzMiw2ICs0MzIsNyBAQCAtICh2b2lkKXRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvCiAKIEBpbnRlcmZhY2UgV2ViSFRNTFZpZXcgKFdlYkZvcndhcmREZWNsYXJhdGlv
bikgLy8gRklYTUU6IFB1dCB0aGlzIGluIGEgbm9ybWFsIGNhdGVnb3J5IGFuZCBzdG9wIGRvaW5n
IHRoZSBmb3J3YXJkIGRlY2xhcmF0aW9uIHRyaWNrLgogLSAodm9pZClfc2V0UHJpbnRpbmc6KEJP
T0wpcHJpbnRpbmcgbWluaW11bVBhZ2VMb2dpY2FsV2lkdGg6KGZsb2F0KW1pblBhZ2VXaWR0aCBs
b2dpY2FsSGVpZ2h0OihmbG9hdCltaW5QYWdlSGVpZ2h0IG1heGltdW1QYWdlTG9naWNhbFdpZHRo
OihmbG9hdCltYXhQYWdlV2lkdGggYWRqdXN0Vmlld1NpemU6KEJPT0wpYWRqdXN0Vmlld1NpemUg
cGFnaW5hdGVTY3JlZW5Db250ZW50OihCT09MKXBhZ2luYXRlU2NyZWVuQ29udGVudDsKKy0gKHZv
aWQpX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGU7CiBAZW5kCiAKIEBjbGFzcyBOU1RleHRJbnB1dENv
bnRleHQ7CkBAIC00OTUsNiArNDk2LDExIEBAIEBpbnRlcmZhY2UgV2ViSFRNTFZpZXdQcml2YXRl
IDogTlNPYmplY3QKICAgICAvLyBUaGlzIHN0YXRlIGlzIHNhdmVkIGVhY2ggdGltZSBzZWxlY3Rp
b24gY2hhbmdlcywgYmVjYXVzZSBjb21wdXRpbmcgaXQgY2F1c2VzIHN0eWxlIHJlY2FsYywgd2hp
Y2ggaXMgbm90IGFsd2F5cyBzYWZlIHRvIGRvLgogICAgIEJPT0wgZXhwb3NlSW5wdXRDb250ZXh0
OwogCisgICAgLy8gVHJhY2sgd2hldGhlciB0aGUgdmlldyBoYXMgc2V0IGEgc2VjdXJlIGlucHV0
IHN0YXRlLgorICAgIEJPT0wgaXNJblNlY3VyZUlucHV0U3RhdGU7CisKKyAgICBCT09MIF9mb3Jj
ZVVwZGF0ZVNlY3VyZUlucHV0U3RhdGU7CisKICAgICBOU1BvaW50IGxhc3RTY3JvbGxQb3NpdGlv
bjsKICNpZm5kZWYgQlVJTERJTkdfT05fVElHRVIKICAgICBCT09MIGluU2Nyb2xsUG9zaXRpb25D
aGFuZ2VkOwpAQCAtMTk5NCw2ICsyMDAwLDExIEBAIC0gKHZvaWQpY2xvc2UKICAgICAvLyByZW1v
dmUgdG9vbHRpcHMgYmVmb3JlIGNsZWFyaW5nIF9wcml2YXRlIHNvIHJlbW92ZVRyYWNraW5nUmVj
dDogd2lsbCB3b3JrIGNvcnJlY3RseQogICAgIFtzZWxmIHJlbW92ZUFsbFRvb2xUaXBzXTsKIAor
ICAgIGlmIChfcHJpdmF0ZS0+aXNJblNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAgRGlzYWJs
ZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0
YXRlID0gTk87CisgICAgfQorCiAgICAgW19wcml2YXRlIGNsZWFyXTsKIH0KIApAQCAtMzQ1OSw4
ICszNDcwLDEwIEBAIC0gKHZvaWQpd2luZG93RGlkQmVjb21lS2V5OihOU05vdGlmaWNhdGkKIAog
ICAgIE5TV2luZG93ICprZXlXaW5kb3cgPSBbbm90aWZpY2F0aW9uIG9iamVjdF07CiAKLSAgICBp
ZiAoa2V5V2luZG93ID09IFtzZWxmIHdpbmRvd10pCisgICAgaWYgKGtleVdpbmRvdyA9PSBbc2Vs
ZiB3aW5kb3ddKSB7CiAgICAgICAgIFtzZWxmIGFkZE1vdXNlTW92ZWRPYnNlcnZlcl07CisgICAg
ICAgIFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKKyAgICB9CiB9CiAKIC0gKHZvaWQp
d2luZG93RGlkUmVzaWduS2V5OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgpAQCAtMzQ3
NSw4ICszNDg4LDEwIEBAIC0gKHZvaWQpd2luZG93RGlkUmVzaWduS2V5OihOU05vdGlmaWNhdGkK
ICAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09IFtzZWxmIHdpbmRvd10pCiAgICAgICAgIFtzZWxm
IHJlbW92ZU1vdXNlTW92ZWRPYnNlcnZlcl07CiAKLSAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09
IFtzZWxmIHdpbmRvd10gfHwgZm9ybWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFj
aGVkU2hlZXRdKQorICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBm
b3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0pIHsKKyAgICAg
ICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOwogICAgICAgICBbX3ByaXZhdGUtPmNv
bXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107Cisg
ICAgfQogfQogCiAtICh2b2lkKXdpbmRvd1dpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KQEAgLTM4MDksNiArMzgyNCwxMCBAQCAtIChCT09MKWJlY29tZUZpcnN0UmVzcG9u
ZGVyCiAgICAgICAgIFtOU0FwcCB1cGRhdGVXaW5kb3dzXTsKICAgICB9CiAKKyAgICBfcHJpdmF0
ZS0+X2ZvcmNlVXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSA9IFlFUzsKKyAgICBbc2VsZiBfdXBkYXRl
U2VjdXJlSW5wdXRTdGF0ZV07CisgICAgX3ByaXZhdGUtPl9mb3JjZVVwZGF0ZVNlY3VyZUlucHV0
U3RhdGUgPSBOTzsKKwogICAgIGZyYW1lLT5lZGl0b3IoKS0+c2V0U3RhcnROZXdLaWxsUmluZ1Nl
cXVlbmNlKHRydWUpOwogCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CkBAIC0zODM0
LDYgKzM4NTMsMTAgQEAgLSAoQk9PTClyZXNpZ25GaXJzdFJlc3BvbmRlcgogewogICAgIEJPT0wg
cmVzaWduID0gW3N1cGVyIHJlc2lnbkZpcnN0UmVzcG9uZGVyXTsKICAgICBpZiAocmVzaWduKSB7
CisgICAgICAgIGlmIChfcHJpdmF0ZS0+aXNJblNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAg
ICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7CisgICAgICAgICAgICBfcHJpdmF0ZS0+aXNJ
blNlY3VyZUlucHV0U3RhdGUgPSBOTzsKKyAgICAgICAgfQogICAgICAgICBbX3ByaXZhdGUtPmNv
bXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107CiAg
ICAgICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pOwogICAgICAgICBp
ZiAoIWNvcmVGcmFtZSkKQEAgLTYxMDAsNiArNjEyMywzNyBAQCAtICh2b2lkKWluc2VydFRleHQ6
KGlkKXN0cmluZwogICAgICAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lk
ZUVmZmVjdHMgfD0gZXZlbnRIYW5kbGVkOwogfQogCistICh2b2lkKV91cGRhdGVTZWN1cmVJbnB1
dFN0YXRlCit7CisgICAgaWYgKCFbW3NlbGYgd2luZG93XSBpc0tleVdpbmRvd10gfHwgKFtbc2Vs
ZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXSAhPSBzZWxmICYmICFfcHJpdmF0ZS0+X2ZvcmNlVXBk
YXRlU2VjdXJlSW5wdXRTdGF0ZSkpIHsKKyAgICAgICAgaWYgKF9wcml2YXRlLT5pc0luU2VjdXJl
SW5wdXRTdGF0ZSkgeworICAgICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAg
ICAgICAgICAgIF9wcml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSA9IE5POworICAgICAgICB9
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShb
c2VsZiBfZnJhbWVdKTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGlzSW5QYXNzd29yZEZpZWxkKGNvcmVGcmFtZSkpIHsKKyAgICAgICAgaWYgKCFfcHJp
dmF0ZS0+aXNJblNlY3VyZUlucHV0U3RhdGUpCisgICAgICAgICAgICBFbmFibGVTZWN1cmVFdmVu
dElucHV0KCk7CisgICAgICAgIF9wcml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSA9IFlFUzsK
KyAgICAgICAgLy8gV2ViS2l0IHN1YnN0aXR1dGVzIG5pbCBmb3IgaW5wdXQgY29udGV4dCB3aGVu
IGluIHBhc3N3b3JkIGZpZWxkLCB3aGljaCBjb3JyZXNwb25kcyB0byBudWxsIFRTTURvY3VtZW50
LiBTbywgdGhlcmUgaXMKKyAgICAgICAgLy8gbm8gbmVlZCB0byBjYWxsIFRTTUdldEFjdGl2ZURv
Y3VtZW50KCksIHdoaWNoIG1heSByZXR1cm4gYW4gaW5jb3JyZWN0IHJlc3VsdCB3aGVuIHNlbGVj
dGlvbiBoYXNuJ3QgYmVlbiB5ZXQgdXBkYXRlZAorICAgICAgICAvLyBhZnRlciBmb2N1c2luZyBh
IG5vZGUuCisgICAgICAgIHN0YXRpYyBDRkFycmF5UmVmIGlucHV0U291cmNlcyA9IFRJU0NyZWF0
ZUFTQ0lJQ2FwYWJsZUlucHV0U291cmNlTGlzdCgpOworICAgICAgICBUU01TZXREb2N1bWVudFBy
b3BlcnR5KDAsIGtUU01Eb2N1bWVudEVuYWJsZWRJbnB1dFNvdXJjZXNQcm9wZXJ0eVRhZywgc2l6
ZW9mKENGQXJyYXlSZWYpLCAmaW5wdXRTb3VyY2VzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAoX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRlKQorICAgICAgICAgICAgRGlzYWJsZVNl
Y3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRl
ID0gTk87CisgICAgICAgIFRTTVJlbW92ZURvY3VtZW50UHJvcGVydHkoMCwga1RTTURvY3VtZW50
RW5hYmxlZElucHV0U291cmNlc1Byb3BlcnR5VGFnKTsKKyAgICB9Cit9CisKIC0gKHZvaWQpX3Vw
ZGF0ZVNlbGVjdGlvbkZvcklucHV0TWFuYWdlcgogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKFtzZWxmIF9mcmFtZV0pOwpAQCAtNjExNSw2ICs2MTY5LDggQEAgLSAodm9pZClfdXBkYXRl
U2VsZWN0aW9uRm9ySW5wdXRNYW5hZ2VyCiAgICAgICAgICAgICBbTlNBcHAgdXBkYXRlV2luZG93
c107CiAgICAgfQogCisgICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOworCiAgICAg
aWYgKCFjb3JlRnJhbWUtPmVkaXRvcigpLT5oYXNDb21wb3NpdGlvbigpKQogICAgICAgICByZXR1
cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89808</attachid>
            <date>2011-04-15 10:43:14 -0700</date>
            <delta_ts>2011-04-15 10:49:26 -0700</delta_ts>
            <desc>updated fix</desc>
            <filename>PasswordInputs.txt</filename>
            <type>text/plain</type>
            <size>23554</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODM5MDEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDQtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGFzc3dv
cmQgZmllbGQgaW5wdXQgZG9lcyBub3Qgc3dpdGNoIHRvIEFTQ0lJLWNvbXBhdGlibGUgc291cmNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODU4Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTA1OTY1MT4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bS5oOiBSZW1vdmVkIFdURl9VU0VfQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFLiBJdCdzIG5vdyBv
bmx5IHVzZWQgYnkgQ2hyb21pdW0sCisgICAgICAgIGFuZCBzaG91bGRuJ3QgYmUgZW5hYmxlZCBv
biBhbnkgb3RoZXIgcGxhdGZvcm1zLCBzbyB0aGVyZSBpcyBubyByZWFzb24gdG8gbWFrZSBpdAor
ICAgICAgICBjb25maWd1cmFibGUgdmlhIFBsYXRmb3JtLmguCisKIDIwMTEtMDQtMTQgIE9saXZl
ciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSByZW1vdmUg
YXNzZXJ0aW9uIHRoYXQncyBmaXJpbmcgYWxsIHRoZSB0aW1lLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzMiwxNSArNjMyLDEwIEBA
CiAjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCiAjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKSAqLwogCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBXVEZfVVNF
X0NBUkJPTl9TRUNVUkVfSU5QVVRfTU9ERSAxCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pCiAjZGVmaW5lIFdURl9VU0VfQ0YgMQogI2RlZmluZSBXVEZfVVNF
X1BUSFJFQURTIDEKICNkZWZpbmUgSEFWRV9QVEhSRUFEX1JXTE9DSyAxCi0jZGVmaW5lIFdURl9V
U0VfQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFIDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQlJF
V01QKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODM5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wNC0xNCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBQYXNzd29yZCBmaWVsZCBpbnB1dCBk
b2VzIG5vdCBzd2l0Y2ggdG8gQVNDSUktY29tcGF0aWJsZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NTgzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS85MDU5NjUxPgorCisgICAgICAgICogcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmVuYWJsZVNlY3VyZVRleHRJbnB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpkaXNhYmxlU2VjdXJlVGV4dElucHV0KToKKyAgICAgICAgVGhpcyBpcyBub3cgb25s
eSB1c2VkIGJ5IENocm9taXVtLiBUaGVyZSBpcyBubyBuZWVkIHRvIGNoYW5nZSBUU01Eb2N1bWVu
dCBwcm9wZXJ0aWVzIGluCisgICAgICAgIHJlbmRlcmVyIHByb2Nlc3MgKGFuZCByZWFsbHksIGFs
bCBzZWN1cmUgdGV4dCBpbnB1dCBsb2dpYyBpbiBXZWJDb3JlIHNob3VsZCBiZSBlbGltaW5hdGVk
KS4KKwogMjAxMS0wNC0xNCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNwcAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw0OSArMTAsMzMgQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlNlY3VyZVRleHRJbnB1dC5oIgogCi0jaWYgVVNFKENBUkJPTl9TRUNV
UkVfSU5QVVRfTU9ERSkKLSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KLSNlbmRpZgotCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFKQorLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIFdlYktpdCwgYmVjYXVzZSBicm93c2VyIHBy
b2Nlc3MgbmVlZHMgdG8gdHJhY2sgc2VjdXJlIGlucHV0IHN0YXRlIGFueXdheSB0byBtYW5pcHVs
YXRlIGlucHV0IGNvbnRleHRzLgogCi0jaWZkZWYgQlVJTERJTkdfT05fVElHRVIKLWNvbnN0IHNo
b3J0IGVuYWJsZVJvbWFuS2V5Ym9hcmRzT25seSA9IC0yMzsKLSNlbmRpZgorI2lmIFBMQVRGT1JN
KENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCiAKIHZvaWQgZW5hYmxlU2VjdXJlVGV4dElucHV0KCkK
IHsKICAgICBpZiAoSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAgICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VS
Ci0gICAgS2V5U2NyaXB0KGVuYWJsZVJvbWFuS2V5Ym9hcmRzT25seSk7Ci0jZWxzZQotICAgIC8v
IFdlYktpdCBzdWJzdGl0dXRlcyBuaWwgZm9yIGlucHV0IGNvbnRleHQgd2hlbiBpbiBwYXNzd29y
ZCBmaWVsZCwgd2hpY2ggY29ycmVzcG9uZHMgdG8gbnVsbCBUU01Eb2N1bWVudC4gU28sIHRoZXJl
IGlzCi0gICAgLy8gbm8gbmVlZCB0byBjYWxsIFRTTUdldEFjdGl2ZURvY3VtZW50KCksIHdoaWNo
IG1heSByZXR1cm4gYW4gaW5jb3JyZWN0IHJlc3VsdCB3aGVuIHNlbGVjdGlvbiBoYXNuJ3QgYmVl
biB5ZXQgdXBkYXRlZAotICAgIC8vIGFmdGVyIGZvY3VzaW5nIGEgbm9kZS4KLSAgICBDRkFycmF5
UmVmIGlucHV0U291cmNlcyA9IFRJU0NyZWF0ZUFTQ0lJQ2FwYWJsZUlucHV0U291cmNlTGlzdCgp
OwotICAgIFRTTVNldERvY3VtZW50UHJvcGVydHkoMCwga1RTTURvY3VtZW50RW5hYmxlZElucHV0
U291cmNlc1Byb3BlcnR5VGFnLCBzaXplb2YoQ0ZBcnJheVJlZiksICZpbnB1dFNvdXJjZXMpOwot
ICAgIENGUmVsZWFzZShpbnB1dFNvdXJjZXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgZGlzYWJsZVNl
Y3VyZVRleHRJbnB1dCgpCkBAIC02MCwxMyArNDQsOCBAQCB2b2lkIGRpc2FibGVTZWN1cmVUZXh0
SW5wdXQoKQogICAgIGlmICghSXNTZWN1cmVFdmVudElucHV0RW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKLSNpZmRlZiBCVUlMRElOR19P
Tl9USUdFUgotICAgIEtleVNjcmlwdChzbUtleUVuYWJsZUt5YmRzKTsKLSNlbHNlCi0gICAgVFNN
UmVtb3ZlRG9jdW1lbnRQcm9wZXJ0eSgwLCBrVFNNRG9jdW1lbnRFbmFibGVkSW5wdXRTb3VyY2Vz
UHJvcGVydHlUYWcpOwotI2VuZGlmCiB9CiAKLSNlbmRpZiAvLyBVU0UoQ0FSQk9OX1NFQ1VSRV9J
TlBVVF9NT0RFKQorI2VuZGlmIC8vIFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzOTA5KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTEtMDQtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGFz
c3dvcmQgZmllbGQgaW5wdXQgZG9lcyBub3Qgc3dpdGNoIHRvIEFTQ0lJLWNvbXBhdGlibGUgc291
cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODU4
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTA1OTY1MT4KKworICAgICAgICBUaGUgaW1wbGVt
ZW50YXRpb24gaXMgbW9yZSBtb2Rlcm4gdGhhbiB3aGF0IHdlIGhhdmUgaW4gV0sxLiBJbnN0ZWFk
IG9mIHJldHVybmluZyBhIG51bGwKKyAgICAgICAgaW5wdXQgY29udGV4dCAoYXMgaW4gbm9uLWVk
aXRhYmxlIGNvbnRlbnQpLCB3ZSBub3cgc2V0IHBhZ2UgY29udGV4dCdzIHByb3BlcnRpZXMuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW06IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp1cGRhdGVTZWN1cmVJbnB1
dFN0YXRlKToKKyAgICAgICAgRm9yd2FyZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkgY2FsbCBm
cm9tIFdlYlBhZ2VQcm94eSB0byBXS1ZpZXcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6IEFTU0VSVCB0aGF0IHdl
IGRpZG4ndCBzb21laG93IGxlYXZlIHNlY3VyZSBpbnB1dCBldmVudHMgZW5hYmxlZC4KKyAgICAg
ICAgKC1bV0tWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXSk6IFVwZGF0ZSBzZWN1cmUgZXZlbnQg
bW9kZS4KKyAgICAgICAgKC1bV0tWaWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyXSk6IERpc2FibGUg
c2VjdXJlIGV2ZW50IG1vZGUuCisgICAgICAgICgtW1dLVmlldyBzZXRNYXJrZWRUZXh0OnNlbGVj
dGVkUmFuZ2U6cmVwbGFjZW1lbnRSYW5nZTpdKTogUHJldmVudCBtb3N0IGFkdmFuY2VkIGVkaXRp
bmcKKyAgICAgICAgYmVoYXZpb3JzIGluIHBhc3N3b3JkIGZpZWxkcywgbWF0Y2hpbmcgTlNTZWN1
cmVUZXh0SW5wdXRGaWVsZC4KKyAgICAgICAgKC1bV0tWaWV3IGF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wb3NlZFJhbmdlOmFjdHVhbFJhbmdlOl0pOiBEaXNhYmxlIFRTTSBEb2N1bWVudCBBY2Nl
c3MKKyAgICAgICAgaW4gcGFzc3dvcmQgZmllbGRzLiBUaGVyZSBpcyBhbHNvIGEgY2hlY2sgaW4g
d2ViIHByb2Nlc3MsIGJ1dCBpdCBkb2VzdCd0IGh1cnQgdG8gY2hlY2sgdHdpY2UuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkQmVjb21lS2V5Ol0pOiBDYWxsIF91cGRhdGVTZWN1cmVJbnB1
dFN0YXRlLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZFJlc2lnbktleTpdKTogQ2FsbCBf
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZS4KKyAgICAgICAgKC1bV0tWaWV3IF91cGRhdGVTZWN1cmVJ
bnB1dFN0YXRlXSk6IFVwZGF0ZSBzZWN1cmUgZXZlbnQgbW9kZSBhbmQgYWxsb3dlZCBpbnB1dCBz
b3VyY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDog
QWRkZWQgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDogKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5n
ZWQpOiBVcGRhdGUgc2VjdXJlCisgICAgICAgIGlucHV0IHN0YXRlIHdoZW4gZ29pbmcgaW4gb3Ig
b3V0IGEgcGFzc3dvcmQgZmllbGQuCisKIDIwMTEtMDQtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDgzNzUyKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0
LDYgKzEwNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQo
Y29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGNvbnN0IFRleHRJbnB1dFN0YXRlJiwgVmVj
dG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGV4
ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9v
bCBpc0xpbmtEcmFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNlY3VyZUlucHV0U3Rh
dGUoKSA9IDA7CiAjZW5kaWYKICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVhbCB2b2lkIGNv
bXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEz
Myw3ICsyMTMzLDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEZvcndhcmRMaXMK
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblN0YXRlQ2hhbmdlZChjb25zdCBTZWxlY3Rp
b25TdGF0ZSYgc2VsZWN0aW9uU3RhdGUpCiB7CisgICAgYm9vbCBjb3VsZENoYW5nZVNlY3VyZUlu
cHV0U3RhdGUgPSBtX3NlbGVjdGlvblN0YXRlLmlzSW5QYXNzd29yZEZpZWxkICE9IHNlbGVjdGlv
blN0YXRlLmlzSW5QYXNzd29yZEZpZWxkIHx8IG1fc2VsZWN0aW9uU3RhdGUuaXNOb25lOwogICAg
IG1fc2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKKworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICAvLyBUaGlzIGlzIGEgdGVtcG9yYXJ5IHN0YXRlLiBGbGlwcGluZyBzZWN1cmUgaW5wdXQg
c3RhdGUgdG9vIHF1aWNrbHkgY2FuIGV4cG9zZSByYWNlIGNvbmRpdGlvbnMuCisgICAgaWYgKHNl
bGVjdGlvblN0YXRlLmlzTm9uZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNvdWxkQ2hh
bmdlU2VjdXJlSW5wdXRTdGF0ZSkKKyAgICAgICAgbV9wYWdlQ2xpZW50LT51cGRhdGVTZWN1cmVJ
bnB1dFN0YXRlKCk7CisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKFdJTikKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkocmV2
aXNpb24gODM3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xp
ZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGludGVycHJldEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQmLCBjb25zdCBUZXh0SW5wdXRTdGF0ZSYsIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQ+Jik7CiAgICAgdmlydHVhbCBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNv
bnN0IFN0cmluZyYgc2VsZWN0b3IpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREcmFnSW1hZ2UoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4gZHJhZ0ltYWdlLCBib29sIGlzTGlua0RyYWcpOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2
aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9Vc2VyU3BhY2UoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzAxLDcgKzMwMSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29u
c3QgCiAKICAgICBbbV93a1ZpZXcgX3NldERyYWdJbWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDpj
bGllbnRQb3NpdGlvbiBsaW5rRHJhZzppc0xpbmtEcmFnXTsKIH0KLSAgICAKKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpCit7CisgICAgW21fd2tWaWV3IF91
cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKK30KKwogRmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpj
b252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgcmV0dXJu
IFttX3drVmlldyBfY29udmVydFRvRGV2aWNlU3BhY2U6cmVjdF07CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCShyZXZpc2lvbiA4Mzc1MikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTU0LDYgKzE1NCw4IEBAIEBpbnRlcmZhY2UgV0tWaWV3RGF0YSA6IE5TT2JqZWN0IHsKIAog
ICAgIEJPT0wgX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogICAgIE5TSW50ZWdlciBfc3Bl
bGxDaGVja2VyRG9jdW1lbnRUYWc7CisKKyAgICBCT09MIF9pblNlY3VyZUlucHV0U3RhdGU7CiB9
CiBAZW5kCiAKQEAgLTI0Nyw2ICsyNDksOCBAQCAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBfZGF0
YS0+X3BhZ2UtPmNsb3NlKCk7CiAKKyAgICBBU1NFUlQoIV9kYXRhLT5faW5TZWN1cmVJbnB1dFN0
YXRlKTsKKwogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIApAQCAtMjkw
LDcgKzI5NCwxMCBAQCAtIChCT09MKWJlY29tZUZpcnN0UmVzcG9uZGVyCiAgICAgTlNTZWxlY3Rp
b25EaXJlY3Rpb24gZGlyZWN0aW9uID0gW1tzZWxmIHdpbmRvd10ga2V5Vmlld1NlbGVjdGlvbkRp
cmVjdGlvbl07CiAKICAgICBfZGF0YS0+X2luQmVjb21lRmlyc3RSZXNwb25kZXIgPSB0cnVlOwor
ICAgIAorICAgIFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKICAgICBfZGF0YS0+X3Bh
Z2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQpOworCiAg
ICAgX2RhdGEtPl9pbkJlY29tZUZpcnN0UmVzcG9uZGVyID0gZmFsc2U7CiAKICAgICBpZiAoZGly
ZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0aW9uKQpAQCAtMzAyLDcgKzMwOSwxMyBAQCAtIChCT09M
KWJlY29tZUZpcnN0UmVzcG9uZGVyCiAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiB7CiAg
ICAgX2RhdGEtPl9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gdHJ1ZTsKKworICAgIGlmIChfZGF0
YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSkgeworICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1
dCgpOworICAgICAgICBfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSA9IE5POworICAgIH0KICAg
ICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0Zv
Y3VzZWQpOworCiAgICAgX2RhdGEtPl9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gZmFsc2U7CiAK
ICAgICByZXR1cm4gWUVTOwpAQCAtMTM4MCw2ICsxMzkzLDIwIEBAIC0gKHZvaWQpc2V0TWFya2Vk
VGV4dDooaWQpc3RyaW5nIHNlbGVjdGUKICAgICAgICAgdGV4dCA9IHN0cmluZzsKIAogICAgIFRl
eHRJbnB1dFN0YXRlIG5ld1RleHRJbnB1dFN0YXRlOworICAgIGlmIChfZGF0YS0+X3BhZ2UtPnNl
bGVjdGlvblN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpIHsKKyAgICAgICAgLy8gSW4gcGFzc3dv
cmQgZmllbGRzLCB3ZSBvbmx5IGFsbG93IEFTQ0lJIGRlYWQga2V5cywgYW5kIGRvbid0IGFsbG93
IGlubGluZSBpbnB1dCwgbWF0Y2hpbmcgTlNTZWN1cmVUZXh0SW5wdXRGaWVsZC4KKyAgICAgICAg
Ly8gQWxsb3dpbmcgQVNDSUkgZGVhZCBrZXlzIGlzIG5lY2Vzc2FyeSB0byBlbmFibGUgZnVsbCBS
b21hbiBpbnB1dCB3aGVuIHVzaW5nIGEgVmlldG5hbWVzZSBrZXlib2FyZC4KKyAgICAgICAgQVNT
RVJUKCFfZGF0YS0+X3BhZ2UtPnNlbGVjdGlvblN0YXRlKCkuaGFzQ29tcG9zaXRpb24pOworICAg
ICAgICBbW3N1cGVyIGlucHV0Q29udGV4dF0gZGlzY2FyZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0g
dGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW5saW5lIGlucHV0IGFyZWEg
ZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KKyAgICAgICAgaWYgKFt0ZXh0IGxlbmd0aF0g
PT0gMSAmJiBbW3RleHQgZGVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSBjaGFy
YWN0ZXJBdEluZGV4OjBdIDwgMHg4MCkgeworICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT5pbnNl
cnRUZXh0KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24sIE5TTWF4UmFuZ2UocmVwbGFj
ZW1lbnRSYW5nZSksIG5ld1RleHRJbnB1dFN0YXRlKTsKKyAgICAgICAgICAgIGlmIChwYXJhbWV0
ZXJzKQorICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMtPmNhY2hlZFRleHRJbnB1dFN0YXRlID0g
bmV3VGV4dElucHV0U3RhdGU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTlNCZWVwKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBfZGF0YS0+X3BhZ2UtPnNldENvbXBvc2l0
aW9uKHRleHQsIHVuZGVybGluZXMsIG5ld1NlbFJhbmdlLmxvY2F0aW9uLCBOU01heFJhbmdlKG5l
d1NlbFJhbmdlKSwgcmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiwgTlNNYXhSYW5nZShyZXBsYWNl
bWVudFJhbmdlKSwgbmV3VGV4dElucHV0U3RhdGUpOwogICAgIGlmIChwYXJhbWV0ZXJzKQogICAg
ICAgICBwYXJhbWV0ZXJzLT5jYWNoZWRUZXh0SW5wdXRTdGF0ZSA9IG5ld1RleHRJbnB1dFN0YXRl
OwpAQCAtMTQwNyw2ICsxNDM0LDkgQEAgLSAoTlNBdHRyaWJ1dGVkU3RyaW5nICopYXR0cmlidXRl
ZFN1YnN0cgogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAorICAgIGlmIChfZGF0YS0+X3Bh
Z2UtPnNlbGVjdGlvblN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpCisgICAgICAgIHJldHVybiBu
aWw7CisKICAgICBBdHRyaWJ1dGVkU3RyaW5nIHJlc3VsdDsKICAgICBfZGF0YS0+X3BhZ2UtPmdl
dEF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UobnNSYW5nZS5sb2NhdGlvbiwgTlNNYXhSYW5n
ZShuc1JhbmdlKSwgcmVzdWx0KTsKIApAQCAtMTcwMCwxNSArMTczMCwxOSBAQCAtICh2b2lkKXZp
ZXdEaWRNb3ZlVG9XaW5kb3cKIC0gKHZvaWQpX3dpbmRvd0RpZEJlY29tZUtleTooTlNOb3RpZmlj
YXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBOU1dpbmRvdyAqa2V5V2luZG93ID0gW25vdGlm
aWNhdGlvbiBvYmplY3RdOwotICAgIGlmIChrZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBr
ZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0pCisgICAgaWYgKGtleVdp
bmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGtleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRh
Y2hlZFNoZWV0XSkgeworICAgICAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CiAg
ICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmll
d1dpbmRvd0lzQWN0aXZlKTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpX3dpbmRvd0RpZFJlc2lnbktl
eTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBOU1dpbmRvdyAqZm9ybWVy
S2V5V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwotICAgIGlmIChmb3JtZXJLZXlXaW5k
b3cgPT0gW3NlbGYgd2luZG93XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10g
YXR0YWNoZWRTaGVldF0pCisgICAgaWYgKGZvcm1lcktleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3dd
IHx8IGZvcm1lcktleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkgewor
ICAgICAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CiAgICAgICAgIF9kYXRhLT5f
cGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld1dpbmRvd0lzQWN0aXZl
KTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpX3dpbmRvd0RpZE1pbmlhdHVyaXplOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgpAQCAtMjI2MSw2ICsyMjk1LDMyIEBAIC0gKHZvaWQpX3NldERy
YWdJbWFnZTooTlNJbWFnZSAqKWltYWdlIGEKICAgICBfZGF0YS0+X2RyYWdIYXNTdGFydGVkID0g
Tk87CiB9CiAKKy0gKHZvaWQpX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGUKK3sKKyAgICBpZiAoIVtb
c2VsZiB3aW5kb3ddIGlzS2V5V2luZG93XSB8fCAoW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25k
ZXJdICE9IHNlbGYgJiYgIV9kYXRhLT5faW5CZWNvbWVGaXJzdFJlc3BvbmRlcikpIHsKKyAgICAg
ICAgaWYgKF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlKSB7CisgICAgICAgICAgICBEaXNhYmxl
U2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICAgICAgX2RhdGEtPl9pblNlY3VyZUlucHV0U3Rh
dGUgPSBOTzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIFdLVmll
dyBoYXMgYSBzaW5nbGUgaW5wdXQgY29udGV4dCBmb3IgYWxsIGVkaXRhYmxlIGFyZWFzIChleGNl
cHQgZm9yIHBsdWctaW5zKS4KKyAgICBOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBbc3Vw
ZXIgaW5wdXRDb250ZXh0XTsKKyAgICBib29sIGlzSW5QYXNzd29yZEZpZWxkID0gX2RhdGEtPl9w
YWdlLT5zZWxlY3Rpb25TdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkOworCisgICAgaWYgKGlzSW5Q
YXNzd29yZEZpZWxkKSB7CisgICAgICAgIGlmICghX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUp
CisgICAgICAgICAgICBFbmFibGVTZWN1cmVFdmVudElucHV0KCk7CisgICAgICAgIHN0YXRpYyBO
U0FycmF5ICpyb21hbklucHV0U291cmNlcyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmpl
Y3RzOiZOU0FsbFJvbWFuSW5wdXRTb3VyY2VzTG9jYWxlSWRlbnRpZmllciBjb3VudDoxXTsKKyAg
ICAgICAgW2NvbnRleHQgc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpyb21hbklucHV0U291
cmNlc107CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0
YXRlKQorICAgICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgW2Nv
bnRleHQgc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpuaWxdOworICAgIH0KKyAgICBfZGF0
YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSA9IGlzSW5QYXNzd29yZEZpZWxkOworfQorCiAtICh2b2lk
KV9zZXREcmF3aW5nQXJlYVNpemU6KE5TU2l6ZSlzaXplCiB7CiAgICAgaWYgKCFfZGF0YS0+X3Bh
Z2UtPmRyYXdpbmdBcmVhKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgJKHJldmlzaW9uIDgzNzUyKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpA
QCAtNzUsNiArNzUsNyBAQCBAaW50ZXJmYWNlIFdLVmlldyAoSW50ZXJuYWwpCiAtICh2b2lkKV9m
aW5kU3RyaW5nSW5DdXN0b21SZXByZXNlbnRhdGlvbjooTlNTdHJpbmcgKilzdHJpbmcgd2l0aEZp
bmRPcHRpb25zOihXZWJLaXQ6OkZpbmRPcHRpb25zKW9wdGlvbnMgbWF4TWF0Y2hDb3VudDooTlNV
SW50ZWdlciljb3VudDsKIC0gKHZvaWQpX2NvdW50U3RyaW5nTWF0Y2hlc0luQ3VzdG9tUmVwcmVz
ZW50YXRpb246KE5TU3RyaW5nICopc3RyaW5nIHdpdGhGaW5kT3B0aW9uczooV2ViS2l0OjpGaW5k
T3B0aW9ucylvcHRpb25zIG1heE1hdGNoQ291bnQ6KE5TVUludGVnZXIpY291bnQ7CiAtICh2b2lk
KV9zZXREcmFnSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhdDooTlNQb2ludCljbGllbnRQb2ludCBs
aW5rRHJhZzooQk9PTClsaW5rRHJhZzsKKy0gKHZvaWQpX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGU7
CiAKIC0gKHZvaWQpX3NldERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemU7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzOTEyKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDQtMTQgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGFzc3dvcmQgZmllbGQgaW5wdXQgZG9lcyBu
b3Qgc3dpdGNoIHRvIEFTQ0lJLWNvbXBhdGlibGUgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODU4MworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vOTA1OTY1MT4KKworICAgICAgICBOb3cgdGhhdCBXZWJDb3JlIGRvZXNuJ3Qgc2V0IHNlY3Vy
ZSBpbnB1dCBtb2RlLCBXZWJLaXQgaGFzIHRvLiBIYXBwaWx5LCBpdCBhbHJlYWR5IGhhcyB0aGUK
KyAgICAgICAgbmVjZXNzYXJ5IGxvZ2ljLCBuZWVkZWQgdG8gcmV0dXJuIGEgbmlsIHRleHQgaW5w
dXQgY29udGV4dCB3aGVuIGluIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNsb3NlXSk6IElmIHRoZSB2
aWV3IGlzIHN0aWxsIGVuZm9yY2luZyBzZWN1cmUgZXZlbnQgbW9kZSwgc3RvcC4KKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgd2luZG93RGlkQmVjb21lS2V5Ol0pOiBDYWxsIF91cGRhdGVTZWN1cmVJ
bnB1dFN0YXRlLgorICAgICAgICAoLVtXZWJIVE1MVmlldyB3aW5kb3dEaWRSZXNpZ25LZXk6XSk6
IERpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBiZWNvbWVGaXJzdFJlc3BvbmRlcl0pOiBD
YWxsIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlLiBJdCdzIGEgYml0IHRyaWNreQorICAgICAgICBi
ZWNhdXNlIHRoZSBmaXJzdCByZXNwb25kZXIgaXMgc3RpbGwgZGlmZmVyZW50IGFuIHRoaXMgcG9p
bnQsIHNvIHNldCBhIGJvb2xlYW4gdmFyaWFibGUgdG8KKyAgICAgICAgbGV0IF91cGRhdGVTZWN1
cmVJbnB1dFN0YXRlIGtub3cgd2hhdCdzIGdvaW5nIG9uLgorICAgICAgICAoLVtXZWJIVE1MVmll
dyByZXNpZ25GaXJzdFJlc3BvbmRlcl0pOiBEaXNhYmxlIHNlY3VyZSBldmVudCBtb2RlIGlmIGl0
J3Mgb24uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXSk6
IFVwZGF0ZSBISVRvb2xib3ggc2VjdXJlIGV2ZW50IGlucHV0IHN0YXRlIGFuZAorICAgICAgICBh
bGxvd2VkIGlucHV0IHNvdXJjZXMgYWNjb3JzaW5nIHRvIGN1cnJlbnQgc2VsZWN0aW9uLgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlU2VsZWN0aW9uRm9ySW5wdXRNYW5hZ2VyXSk6IENh
bGwgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGUuCisKIDIwMTEtMDQtMTQgIFByYXRpayBTb2xhbmtp
ICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHpl
ci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkocmV2aXNp
b24gODM3NTIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC00MzIsNiArNDMyLDcgQEAgLSAodm9pZCl0b2dnbGVBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3RpbwogCiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3IChXZWJGb3J3YXJkRGVj
bGFyYXRpb24pIC8vIEZJWE1FOiBQdXQgdGhpcyBpbiBhIG5vcm1hbCBjYXRlZ29yeSBhbmQgc3Rv
cCBkb2luZyB0aGUgZm9yd2FyZCBkZWNsYXJhdGlvbiB0cmljay4KIC0gKHZvaWQpX3NldFByaW50
aW5nOihCT09MKXByaW50aW5nIG1pbmltdW1QYWdlTG9naWNhbFdpZHRoOihmbG9hdCltaW5QYWdl
V2lkdGggbG9naWNhbEhlaWdodDooZmxvYXQpbWluUGFnZUhlaWdodCBtYXhpbXVtUGFnZUxvZ2lj
YWxXaWR0aDooZmxvYXQpbWF4UGFnZVdpZHRoIGFkanVzdFZpZXdTaXplOihCT09MKWFkanVzdFZp
ZXdTaXplIHBhZ2luYXRlU2NyZWVuQ29udGVudDooQk9PTClwYWdpbmF0ZVNjcmVlbkNvbnRlbnQ7
CistICh2b2lkKV91cGRhdGVTZWN1cmVJbnB1dFN0YXRlOwogQGVuZAogCiBAY2xhc3MgTlNUZXh0
SW5wdXRDb250ZXh0OwpAQCAtNDk1LDYgKzQ5NiwxMSBAQCBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3
UHJpdmF0ZSA6IE5TT2JqZWN0CiAgICAgLy8gVGhpcyBzdGF0ZSBpcyBzYXZlZCBlYWNoIHRpbWUg
c2VsZWN0aW9uIGNoYW5nZXMsIGJlY2F1c2UgY29tcHV0aW5nIGl0IGNhdXNlcyBzdHlsZSByZWNh
bGMsIHdoaWNoIGlzIG5vdCBhbHdheXMgc2FmZSB0byBkby4KICAgICBCT09MIGV4cG9zZUlucHV0
Q29udGV4dDsKIAorICAgIC8vIFRyYWNrIHdoZXRoZXIgdGhlIHZpZXcgaGFzIHNldCBhIHNlY3Vy
ZSBpbnB1dCBzdGF0ZS4KKyAgICBCT09MIGlzSW5TZWN1cmVJbnB1dFN0YXRlOworCisgICAgQk9P
TCBfZm9yY2VVcGRhdGVTZWN1cmVJbnB1dFN0YXRlOworCiAgICAgTlNQb2ludCBsYXN0U2Nyb2xs
UG9zaXRpb247CiAjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgQk9PTCBpblNjcm9sbFBv
c2l0aW9uQ2hhbmdlZDsKQEAgLTE5OTQsNiArMjAwMCwxMSBAQCAtICh2b2lkKWNsb3NlCiAgICAg
Ly8gcmVtb3ZlIHRvb2x0aXBzIGJlZm9yZSBjbGVhcmluZyBfcHJpdmF0ZSBzbyByZW1vdmVUcmFj
a2luZ1JlY3Q6IHdpbGwgd29yayBjb3JyZWN0bHkKICAgICBbc2VsZiByZW1vdmVBbGxUb29sVGlw
c107CiAKKyAgICBpZiAoX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRlKSB7CisgICAgICAg
IERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7CisgICAgICAgIF9wcml2YXRlLT5pc0luU2VjdXJl
SW5wdXRTdGF0ZSA9IE5POworICAgIH0KKwogICAgIFtfcHJpdmF0ZSBjbGVhcl07CiB9CiAKQEAg
LTM0NTksOCArMzQ3MCwxMCBAQCAtICh2b2lkKXdpbmRvd0RpZEJlY29tZUtleTooTlNOb3RpZmlj
YXRpCiAKICAgICBOU1dpbmRvdyAqa2V5V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwog
Ci0gICAgaWYgKGtleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddKQorICAgIGlmIChrZXlXaW5kb3cg
PT0gW3NlbGYgd2luZG93XSkgewogICAgICAgICBbc2VsZiBhZGRNb3VzZU1vdmVkT2JzZXJ2ZXJd
OworICAgICAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CisgICAgfQogfQogCiAt
ICh2b2lkKXdpbmRvd0RpZFJlc2lnbktleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
QEAgLTM0NzUsOCArMzQ4OCwxMCBAQCAtICh2b2lkKXdpbmRvd0RpZFJlc2lnbktleTooTlNOb3Rp
ZmljYXRpCiAgICAgaWYgKGZvcm1lcktleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddKQogICAgICAg
ICBbc2VsZiByZW1vdmVNb3VzZU1vdmVkT2JzZXJ2ZXJdOwogCi0gICAgaWYgKGZvcm1lcktleVdp
bmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGZvcm1lcktleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93
XSBhdHRhY2hlZFNoZWV0XSkKKyAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09IFtzZWxmIHdpbmRv
d10gfHwgZm9ybWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFjaGVkU2hlZXRdKSB7
CisgICAgICAgIFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKICAgICAgICAgW19wcml2
YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6
Tk9dOworICAgIH0KIH0KIAogLSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9u
ICopbm90aWZpY2F0aW9uCkBAIC0zODA5LDYgKzM4MjQsMTAgQEAgLSAoQk9PTCliZWNvbWVGaXJz
dFJlc3BvbmRlcgogICAgICAgICBbTlNBcHAgdXBkYXRlV2luZG93c107CiAgICAgfQogCisgICAg
X3ByaXZhdGUtPl9mb3JjZVVwZGF0ZVNlY3VyZUlucHV0U3RhdGUgPSBZRVM7CisgICAgW3NlbGYg
X3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOworICAgIF9wcml2YXRlLT5fZm9yY2VVcGRhdGVTZWN1
cmVJbnB1dFN0YXRlID0gTk87CisKICAgICBmcmFtZS0+ZWRpdG9yKCktPnNldFN0YXJ0TmV3S2ls
bFJpbmdTZXF1ZW5jZSh0cnVlKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwpA
QCAtMzgzNCw2ICszODUzLDEwIEBAIC0gKEJPT0wpcmVzaWduRmlyc3RSZXNwb25kZXIKIHsKICAg
ICBCT09MIHJlc2lnbiA9IFtzdXBlciByZXNpZ25GaXJzdFJlc3BvbmRlcl07CiAgICAgaWYgKHJl
c2lnbikgeworICAgICAgICBpZiAoX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRlKSB7Cisg
ICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICAgICAgX3ByaXZh
dGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRlID0gTk87CisgICAgICAgIH0KICAgICAgICAgW19wcml2
YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6
Tk9dOwogICAgICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKTsKICAg
ICAgICAgaWYgKCFjb3JlRnJhbWUpCkBAIC02MTAwLDYgKzYxMjMsMzcgQEAgLSAodm9pZClpbnNl
cnRUZXh0OihpZClzdHJpbmcKICAgICAgICAgcGFyYW1ldGVycy0+ZXZlbnRJbnRlcnByZXRhdGlv
bkhhZFNpZGVFZmZlY3RzIHw9IGV2ZW50SGFuZGxlZDsKIH0KIAorLSAodm9pZClfdXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZQoreworICAgIGlmICghW1tzZWxmIHdpbmRvd10gaXNLZXlXaW5kb3ddIHx8
IChbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0gIT0gc2VsZiAmJiAhX3ByaXZhdGUtPl9m
b3JjZVVwZGF0ZVNlY3VyZUlucHV0U3RhdGUpKSB7CisgICAgICAgIGlmIChfcHJpdmF0ZS0+aXNJ
blNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAgICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0
KCk7CisgICAgICAgICAgICBfcHJpdmF0ZS0+aXNJblNlY3VyZUlucHV0U3RhdGUgPSBOTzsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoW3NlbGYgX2ZyYW1lXSk7CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChpc0luUGFzc3dvcmRGaWVsZChjb3JlRnJhbWUpKSB7CisgICAgICAgIGlm
ICghX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRlKQorICAgICAgICAgICAgRW5hYmxlU2Vj
dXJlRXZlbnRJbnB1dCgpOworICAgICAgICBfcHJpdmF0ZS0+aXNJblNlY3VyZUlucHV0U3RhdGUg
PSBZRVM7CisgICAgICAgIC8vIFdlYktpdCBzdWJzdGl0dXRlcyBuaWwgZm9yIGlucHV0IGNvbnRl
eHQgd2hlbiBpbiBwYXNzd29yZCBmaWVsZCwgd2hpY2ggY29ycmVzcG9uZHMgdG8gbnVsbCBUU01E
b2N1bWVudC4gU28sIHRoZXJlIGlzCisgICAgICAgIC8vIG5vIG5lZWQgdG8gY2FsbCBUU01HZXRB
Y3RpdmVEb2N1bWVudCgpLCB3aGljaCBtYXkgcmV0dXJuIGFuIGluY29ycmVjdCByZXN1bHQgd2hl
biBzZWxlY3Rpb24gaGFzbid0IGJlZW4geWV0IHVwZGF0ZWQKKyAgICAgICAgLy8gYWZ0ZXIgZm9j
dXNpbmcgYSBub2RlLgorICAgICAgICBzdGF0aWMgQ0ZBcnJheVJlZiBpbnB1dFNvdXJjZXMgPSBU
SVNDcmVhdGVBU0NJSUNhcGFibGVJbnB1dFNvdXJjZUxpc3QoKTsKKyAgICAgICAgVFNNU2V0RG9j
dW1lbnRQcm9wZXJ0eSgwLCBrVFNNRG9jdW1lbnRFbmFibGVkSW5wdXRTb3VyY2VzUHJvcGVydHlU
YWcsIHNpemVvZihDRkFycmF5UmVmKSwgJmlucHV0U291cmNlcyk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgaWYgKF9wcml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSkKKyAgICAgICAgICAgIERp
c2FibGVTZWN1cmVFdmVudElucHV0KCk7CisgICAgICAgIF9wcml2YXRlLT5pc0luU2VjdXJlSW5w
dXRTdGF0ZSA9IE5POworICAgICAgICBUU01SZW1vdmVEb2N1bWVudFByb3BlcnR5KDAsIGtUU01E
b2N1bWVudEVuYWJsZWRJbnB1dFNvdXJjZXNQcm9wZXJ0eVRhZyk7CisgICAgfQorfQorCiAtICh2
b2lkKV91cGRhdGVTZWxlY3Rpb25Gb3JJbnB1dE1hbmFnZXIKIHsKICAgICBGcmFtZSogY29yZUZy
YW1lID0gY29yZShbc2VsZiBfZnJhbWVdKTsKQEAgLTYxMTUsNiArNjE2OSw4IEBAIC0gKHZvaWQp
X3VwZGF0ZVNlbGVjdGlvbkZvcklucHV0TWFuYWdlcgogICAgICAgICAgICAgW05TQXBwIHVwZGF0
ZVdpbmRvd3NdOwogICAgIH0KIAorICAgIFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsK
KwogICAgIGlmICghY29yZUZyYW1lLT5lZGl0b3IoKS0+aGFzQ29tcG9zaXRpb24oKSkKICAgICAg
ICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89811</attachid>
            <date>2011-04-15 10:49:26 -0700</date>
            <delta_ts>2011-04-15 11:29:47 -0700</delta_ts>
            <desc>also trying to fix chromium build</desc>
            <filename>PasswordInputs.txt</filename>
            <type>text/plain</type>
            <size>23558</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODM5MDEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDQtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogUGFzc3dv
cmQgZmllbGQgaW5wdXQgZG9lcyBub3Qgc3dpdGNoIHRvIEFTQ0lJLWNvbXBhdGlibGUgc291cmNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODU4Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTA1OTY1MT4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bS5oOiBSZW1vdmVkIFdURl9VU0VfQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFLiBJdCdzIG5vdyBv
bmx5IHVzZWQgYnkgQ2hyb21pdW0sCisgICAgICAgIGFuZCBzaG91bGRuJ3QgYmUgZW5hYmxlZCBv
biBhbnkgb3RoZXIgcGxhdGZvcm1zLCBzbyB0aGVyZSBpcyBubyByZWFzb24gdG8gbWFrZSBpdAor
ICAgICAgICBjb25maWd1cmFibGUgdmlhIFBsYXRmb3JtLmguCisKIDIwMTEtMDQtMTQgIE9saXZl
ciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSByZW1vdmUg
YXNzZXJ0aW9uIHRoYXQncyBmaXJpbmcgYWxsIHRoZSB0aW1lLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzMiwxNSArNjMyLDEwIEBA
CiAjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCiAjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKSAqLwogCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBXVEZfVVNF
X0NBUkJPTl9TRUNVUkVfSU5QVVRfTU9ERSAxCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pCiAjZGVmaW5lIFdURl9VU0VfQ0YgMQogI2RlZmluZSBXVEZfVVNF
X1BUSFJFQURTIDEKICNkZWZpbmUgSEFWRV9QVEhSRUFEX1JXTE9DSyAxCi0jZGVmaW5lIFdURl9V
U0VfQ0FSQk9OX1NFQ1VSRV9JTlBVVF9NT0RFIDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQlJF
V01QKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODM5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wNC0xNCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBQYXNzd29yZCBmaWVsZCBpbnB1dCBk
b2VzIG5vdCBzd2l0Y2ggdG8gQVNDSUktY29tcGF0aWJsZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NTgzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS85MDU5NjUxPgorCisgICAgICAgICogcGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmVuYWJsZVNlY3VyZVRleHRJbnB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpkaXNhYmxlU2VjdXJlVGV4dElucHV0KToKKyAgICAgICAgVGhpcyBpcyBub3cgb25s
eSB1c2VkIGJ5IENocm9taXVtLiBUaGVyZSBpcyBubyBuZWVkIHRvIGNoYW5nZSBUU01Eb2N1bWVu
dCBwcm9wZXJ0aWVzIGluCisgICAgICAgIHJlbmRlcmVyIHByb2Nlc3MgKGFuZCByZWFsbHksIGFs
bCBzZWN1cmUgdGV4dCBpbnB1dCBsb2dpYyBpbiBXZWJDb3JlIHNob3VsZCBiZSBlbGltaW5hdGVk
KS4KKwogMjAxMS0wNC0xNCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2VjdXJlVGV4dElucHV0LmNwcAkocmV2aXNpb24gODM3NTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw0OSArMTAsMzQgQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gV2ViS2l0LCBiZWNhdXNl
IGJyb3dzZXIgcHJvY2VzcyBuZWVkcyB0byB0cmFjayBzZWN1cmUgaW5wdXQgc3RhdGUgYW55d2F5
IHRvIG1hbmlwdWxhdGUgaW5wdXQgY29udGV4dHMuCisjaWYgUExBVEZPUk0oQ0hST01JVU0pICYm
IE9TKERBUldJTikKICNpbmNsdWRlICJTZWN1cmVUZXh0SW5wdXQuaCIKIAotI2lmIFVTRShDQVJC
T05fU0VDVVJFX0lOUFVUX01PREUpCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+Ci0jZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKENBUkJPTl9TRUNVUkVfSU5QVVRfTU9E
RSkKLQotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCi1jb25zdCBzaG9ydCBlbmFibGVSb21hbktl
eWJvYXJkc09ubHkgPSAtMjM7Ci0jZW5kaWYKLQogdm9pZCBlbmFibGVTZWN1cmVUZXh0SW5wdXQo
KQogewogICAgIGlmIChJc1NlY3VyZUV2ZW50SW5wdXRFbmFibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBFbmFibGVTZWN1cmVFdmVudElucHV0KCk7Ci0jaWZkZWYgQlVJTERJTkdfT05fVElH
RVIKLSAgICBLZXlTY3JpcHQoZW5hYmxlUm9tYW5LZXlib2FyZHNPbmx5KTsKLSNlbHNlCi0gICAg
Ly8gV2ViS2l0IHN1YnN0aXR1dGVzIG5pbCBmb3IgaW5wdXQgY29udGV4dCB3aGVuIGluIHBhc3N3
b3JkIGZpZWxkLCB3aGljaCBjb3JyZXNwb25kcyB0byBudWxsIFRTTURvY3VtZW50LiBTbywgdGhl
cmUgaXMKLSAgICAvLyBubyBuZWVkIHRvIGNhbGwgVFNNR2V0QWN0aXZlRG9jdW1lbnQoKSwgd2hp
Y2ggbWF5IHJldHVybiBhbiBpbmNvcnJlY3QgcmVzdWx0IHdoZW4gc2VsZWN0aW9uIGhhc24ndCBi
ZWVuIHlldCB1cGRhdGVkCi0gICAgLy8gYWZ0ZXIgZm9jdXNpbmcgYSBub2RlLgotICAgIENGQXJy
YXlSZWYgaW5wdXRTb3VyY2VzID0gVElTQ3JlYXRlQVNDSUlDYXBhYmxlSW5wdXRTb3VyY2VMaXN0
KCk7Ci0gICAgVFNNU2V0RG9jdW1lbnRQcm9wZXJ0eSgwLCBrVFNNRG9jdW1lbnRFbmFibGVkSW5w
dXRTb3VyY2VzUHJvcGVydHlUYWcsIHNpemVvZihDRkFycmF5UmVmKSwgJmlucHV0U291cmNlcyk7
Ci0gICAgQ0ZSZWxlYXNlKGlucHV0U291cmNlcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBkaXNhYmxl
U2VjdXJlVGV4dElucHV0KCkKQEAgLTYwLDEzICs0NSw4IEBAIHZvaWQgZGlzYWJsZVNlY3VyZVRl
eHRJbnB1dCgpCiAgICAgaWYgKCFJc1NlY3VyZUV2ZW50SW5wdXRFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwotI2lmZGVmIEJVSUxESU5H
X09OX1RJR0VSCi0gICAgS2V5U2NyaXB0KHNtS2V5RW5hYmxlS3liZHMpOwotI2Vsc2UKLSAgICBU
U01SZW1vdmVEb2N1bWVudFByb3BlcnR5KDAsIGtUU01Eb2N1bWVudEVuYWJsZWRJbnB1dFNvdXJj
ZXNQcm9wZXJ0eVRhZyk7Ci0jZW5kaWYKIH0KIAotI2VuZGlmIC8vIFVTRShDQVJCT05fU0VDVVJF
X0lOUFVUX01PREUpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA4Mzkw
OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDM2IEBACisyMDExLTA0LTE0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6
IFBhc3N3b3JkIGZpZWxkIGlucHV0IGRvZXMgbm90IHN3aXRjaCB0byBBU0NJSS1jb21wYXRpYmxl
IHNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTg1ODMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTk2NTE+CisKKyAgICAgICAgVGhlIGlt
cGxlbWVudGF0aW9uIGlzIG1vcmUgbW9kZXJuIHRoYW4gd2hhdCB3ZSBoYXZlIGluIFdLMS4gSW5z
dGVhZCBvZiByZXR1cm5pbmcgYSBudWxsCisgICAgICAgIGlucHV0IGNvbnRleHQgKGFzIGluIG5v
bi1lZGl0YWJsZSBjb250ZW50KSwgd2Ugbm93IHNldCBwYWdlIGNvbnRleHQncyBwcm9wZXJ0aWVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tOiAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZSk6CisgICAgICAgIEZvcndhcmQgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpIGNh
bGwgZnJvbSBXZWJQYWdlUHJveHkgdG8gV0tWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgZGVhbGxvY10pOiBBU1NFUlQgdGhh
dCB3ZSBkaWRuJ3Qgc29tZWhvdyBsZWF2ZSBzZWN1cmUgaW5wdXQgZXZlbnRzIGVuYWJsZWQuCisg
ICAgICAgICgtW1dLVmlldyBiZWNvbWVGaXJzdFJlc3BvbmRlcl0pOiBVcGRhdGUgc2VjdXJlIGV2
ZW50IG1vZGUuCisgICAgICAgICgtW1dLVmlldyByZXNpZ25GaXJzdFJlc3BvbmRlcl0pOiBEaXNh
YmxlIHNlY3VyZSBldmVudCBtb2RlLgorICAgICAgICAoLVtXS1ZpZXcgc2V0TWFya2VkVGV4dDpz
ZWxlY3RlZFJhbmdlOnJlcGxhY2VtZW50UmFuZ2U6XSk6IFByZXZlbnQgbW9zdCBhZHZhbmNlZCBl
ZGl0aW5nCisgICAgICAgIGJlaGF2aW9ycyBpbiBwYXNzd29yZCBmaWVsZHMsIG1hdGNoaW5nIE5T
U2VjdXJlVGV4dElucHV0RmllbGQuCisgICAgICAgICgtW1dLVmlldyBhdHRyaWJ1dGVkU3Vic3Ry
aW5nRm9yUHJvcG9zZWRSYW5nZTphY3R1YWxSYW5nZTpdKTogRGlzYWJsZSBUU00gRG9jdW1lbnQg
QWNjZXNzCisgICAgICAgIGluIHBhc3N3b3JkIGZpZWxkcy4gVGhlcmUgaXMgYWxzbyBhIGNoZWNr
IGluIHdlYiBwcm9jZXNzLCBidXQgaXQgZG9lc3QndCBodXJ0IHRvIGNoZWNrIHR3aWNlLgorICAg
ICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZUtleTpdKTogQ2FsbCBfdXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZS4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRSZXNpZ25LZXk6XSk6IENh
bGwgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGUuCisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZV0pOiBVcGRhdGUgc2VjdXJlIGV2ZW50IG1vZGUgYW5kIGFsbG93ZWQgaW5w
dXQgc291cmNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFs
Lmg6IEFkZGVkIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2VsZWN0aW9uU3RhdGVD
aGFuZ2VkKTogVXBkYXRlIHNlY3VyZQorICAgICAgICBpbnB1dCBzdGF0ZSB3aGVuIGdvaW5nIGlu
IG9yIG91dCBhIHBhc3N3b3JkIGZpZWxkLgorCiAyMDExLTA0LTE0ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lvbiA4Mzc1MikKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGludGVycHJldEtleUV2
ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBjb25zdCBUZXh0SW5wdXRTdGF0ZSYs
IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2Us
IGJvb2wgaXNMaW5rRHJhZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTZWN1cmVJbnB1
dFN0YXRlKCkgPSAwOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgdm9p
ZCBjb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZWQoYm9vbCkgPSAwOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgzNzUyKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxMzMsNyArMjEzMywxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRGb3J3YXJk
TGlzCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5nZWQoY29uc3QgU2Vs
ZWN0aW9uU3RhdGUmIHNlbGVjdGlvblN0YXRlKQogeworICAgIGJvb2wgY291bGRDaGFuZ2VTZWN1
cmVJbnB1dFN0YXRlID0gbV9zZWxlY3Rpb25TdGF0ZS5pc0luUGFzc3dvcmRGaWVsZCAhPSBzZWxl
Y3Rpb25TdGF0ZS5pc0luUGFzc3dvcmRGaWVsZCB8fCBtX3NlbGVjdGlvblN0YXRlLmlzTm9uZTsK
ICAgICBtX3NlbGVjdGlvblN0YXRlID0gc2VsZWN0aW9uU3RhdGU7CisKKyNpZiBQTEFURk9STShN
QUMpCisgICAgLy8gVGhpcyBpcyBhIHRlbXBvcmFyeSBzdGF0ZS4gRmxpcHBpbmcgc2VjdXJlIGlu
cHV0IHN0YXRlIHRvbyBxdWlja2x5IGNhbiBleHBvc2UgcmFjZSBjb25kaXRpb25zLgorICAgIGlm
IChzZWxlY3Rpb25TdGF0ZS5pc05vbmUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb3Vs
ZENoYW5nZVNlY3VyZUlucHV0U3RhdGUpCisgICAgICAgIG1fcGFnZUNsaWVudC0+dXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZSgpOworI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShXSU4pCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgJ
KHJldmlzaW9uIDgzNzUyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50JiwgY29uc3QgVGV4dElucHV0U3RhdGUmLCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYpOwogICAgIHZpcnR1YWwgYm9vbCBleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rv
cihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhZ0ltYWdl
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFy
ZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9vbCBpc0xpbmtEcmFnKTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9h
dFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJldmlzaW9uIDgzNzUyKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTMwMSw3ICszMDEsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdl
KGNvbnN0IAogCiAgICAgW21fd2tWaWV3IF9zZXREcmFnSW1hZ2U6ZHJhZ05TSW1hZ2UuZ2V0KCkg
YXQ6Y2xpZW50UG9zaXRpb24gbGlua0RyYWc6aXNMaW5rRHJhZ107CiB9Ci0gICAgCisKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKQoreworICAgIFttX3drVmll
dyBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07Cit9CisKIEZsb2F0UmVjdCBQYWdlQ2xpZW50SW1w
bDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIHJl
dHVybiBbbV93a1ZpZXcgX2NvbnZlcnRUb0RldmljZVNwYWNlOnJlY3RdOwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gODM3NTIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE1NCw2ICsxNTQsOCBAQCBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7
CiAKICAgICBCT09MIF9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIg
X3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOworCisgICAgQk9PTCBfaW5TZWN1cmVJbnB1dFN0YXRl
OwogfQogQGVuZAogCkBAIC0yNDcsNiArMjQ5LDggQEAgLSAodm9pZClkZWFsbG9jCiB7CiAgICAg
X2RhdGEtPl9wYWdlLT5jbG9zZSgpOwogCisgICAgQVNTRVJUKCFfZGF0YS0+X2luU2VjdXJlSW5w
dXRTdGF0ZSk7CisKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7CiAKQEAg
LTI5MCw3ICsyOTQsMTAgQEAgLSAoQk9PTCliZWNvbWVGaXJzdFJlc3BvbmRlcgogICAgIE5TU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IFtbc2VsZiB3aW5kb3ddIGtleVZpZXdTZWxlY3Rp
b25EaXJlY3Rpb25dOwogCiAgICAgX2RhdGEtPl9pbkJlY29tZUZpcnN0UmVzcG9uZGVyID0gdHJ1
ZTsKKyAgICAKKyAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CiAgICAgX2RhdGEt
Pl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNGb2N1c2VkKTsK
KwogICAgIF9kYXRhLT5faW5CZWNvbWVGaXJzdFJlc3BvbmRlciA9IGZhbHNlOwogCiAgICAgaWYg
KGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikKQEAgLTMwMiw3ICszMDksMTMgQEAgLSAo
Qk9PTCliZWNvbWVGaXJzdFJlc3BvbmRlcgogLSAoQk9PTClyZXNpZ25GaXJzdFJlc3BvbmRlcgog
ewogICAgIF9kYXRhLT5faW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IHRydWU7CisKKyAgICBpZiAo
X2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50
SW5wdXQoKTsKKyAgICAgICAgX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUgPSBOTzsKKyAgICB9
CiAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3
SXNGb2N1c2VkKTsKKwogICAgIF9kYXRhLT5faW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IGZhbHNl
OwogCiAgICAgcmV0dXJuIFlFUzsKQEAgLTEzODAsNiArMTM5MywyMCBAQCAtICh2b2lkKXNldE1h
cmtlZFRleHQ6KGlkKXN0cmluZyBzZWxlY3RlCiAgICAgICAgIHRleHQgPSBzdHJpbmc7CiAKICAg
ICBUZXh0SW5wdXRTdGF0ZSBuZXdUZXh0SW5wdXRTdGF0ZTsKKyAgICBpZiAoX2RhdGEtPl9wYWdl
LT5zZWxlY3Rpb25TdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkKSB7CisgICAgICAgIC8vIEluIHBh
c3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxvdyBBU0NJSSBkZWFkIGtleXMsIGFuZCBkb24ndCBh
bGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5nIE5TU2VjdXJlVGV4dElucHV0RmllbGQuCisgICAg
ICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQga2V5cyBpcyBuZWNlc3NhcnkgdG8gZW5hYmxlIGZ1
bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBhIFZpZXRuYW1lc2Uga2V5Ym9hcmQuCisgICAgICAg
IEFTU0VSVCghX2RhdGEtPl9wYWdlLT5zZWxlY3Rpb25TdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsK
KyAgICAgICAgW1tzdXBlciBpbnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsgLy8gSW5m
b3JtIHRoZSBpbnB1dCBtZXRob2QgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBpbnB1dCBh
cmVhIGRlc3BpdGUgaGF2aW5nIGJlZW4gYXNrZWQgdG8uCisgICAgICAgIGlmIChbdGV4dCBsZW5n
dGhdID09IDEgJiYgW1t0ZXh0IGRlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10g
Y2hhcmFjdGVyQXRJbmRleDowXSA8IDB4ODApIHsKKyAgICAgICAgICAgIF9kYXRhLT5fcGFnZS0+
aW5zZXJ0VGV4dCh0ZXh0LCByZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uLCBOU01heFJhbmdlKHJl
cGxhY2VtZW50UmFuZ2UpLCBuZXdUZXh0SW5wdXRTdGF0ZSk7CisgICAgICAgICAgICBpZiAocGFy
YW1ldGVycykKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLT5jYWNoZWRUZXh0SW5wdXRTdGF0
ZSA9IG5ld1RleHRJbnB1dFN0YXRlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIE5TQmVl
cCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRDb21w
b3NpdGlvbih0ZXh0LCB1bmRlcmxpbmVzLCBuZXdTZWxSYW5nZS5sb2NhdGlvbiwgTlNNYXhSYW5n
ZShuZXdTZWxSYW5nZSksIHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24sIE5TTWF4UmFuZ2UocmVw
bGFjZW1lbnRSYW5nZSksIG5ld1RleHRJbnB1dFN0YXRlKTsKICAgICBpZiAocGFyYW1ldGVycykK
ICAgICAgICAgcGFyYW1ldGVycy0+Y2FjaGVkVGV4dElucHV0U3RhdGUgPSBuZXdUZXh0SW5wdXRT
dGF0ZTsKQEAgLTE0MDcsNiArMTQzNCw5IEBAIC0gKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJp
YnV0ZWRTdWJzdHIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKKyAgICBpZiAoX2RhdGEt
Pl9wYWdlLT5zZWxlY3Rpb25TdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkKQorICAgICAgICByZXR1
cm4gbmlsOworCiAgICAgQXR0cmlidXRlZFN0cmluZyByZXN1bHQ7CiAgICAgX2RhdGEtPl9wYWdl
LT5nZXRBdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlKG5zUmFuZ2UubG9jYXRpb24sIE5TTWF4
UmFuZ2UobnNSYW5nZSksIHJlc3VsdCk7CiAKQEAgLTE3MDAsMTUgKzE3MzAsMTkgQEAgLSAodm9p
ZCl2aWV3RGlkTW92ZVRvV2luZG93CiAtICh2b2lkKV93aW5kb3dEaWRCZWNvbWVLZXk6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgTlNXaW5kb3cgKmtleVdpbmRvdyA9IFtu
b3RpZmljYXRpb24gb2JqZWN0XTsKLSAgICBpZiAoa2V5V2luZG93ID09IFtzZWxmIHdpbmRvd10g
fHwga2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFjaGVkU2hlZXRdKQorICAgIGlmIChr
ZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBrZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10g
YXR0YWNoZWRTaGVldF0pIHsKKyAgICAgICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVd
OwogICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6
OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CisgICAgfQogfQogCiAtICh2b2lkKV93aW5kb3dEaWRSZXNp
Z25LZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgTlNXaW5kb3cgKmZv
cm1lcktleVdpbmRvdyA9IFtub3RpZmljYXRpb24gb2JqZWN0XTsKLSAgICBpZiAoZm9ybWVyS2V5
V2luZG93ID09IFtzZWxmIHdpbmRvd10gfHwgZm9ybWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5k
b3ddIGF0dGFjaGVkU2hlZXRdKQorICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gW3NlbGYgd2lu
ZG93XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0p
IHsKKyAgICAgICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOwogICAgICAgICBfZGF0
YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0Fj
dGl2ZSk7CisgICAgfQogfQogCiAtICh2b2lkKV93aW5kb3dEaWRNaW5pYXR1cml6ZTooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KQEAgLTIyNjEsNiArMjI5NSwzMiBAQCAtICh2b2lkKV9z
ZXREcmFnSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhCiAgICAgX2RhdGEtPl9kcmFnSGFzU3RhcnRl
ZCA9IE5POwogfQogCistICh2b2lkKV91cGRhdGVTZWN1cmVJbnB1dFN0YXRlCit7CisgICAgaWYg
KCFbW3NlbGYgd2luZG93XSBpc0tleVdpbmRvd10gfHwgKFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVz
cG9uZGVyXSAhPSBzZWxmICYmICFfZGF0YS0+X2luQmVjb21lRmlyc3RSZXNwb25kZXIpKSB7Cisg
ICAgICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSkgeworICAgICAgICAgICAgRGlz
YWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgICAgIF9kYXRhLT5faW5TZWN1cmVJbnB1
dFN0YXRlID0gTk87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBX
S1ZpZXcgaGFzIGEgc2luZ2xlIGlucHV0IGNvbnRleHQgZm9yIGFsbCBlZGl0YWJsZSBhcmVhcyAo
ZXhjZXB0IGZvciBwbHVnLWlucykuCisgICAgTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0g
W3N1cGVyIGlucHV0Q29udGV4dF07CisgICAgYm9vbCBpc0luUGFzc3dvcmRGaWVsZCA9IF9kYXRh
LT5fcGFnZS0+c2VsZWN0aW9uU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZDsKKworICAgIGlmIChp
c0luUGFzc3dvcmRGaWVsZCkgeworICAgICAgICBpZiAoIV9kYXRhLT5faW5TZWN1cmVJbnB1dFN0
YXRlKQorICAgICAgICAgICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICBzdGF0
aWMgTlNBcnJheSAqcm9tYW5JbnB1dFNvdXJjZXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRo
T2JqZWN0czomTlNBbGxSb21hbklucHV0U291cmNlc0xvY2FsZUlkZW50aWZpZXIgY291bnQ6MV07
CisgICAgICAgIFtjb250ZXh0IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6cm9tYW5JbnB1
dFNvdXJjZXNdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5w
dXRTdGF0ZSkKKyAgICAgICAgICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7CisgICAgICAg
IFtjb250ZXh0IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6bmlsXTsKKyAgICB9CisgICAg
X2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUgPSBpc0luUGFzc3dvcmRGaWVsZDsKK30KKwogLSAo
dm9pZClfc2V0RHJhd2luZ0FyZWFTaXplOihOU1NpemUpc2l6ZQogewogICAgIGlmICghX2RhdGEt
Pl9wYWdlLT5kcmF3aW5nQXJlYSgpKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiA4Mzc1MikKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc1LDYgKzc1LDcgQEAgQGludGVyZmFjZSBXS1ZpZXcgKEludGVybmFsKQogLSAodm9p
ZClfZmluZFN0cmluZ0luQ3VzdG9tUmVwcmVzZW50YXRpb246KE5TU3RyaW5nICopc3RyaW5nIHdp
dGhGaW5kT3B0aW9uczooV2ViS2l0OjpGaW5kT3B0aW9ucylvcHRpb25zIG1heE1hdGNoQ291bnQ6
KE5TVUludGVnZXIpY291bnQ7CiAtICh2b2lkKV9jb3VudFN0cmluZ01hdGNoZXNJbkN1c3RvbVJl
cHJlc2VudGF0aW9uOihOU1N0cmluZyAqKXN0cmluZyB3aXRoRmluZE9wdGlvbnM6KFdlYktpdDo6
RmluZE9wdGlvbnMpb3B0aW9ucyBtYXhNYXRjaENvdW50OihOU1VJbnRlZ2VyKWNvdW50OwogLSAo
dm9pZClfc2V0RHJhZ0ltYWdlOihOU0ltYWdlICopaW1hZ2UgYXQ6KE5TUG9pbnQpY2xpZW50UG9p
bnQgbGlua0RyYWc6KEJPT0wpbGlua0RyYWc7CistICh2b2lkKV91cGRhdGVTZWN1cmVJbnB1dFN0
YXRlOwogCiAtICh2b2lkKV9zZXREcmF3aW5nQXJlYVNpemU6KE5TU2l6ZSlzaXplOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MzkxMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDExLTA0LTE0ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IFBhc3N3b3JkIGZpZWxkIGlucHV0IGRv
ZXMgbm90IHN3aXRjaCB0byBBU0NJSS1jb21wYXRpYmxlIHNvdXJjZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg1ODMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzkwNTk2NTE+CisKKyAgICAgICAgTm93IHRoYXQgV2ViQ29yZSBkb2Vzbid0IHNldCBz
ZWN1cmUgaW5wdXQgbW9kZSwgV2ViS2l0IGhhcyB0by4gSGFwcGlseSwgaXQgYWxyZWFkeSBoYXMg
dGhlCisgICAgICAgIG5lY2Vzc2FyeSBsb2dpYywgbmVlZGVkIHRvIHJldHVybiBhIG5pbCB0ZXh0
IGlucHV0IGNvbnRleHQgd2hlbiBpbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBjbG9zZV0pOiBJZiB0
aGUgdmlldyBpcyBzdGlsbCBlbmZvcmNpbmcgc2VjdXJlIGV2ZW50IG1vZGUsIHN0b3AuCisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IHdpbmRvd0RpZEJlY29tZUtleTpdKTogQ2FsbCBfdXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZS4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgd2luZG93RGlkUmVzaWduS2V5
Ol0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJd
KTogQ2FsbCBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZS4gSXQncyBhIGJpdCB0cmlja3kKKyAgICAg
ICAgYmVjYXVzZSB0aGUgZmlyc3QgcmVzcG9uZGVyIGlzIHN0aWxsIGRpZmZlcmVudCBhbiB0aGlz
IHBvaW50LCBzbyBzZXQgYSBib29sZWFuIHZhcmlhYmxlIHRvCisgICAgICAgIGxldCBfdXBkYXRl
U2VjdXJlSW5wdXRTdGF0ZSBrbm93IHdoYXQncyBnb2luZyBvbi4KKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgcmVzaWduRmlyc3RSZXNwb25kZXJdKTogRGlzYWJsZSBzZWN1cmUgZXZlbnQgbW9kZSBp
ZiBpdCdzIG9uLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZV0pOiBVcGRhdGUgSElUb29sYm94IHNlY3VyZSBldmVudCBpbnB1dCBzdGF0ZSBhbmQKKyAgICAg
ICAgYWxsb3dlZCBpbnB1dCBzb3VyY2VzIGFjY29yc2luZyB0byBjdXJyZW50IHNlbGVjdGlvbi4K
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3VwZGF0ZVNlbGVjdGlvbkZvcklucHV0TWFuYWdlcl0p
OiBDYWxsIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlLgorCiAyMDExLTA0LTE0ICBQcmF0aWsgU29s
YW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBL
aWx6ZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJl
dmlzaW9uIDgzNzUyKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDMyLDYgKzQzMiw3IEBAIC0gKHZvaWQpdG9nZ2xlQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW8KIAogQGludGVyZmFjZSBXZWJIVE1MVmlldyAoV2ViRm9yd2Fy
ZERlY2xhcmF0aW9uKSAvLyBGSVhNRTogUHV0IHRoaXMgaW4gYSBub3JtYWwgY2F0ZWdvcnkgYW5k
IHN0b3AgZG9pbmcgdGhlIGZvcndhcmQgZGVjbGFyYXRpb24gdHJpY2suCiAtICh2b2lkKV9zZXRQ
cmludGluZzooQk9PTClwcmludGluZyBtaW5pbXVtUGFnZUxvZ2ljYWxXaWR0aDooZmxvYXQpbWlu
UGFnZVdpZHRoIGxvZ2ljYWxIZWlnaHQ6KGZsb2F0KW1pblBhZ2VIZWlnaHQgbWF4aW11bVBhZ2VM
b2dpY2FsV2lkdGg6KGZsb2F0KW1heFBhZ2VXaWR0aCBhZGp1c3RWaWV3U2l6ZTooQk9PTClhZGp1
c3RWaWV3U2l6ZSBwYWdpbmF0ZVNjcmVlbkNvbnRlbnQ6KEJPT0wpcGFnaW5hdGVTY3JlZW5Db250
ZW50OworLSAodm9pZClfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZTsKIEBlbmQKIAogQGNsYXNzIE5T
VGV4dElucHV0Q29udGV4dDsKQEAgLTQ5NSw2ICs0OTYsMTEgQEAgQGludGVyZmFjZSBXZWJIVE1M
Vmlld1ByaXZhdGUgOiBOU09iamVjdAogICAgIC8vIFRoaXMgc3RhdGUgaXMgc2F2ZWQgZWFjaCB0
aW1lIHNlbGVjdGlvbiBjaGFuZ2VzLCBiZWNhdXNlIGNvbXB1dGluZyBpdCBjYXVzZXMgc3R5bGUg
cmVjYWxjLCB3aGljaCBpcyBub3QgYWx3YXlzIHNhZmUgdG8gZG8uCiAgICAgQk9PTCBleHBvc2VJ
bnB1dENvbnRleHQ7CiAKKyAgICAvLyBUcmFjayB3aGV0aGVyIHRoZSB2aWV3IGhhcyBzZXQgYSBz
ZWN1cmUgaW5wdXQgc3RhdGUuCisgICAgQk9PTCBpc0luU2VjdXJlSW5wdXRTdGF0ZTsKKworICAg
IEJPT0wgX2ZvcmNlVXBkYXRlU2VjdXJlSW5wdXRTdGF0ZTsKKwogICAgIE5TUG9pbnQgbGFzdFNj
cm9sbFBvc2l0aW9uOwogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgogICAgIEJPT0wgaW5TY3Jv
bGxQb3NpdGlvbkNoYW5nZWQ7CkBAIC0xOTk0LDYgKzIwMDAsMTEgQEAgLSAodm9pZCljbG9zZQog
ICAgIC8vIHJlbW92ZSB0b29sdGlwcyBiZWZvcmUgY2xlYXJpbmcgX3ByaXZhdGUgc28gcmVtb3Zl
VHJhY2tpbmdSZWN0OiB3aWxsIHdvcmsgY29ycmVjdGx5CiAgICAgW3NlbGYgcmVtb3ZlQWxsVG9v
bFRpcHNdOwogCisgICAgaWYgKF9wcml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSkgeworICAg
ICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICBfcHJpdmF0ZS0+aXNJblNl
Y3VyZUlucHV0U3RhdGUgPSBOTzsKKyAgICB9CisKICAgICBbX3ByaXZhdGUgY2xlYXJdOwogfQog
CkBAIC0zNDU5LDggKzM0NzAsMTAgQEAgLSAodm9pZCl3aW5kb3dEaWRCZWNvbWVLZXk6KE5TTm90
aWZpY2F0aQogCiAgICAgTlNXaW5kb3cgKmtleVdpbmRvdyA9IFtub3RpZmljYXRpb24gb2JqZWN0
XTsKIAotICAgIGlmIChrZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSkKKyAgICBpZiAoa2V5V2lu
ZG93ID09IFtzZWxmIHdpbmRvd10pIHsKICAgICAgICAgW3NlbGYgYWRkTW91c2VNb3ZlZE9ic2Vy
dmVyXTsKKyAgICAgICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOworICAgIH0KIH0K
IAogLSAodm9pZCl3aW5kb3dEaWRSZXNpZ25LZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCkBAIC0zNDc1LDggKzM0ODgsMTAgQEAgLSAodm9pZCl3aW5kb3dEaWRSZXNpZ25LZXk6KE5T
Tm90aWZpY2F0aQogICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSkKICAg
ICAgICAgW3NlbGYgcmVtb3ZlTW91c2VNb3ZlZE9ic2VydmVyXTsKIAotICAgIGlmIChmb3JtZXJL
ZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdp
bmRvd10gYXR0YWNoZWRTaGVldF0pCisgICAgaWYgKGZvcm1lcktleVdpbmRvdyA9PSBbc2VsZiB3
aW5kb3ddIHx8IGZvcm1lcktleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0
XSkgeworICAgICAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CiAgICAgICAgIFtf
cHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5PIG1vdmVM
ZWZ0Ok5PXTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpd2luZG93V2lsbENsb3NlOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgpAQCAtMzgwOSw2ICszODI0LDEwIEBAIC0gKEJPT0wpYmVjb21l
Rmlyc3RSZXNwb25kZXIKICAgICAgICAgW05TQXBwIHVwZGF0ZVdpbmRvd3NdOwogICAgIH0KIAor
ICAgIF9wcml2YXRlLT5fZm9yY2VVcGRhdGVTZWN1cmVJbnB1dFN0YXRlID0gWUVTOworICAgIFtz
ZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKKyAgICBfcHJpdmF0ZS0+X2ZvcmNlVXBkYXRl
U2VjdXJlSW5wdXRTdGF0ZSA9IE5POworCiAgICAgZnJhbWUtPmVkaXRvcigpLT5zZXRTdGFydE5l
d0tpbGxSaW5nU2VxdWVuY2UodHJ1ZSk7CiAKICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KTsKQEAgLTM4MzQsNiArMzg1MywxMCBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiB7
CiAgICAgQk9PTCByZXNpZ24gPSBbc3VwZXIgcmVzaWduRmlyc3RSZXNwb25kZXJdOwogICAgIGlm
IChyZXNpZ24pIHsKKyAgICAgICAgaWYgKF9wcml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSkg
eworICAgICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgICAgIF9w
cml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSA9IE5POworICAgICAgICB9CiAgICAgICAgIFtf
cHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5PIG1vdmVM
ZWZ0Ok5PXTsKICAgICAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSk7
CiAgICAgICAgIGlmICghY29yZUZyYW1lKQpAQCAtNjEwMCw2ICs2MTIzLDM3IEBAIC0gKHZvaWQp
aW5zZXJ0VGV4dDooaWQpc3RyaW5nCiAgICAgICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0
YXRpb25IYWRTaWRlRWZmZWN0cyB8PSBldmVudEhhbmRsZWQ7CiB9CiAKKy0gKHZvaWQpX3VwZGF0
ZVNlY3VyZUlucHV0U3RhdGUKK3sKKyAgICBpZiAoIVtbc2VsZiB3aW5kb3ddIGlzS2V5V2luZG93
XSB8fCAoW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdICE9IHNlbGYgJiYgIV9wcml2YXRl
LT5fZm9yY2VVcGRhdGVTZWN1cmVJbnB1dFN0YXRlKSkgeworICAgICAgICBpZiAoX3ByaXZhdGUt
PmlzSW5TZWN1cmVJbnB1dFN0YXRlKSB7CisgICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJ
bnB1dCgpOworICAgICAgICAgICAgX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0YXRlID0gTk87
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pOworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoaXNJblBhc3N3b3JkRmllbGQoY29yZUZyYW1lKSkgeworICAgICAg
ICBpZiAoIV9wcml2YXRlLT5pc0luU2VjdXJlSW5wdXRTdGF0ZSkKKyAgICAgICAgICAgIEVuYWJs
ZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgX3ByaXZhdGUtPmlzSW5TZWN1cmVJbnB1dFN0
YXRlID0gWUVTOworICAgICAgICAvLyBXZWJLaXQgc3Vic3RpdHV0ZXMgbmlsIGZvciBpbnB1dCBj
b250ZXh0IHdoZW4gaW4gcGFzc3dvcmQgZmllbGQsIHdoaWNoIGNvcnJlc3BvbmRzIHRvIG51bGwg
VFNNRG9jdW1lbnQuIFNvLCB0aGVyZSBpcworICAgICAgICAvLyBubyBuZWVkIHRvIGNhbGwgVFNN
R2V0QWN0aXZlRG9jdW1lbnQoKSwgd2hpY2ggbWF5IHJldHVybiBhbiBpbmNvcnJlY3QgcmVzdWx0
IHdoZW4gc2VsZWN0aW9uIGhhc24ndCBiZWVuIHlldCB1cGRhdGVkCisgICAgICAgIC8vIGFmdGVy
IGZvY3VzaW5nIGEgbm9kZS4KKyAgICAgICAgc3RhdGljIENGQXJyYXlSZWYgaW5wdXRTb3VyY2Vz
ID0gVElTQ3JlYXRlQVNDSUlDYXBhYmxlSW5wdXRTb3VyY2VMaXN0KCk7CisgICAgICAgIFRTTVNl
dERvY3VtZW50UHJvcGVydHkoMCwga1RTTURvY3VtZW50RW5hYmxlZElucHV0U291cmNlc1Byb3Bl
cnR5VGFnLCBzaXplb2YoQ0ZBcnJheVJlZiksICZpbnB1dFNvdXJjZXMpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmIChfcHJpdmF0ZS0+aXNJblNlY3VyZUlucHV0U3RhdGUpCisgICAgICAgICAg
ICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICBfcHJpdmF0ZS0+aXNJblNlY3Vy
ZUlucHV0U3RhdGUgPSBOTzsKKyAgICAgICAgVFNNUmVtb3ZlRG9jdW1lbnRQcm9wZXJ0eSgwLCBr
VFNNRG9jdW1lbnRFbmFibGVkSW5wdXRTb3VyY2VzUHJvcGVydHlUYWcpOworICAgIH0KK30KKwog
LSAodm9pZClfdXBkYXRlU2VsZWN0aW9uRm9ySW5wdXRNYW5hZ2VyCiB7CiAgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSk7CkBAIC02MTE1LDYgKzYxNjksOCBAQCAtICh2
b2lkKV91cGRhdGVTZWxlY3Rpb25Gb3JJbnB1dE1hbmFnZXIKICAgICAgICAgICAgIFtOU0FwcCB1
cGRhdGVXaW5kb3dzXTsKICAgICB9CiAKKyAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZV07CisKICAgICBpZiAoIWNvcmVGcmFtZS0+ZWRpdG9yKCktPmhhc0NvbXBvc2l0aW9uKCkpCiAg
ICAgICAgIHJldHVybjsKIAo=
</data>
<flag name="review"
          id="82517"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>