<?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>105829</bug_id>
          
          <creation_ts>2012-12-28 06:58:38 -0800</creation_ts>
          <short_desc>Web Inspector: refactor DefaultTextEditor - annotate handlers and fix getters style</short_desc>
          <delta_ts>2012-12-29 01:20:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Lushnikov">lushnikov</reporter>
          <assigned_to name="Andrey Lushnikov">lushnikov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>797876</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2012-12-28 06:58:38 -0800</bug_when>
    <thetext>Refactor DefaultTextEditor&apos;s classes to loosen their coupling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797879</commentid>
    <comment_count>1</comment_count>
      <attachid>180871</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2012-12-28 07:04:42 -0800</bug_when>
    <thetext>Created attachment 180871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797887</commentid>
    <comment_count>2</comment_count>
      <attachid>180871</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-28 07:51:13 -0800</bug_when>
    <thetext>Comment on attachment 180871
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Web Inspector: refactor DefaultTextEditor

Please be more specific.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Refactor DefaultTextEditor to separate its classes.

Please explain briefly what has changed and why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797912</commentid>
    <comment_count>3</comment_count>
      <attachid>180878</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2012-12-28 08:42:41 -0800</bug_when>
    <thetext>Created attachment 180878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798078</commentid>
    <comment_count>4</comment_count>
      <attachid>180878</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-29 01:20:49 -0800</bug_when>
    <thetext>Comment on attachment 180878
Patch

Clearing flags on attachment: 180878

Committed r138560: &lt;http://trac.webkit.org/changeset/138560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798079</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-29 01:20:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180871</attachid>
            <date>2012-12-28 07:04:42 -0800</date>
            <delta_ts>2012-12-28 08:42:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105829-20121228190152.patch</filename>
            <type>text/plain</type>
            <size>15216</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMxYThkZmJiYzM3YjZl
NjExMjYyODQ2YTU2ZjBiNmVhYjYwZDA4NC4uOGQyOTVkOGJhMzgzMTI5YjZkYjlhM2M0MTA5MzNm
ODVlZjI3MThiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTEyLTI4ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLmNvbT4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiByZWZhY3RvciBEZWZhdWx0VGV4dEVkaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgRGVmYXVsdFRleHRFZGl0b3IgdG8g
c2VwYXJhdGUgaXRzIGNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBubyBjaGFuZ2Ug
aW4gYmVoYXZpb3VyLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4
dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IucHJvdG90eXBlLl9jb250ZXh0
TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IucHJvdG90eXBl
LnNlbGVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IucHJv
dG90eXBlLmxhc3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0
RWRpdG9yLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVs
dFRleHRFZGl0b3IucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5jcmVhdGVOZXdDaHVuayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5wb3B1bGF0ZUNv
bnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZS5zcGxpdENodW5rT25BTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5wcm90b3R5cGUuZXhwYW5kQ2h1bmtzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5fcGFpbnRMaW5lQ2h1bmtzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5zZWxlY3Rp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBl
Lmxhc3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlLl9hcHBseURvbVVwZGF0ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9oYW5kbGVTZWxlY3Rpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9oYW5kbGVU
ZXh0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlLmhhbmRsZUtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlLl9oYW5kbGVDdXQpOgorCisyMDEyLTEyLTI4ICBBbmRyZXkgTHVz
aG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBlbmFibGUgbXV0YXRpb24gb2JzZXJ2ZXIgaW4gTGF5b3V0VGVzdHMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTgyNgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwpp
bmRleCA4Nzk5OTdjYmFhMjEzYzRmNjMxMDRiMjg0MTVmNmMyNDE0NTI0NTA4Li5iN2MxMDIyYTg5
NzM4MzUxMDFiZWY0MWVmZGE4MDhkZjhkNTczZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKQEAgLTkyLDcg
KzkyLDYgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yID0gZnVuY3Rpb24odXJsLCBk
ZWxlZ2F0ZSkKICAgICB0aGlzLl9ndXR0ZXJQYW5lbC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNld2hlZWwiLCBmb3J3YXJkV2hlZWxFdmVudC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2hhbmRsZUtl
eURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJjdXQiLCB0aGlzLl9oYW5kbGVDdXQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51
LmJpbmQodGhpcyksIHRydWUpOwogCiAgICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKQEAg
LTQxOSwxMSArNDE4LDYgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fbWFpblBhbmVsLmhhbmRsZUtleURvd24oZSk7CiAgICAgfSwK
IAotICAgIF9oYW5kbGVDdXQ6IGZ1bmN0aW9uKGUpCi0gICAgewotICAgICAgICB0aGlzLl9tYWlu
UGFuZWwuaGFuZGxlQ3V0KGUpOwotICAgIH0sCi0KICAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGFuY2hvciA9IGV2ZW50LnRhcmdldC5lbmNsb3Np
bmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJhIik7CkBAIC00MzQsNyArNDI4LDcgQEAgV2ViSW5z
cGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRhcmdl
dCkKICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnBvcHVsYXRlTGluZUd1dHRlckNvbnRleHRN
ZW51KGNvbnRleHRNZW51LCB0YXJnZXQubGluZU51bWJlcik7CiAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgdGhpcy5fbWFpblBhbmVsLmNvbnRleHRNZW51KGV2ZW50LnRhcmdldCwgY29udGV4
dE1lbnUpOworICAgICAgICAgICAgdGhpcy5fbWFpblBhbmVsLnBvcHVsYXRlQ29udGV4dE1lbnUo
ZXZlbnQudGFyZ2V0LCBjb250ZXh0TWVudSk7CiAgICAgICAgIH0KICAgICAgICAgY29udGV4dE1l
bnUuc2hvdygpOwogICAgIH0sCkBAIC00NTksNyArNDUzLDcgQEAgV2ViSW5zcGVjdG9yLkRlZmF1
bHRUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzZWxlY3Rpb246IGZ1bmN0
aW9uKHRleHRSYW5nZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuZ2V0
U2VsZWN0aW9uKCk7CisgICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuc2VsZWN0aW9uKCk7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNDY3LDcgKzQ2MSw3IEBAIFdlYkluc3BlY3Rvci5EZWZh
dWx0VGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgbGFzdFNlbGVjdGlvbjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21haW5QYW5lbC5nZXRMYXN0
U2VsZWN0aW9uKCk7CisgICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwubGFzdFNlbGVjdGlv
bigpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTUyMiw3ICs1MTYsNyBAQCBXZWJJbnNwZWN0b3Iu
RGVmYXVsdFRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBsaW5lCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKLSAgICAgKiBAcGFyYW0g
e09iamVjdD99IHZhbHVlCisgICAgICogQHBhcmFtIHs/T2JqZWN0fSB2YWx1ZQogICAgICAqLwog
ICAgIHNldEF0dHJpYnV0ZTogZnVuY3Rpb24obGluZSwgbmFtZSwgdmFsdWUpCiAgICAgewpAQCAt
NTUzLDggKzU0Nyw2IEBAIFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghdGhpcy5yZWFkT25seSgpKQogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLm1hcmtCZWluZ0VkaXRlZCh0aGlzLmVsZW1lbnQsIHRydWUpOwogCi0gICAgICAgIHRoaXMu
X2JvdW5kU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgPSB0aGlzLl9tYWluUGFuZWwuaGFuZGxlU2Vs
ZWN0aW9uQ2hhbmdlLmJpbmQodGhpcy5fbWFpblBhbmVsKTsKLSAgICAgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFu
Z2VMaXN0ZW5lciwgZmFsc2UpOwogICAgICAgICB0aGlzLl9tYWluUGFuZWwud2FzU2hvd24oKTsK
ICAgICB9LAogCkBAIC01NjIsOCArNTU0LDYgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRp
dG9yLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX21haW5QYW5lbC53aWxsSGlk
ZSgpOwogICAgICAgICB0aGlzLl9ndXR0ZXJQYW5lbC53aWxsSGlkZSgpOwotICAgICAgICBkb2N1
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNl
bGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxzZSk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9ib3Vu
ZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyOwogCiAgICAgICAgIGlmICghdGhpcy5yZWFkT25seSgp
KQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLm1hcmtCZWluZ0VkaXRlZCh0aGlzLmVsZW1lbnQs
IGZhbHNlKTsKQEAgLTgwMyw3ICs3OTMsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5r
ZWRQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBjcmVhdGVOZXdDaHVuazogZnVuY3Rpb24oc3Rh
cnRMaW5lLCBlbmRMaW5lKQogICAgIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJjcmVhdGVO
ZXdDaHVuaygpIGlzIG5vdCBpbXBsZW1lbnRlZCIpOworICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
ImNyZWF0ZU5ld0NodW5rKCkgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IGRlc2NlbmRhbnRzIik7
CiAgICAgfSwKIAogICAgIF9zY3JvbGw6IGZ1bmN0aW9uKCkKQEAgLTEzNDQsNiArMTMzNCw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsID0gZnVuY3Rpb24oZGVsZWdhdGUsIHRl
eHRNb2RlbCwgdXJsLCBzeW5jU2Nyb2xsCiAKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCB0aGlzLl9oYW5kbGVFbGVtZW50Rm9jdXMuYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0ZXh0SW5wdXQiLCB0aGlzLl9o
YW5kbGVUZXh0SW5wdXQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjdXQiLCB0aGlzLl9oYW5kbGVDdXQuYmluZCh0aGlzKSwgZmFsc2UpOwog
CiAgICAgdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5faGFu
ZGxlRm9jdXNlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKQEAgLTEzNTQsMTIgKzEzNDUsMTggQEAg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdGV4
dE1vZGVsLCB1cmwsIHN5bmNTY3JvbGwKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAg
dGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA9IHRoaXMuX2hhbmRsZVNlbGVjdGlv
bkNoYW5nZS5iaW5kKHRoaXMpOworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJz
ZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxz
ZSk7CisKICAgICAgICAgdGhpcy5faXNTaG93aW5nID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fYXR0
YWNoTXV0YXRpb25PYnNlcnZlcigpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9u
Y2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciwgZmFsc2UpOworICAg
ICAgICBkZWxldGUgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lcjsKKwogICAgICAg
ICB0aGlzLl9kZXRhY2hNdXRhdGlvbk9ic2VydmVyKCk7CiAgICAgICAgIHRoaXMuX2lzU2hvd2lu
ZyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9mcmVlQ2FjaGVkRWxlbWVudHMoKTsKQEAgLTEzNjks
NyArMTM2Niw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGV2ZW50VGFyZ2V0CiAgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuQ29udGV4dE1lbnV9IGNvbnRleHRNZW51CiAgICAgICovCi0gICAgY29udGV4
dE1lbnU6IGZ1bmN0aW9uKGV2ZW50VGFyZ2V0LCBjb250ZXh0TWVudSkKKyAgICBwb3B1bGF0ZUNv
bnRleHRNZW51OiBmdW5jdGlvbihldmVudFRhcmdldCwgY29udGV4dE1lbnUpCiAgICAgewogICAg
ICAgICB2YXIgdGFyZ2V0ID0gdGhpcy5fZW5jbG9zaW5nTGluZVJvd09yU2VsZihldmVudFRhcmdl
dCk7CiAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnBvcHVsYXRlVGV4dEFyZWFDb250ZXh0TWVudShj
b250ZXh0TWVudSwgdGFyZ2V0ICYmIHRhcmdldC5saW5lTnVtYmVyKTsKQEAgLTE1NzgsNyArMTU3
NSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgaWYgKHRoaXMucmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgdmFy
IHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uKCk7CiAgICAgICAgIGlmICghc2VsZWN0aW9uKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNjA5LDcgKzE2MDYsNyBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlz
LnJlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgdmFyIHJh
bmdlID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgdmFyIHJhbmdlID0gdGhpcy5zZWxl
Y3Rpb24oKTsKICAgICAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtMTY1OSw3ICsxNjU2LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNwbGl0Q2h1bmtPbkFMaW5lOiBmdW5jdGlvbihs
aW5lTnVtYmVyLCBjaHVua051bWJlciwgY3JlYXRlU3VmZml4Q2h1bmspCiAgICAgewotICAgICAg
ICB2YXIgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgdmFyIHNlbGVj
dGlvbiA9IHRoaXMuc2VsZWN0aW9uKCk7CiAgICAgICAgIHZhciBjaHVuayA9IFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5zcGxpdENodW5rT25BTGluZS5jYWxs
KHRoaXMsIGxpbmVOdW1iZXIsIGNodW5rTnVtYmVyLCBjcmVhdGVTdWZmaXhDaHVuayk7CiAgICAg
ICAgIHRoaXMuX3Jlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uKTsKICAgICAgICAgcmV0dXJuIGNo
dW5rOwpAQCAtMTcwNiw3ICsxNzAzLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbGFzdENodW5rID0gdGhpcy5fdGV4dENodW5r
c1t0b0luZGV4IC0gMV07CiAgICAgICAgIHZhciBsYXN0VmlzaWJsZUxpbmUgPSBsYXN0Q2h1bmsu
c3RhcnRMaW5lICsgbGFzdENodW5rLmxpbmVzQ291bnQ7CiAKLSAgICAgICAgdmFyIHNlbGVjdGlv
biA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLnNl
bGVjdGlvbigpOwogCiAgICAgICAgIHRoaXMuX211dGVIaWdobGlnaHRMaXN0ZW5lciA9IHRydWU7
CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVyLmhpZ2hsaWdodChsYXN0VmlzaWJsZUxpbmUpOwpA
QCAtMTg0Nyw3ICsxODQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgaWYgKHJlc3RvcmVTZWxlY3Rpb24gJiYgIXNlbGVjdGlvbikK
LSAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTsKICAgICAgICAg
ICAgICAgICB0aGlzLl9wYWludExpbmUobGluZVJvdyk7CiAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX3BhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0IDwgMCkgewogICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9zY2hlZHVsZVBhaW50TGluZXMobGluZU51bWJlciArIDEsIGxpbmVDaHVuay5lbmRM
aW5lKTsKQEAgLTE4NTgsNyArMTg1NSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludmlzaWJs
ZUxpbmVSb3dzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICBpZiAocmVzdG9yZVNlbGVjdGlv
biAmJiAhc2VsZWN0aW9uKQotICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTsK
ICAgICAgICAgICAgIHRoaXMuX3BhaW50TGluZShpbnZpc2libGVMaW5lUm93c1tpXSk7CiAgICAg
ICAgIH0KIApAQCAtMTk1Myw3ICsxOTUwLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7P05vZGU9fSBsYXN0VW5kYW1hZ2Vk
TGluZVJvdwogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9CiAgICAgICov
Ci0gICAgZ2V0U2VsZWN0aW9uOiBmdW5jdGlvbihsYXN0VW5kYW1hZ2VkTGluZVJvdykKKyAgICBz
ZWxlY3Rpb246IGZ1bmN0aW9uKGxhc3RVbmRhbWFnZWRMaW5lUm93KQogICAgIHsKICAgICAgICAg
dmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgaWYgKCFzZWxl
Y3Rpb24ucmFuZ2VDb3VudCkKQEAgLTE5NjYsNyArMTk2Myw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlKHN0YXJ0LmxpbmUsIHN0YXJ0LmNvbHVtbiwgZW5kLmxpbmUsIGVuZC5j
b2x1bW4pOwogICAgIH0sCiAKLSAgICBnZXRMYXN0U2VsZWN0aW9uOiBmdW5jdGlvbigpCisgICAg
bGFzdFNlbGVjdGlvbjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2xh
c3RTZWxlY3Rpb247CiAgICAgfSwKQEAgLTIyOTIsNyArMjI4OSw3IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBlZGl0SW5m
byA9IG5ldyBXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IuRWRpdEluZm8ocmFuZ2UsIGxp
bmVzLmpvaW4oIlxuIikpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRo
aXMuZ2V0U2VsZWN0aW9uKGNvbGxlY3RMaW5lc0Zyb21Ob2RlKTsKKyAgICAgICAgdmFyIHNlbGVj
dGlvbiA9IHRoaXMuc2VsZWN0aW9uKGNvbGxlY3RMaW5lc0Zyb21Ob2RlKTsKIAogICAgICAgICAv
LyBVbmluZGVudCBhZnRlciBibG9jawogICAgICAgICBpZiAoZWRpdEluZm8udGV4dCA9PT0gIn0i
ICYmIGVkaXRJbmZvLnJhbmdlLmlzRW1wdHkoKSAmJiBzZWxlY3Rpb24uaXNFbXB0eSgpICYmICF0
aGlzLl90ZXh0TW9kZWwubGluZShlZGl0SW5mby5yYW5nZS5lbmRMaW5lKS50cmltKCkpIHsKQEAg
LTI1NjYsMjUgKzI1NjMsMzcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGV4dENvbnRlbnQuc3BsaXQoIlxuIik7CiAgICAg
fSwKIAotICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24oZXZlbnQpCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfaGFuZGxlU2VsZWN0
aW9uQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciB0ZXh0UmFuZ2Ug
PSB0aGlzLmdldFNlbGVjdGlvbigpOworICAgICAgICB2YXIgdGV4dFJhbmdlID0gdGhpcy5zZWxl
Y3Rpb24oKTsKICAgICAgICAgaWYgKHRleHRSYW5nZSkKICAgICAgICAgICAgIHRoaXMuX2xhc3RT
ZWxlY3Rpb24gPSB0ZXh0UmFuZ2U7CiAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNlbGVjdGlvbkNo
YW5nZWQodGV4dFJhbmdlKTsKICAgICB9LAogCi0gICAgX2hhbmRsZVRleHRJbnB1dDogZnVuY3Rp
b24oZSkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAorICAgICAqLworICAg
IF9oYW5kbGVUZXh0SW5wdXQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5f
dGV4dElucHV0RGF0YSA9IGUuZGF0YTsKKyAgICAgICAgdGhpcy5fdGV4dElucHV0RGF0YSA9IGV2
ZW50LmRhdGE7CiAgICAgfSwKIAotICAgIGhhbmRsZUtleURvd246IGZ1bmN0aW9uKGUpCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBoYW5kbGVLZXlE
b3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2tleURvd25Db2RlID0g
ZS5rZXlDb2RlOworICAgICAgICB0aGlzLl9rZXlEb3duQ29kZSA9IGV2ZW50LmtleUNvZGU7CiAg
ICAgfSwKIAotICAgIGhhbmRsZUN1dDogZnVuY3Rpb24oZSkKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge0V2ZW50fSBldmVudAorICAgICAqLworICAgIF9oYW5kbGVDdXQ6IGZ1bmN0aW9uKGV2ZW50
KQogICAgIHsKICAgICAgICAgdGhpcy5fa2V5RG93bkNvZGUgPSBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5LZXlzLkRlbGV0ZS5jb2RlOwogICAgIH0sCkBAIC0yNjMwLDYgKzI2MzksOSBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuayA9IGZ1bmN0aW9uKGNodW5rZWRQYW5l
bCwgc3RhcnRMaW5lLCBlbmRMaW5lKQogfQogCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5D
aHVuay5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtFbGVtZW50fHN0cmlu
Z30gZGVjb3JhdGlvbgorICAgICAqLwogICAgIGFkZERlY29yYXRpb246IGZ1bmN0aW9uKGRlY29y
YXRpb24pCiAgICAgewogICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuYmVnaW5Eb21VcGRhdGVz
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMWQ5ZmQ4Y2ZlMjRjYTE3YzNlYjY4NjNhM2EzZTljZjhhYmNkODVkNi4uNTk3
MzJjYjViMWI1YjNkMTkwYTVlY2MwNDM1ZjhkZWMxYTViYWFjMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTEyLTI4ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWZhY3RvciBEZWZhdWx0VGV4dEVkaXRvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODI5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRlc3Qg
dG8gY29ycmVsYXRlIHdpdGggcmVmYWN0b3Jpbmcgb2YgRGVmYXVsdFRleHRFZGl0b3IuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5odG1sOgorCiAy
MDEyLTEyLTI4ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAaW50ZWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5odG1sCmlu
ZGV4IGM1NTI5ZWQ5MTFjZDFlNThkYzJiOGUxOTAxMmY5MmRjOGRjNWNmYTAuLjIyYmYwNjIzMzRl
MmY2OGQ0ZDY1NTM1ODM1NzllMTE4OGYwMGU1NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24uaHRtbApAQCAtMTUsNyAr
MTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciBjaHVua3MgPSB0ZXh0RWRp
dG9yLl9tYWluUGFuZWwuX3RleHRDaHVua3M7CiAgICAgICAgICAgICB2YXIgbGFzdENodW5rID0g
Y2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXTsKICAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5zZXRCYXNlQW5kRXh0ZW50KGxhc3RDaHVuay5lbGVtZW50LCAwLCBsYXN0Q2h1bmsuZWxl
bWVudCwgMCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9y
Ll9tYWluUGFuZWwuZ2V0U2VsZWN0aW9uKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQodGV4dEVkaXRvci5fbWFpblBhbmVsLnNlbGVjdGlvbigpKTsKICAgICAgICAgICAg
IG5leHQoKTsKICAgICAgICAgfSwKIApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIHZhciBjaHVua3MgPSB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX3RleHRDaHVu
a3M7CiAgICAgICAgICAgICB2YXIgbGFzdENodW5rID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAx
XTsKICAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGxh
c3RDaHVuay5lbGVtZW50LCAxLCBsYXN0Q2h1bmsuZWxlbWVudCwgMSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWluUGFuZWwuZ2V0U2VsZWN0aW9u
KCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci5fbWFp
blBhbmVsLnNlbGVjdGlvbigpKTsKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfSwKIApA
QCAtMzMsNyArMzMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciBjaHVua3Mg
PSB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX3RleHRDaHVua3M7CiAgICAgICAgICAgICB2YXIgbGFz
dENodW5rID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXTsKICAgICAgICAgICAgIHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGxhc3RDaHVuay5lbGVtZW50LmZpcnN0Q2hp
bGQsIDEsIGxhc3RDaHVuay5lbGVtZW50LmZpcnN0Q2hpbGQsIDExKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5nZXRTZWxlY3Rpb24o
KSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWlu
UGFuZWwuc2VsZWN0aW9uKCkpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LAogCkBA
IC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIGNodW5rcyA9
IHRleHRFZGl0b3IuX21haW5QYW5lbC5fdGV4dENodW5rczsKICAgICAgICAgICAgIHZhciBmaXJz
dENodW5rID0gY2h1bmtzWzBdOwogICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZmlyc3RDaHVuay5leHBhbmRlZExpbmVSb3coMyksIDAsIGZpcnN0Q2h1
bmsuZXhwYW5kZWRMaW5lUm93KDQpLCAxKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5nZXRTZWxlY3Rpb24oKSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWluUGFuZWwuc2VsZWN0aW9u
KCkpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LAogCkBAIC01MSw3ICs1MSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIGNodW5rcyA9IHRleHRFZGl0b3IuX21h
aW5QYW5lbC5fdGV4dENodW5rczsKICAgICAgICAgICAgIHZhciBmaXJzdENodW5rID0gY2h1bmtz
WzBdOwogICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQo
Zmlyc3RDaHVuay5leHBhbmRlZExpbmVSb3coMykuZmlyc3RDaGlsZCwgMywgZmlyc3RDaHVuay5l
eHBhbmRlZExpbmVSb3coNCkuZmlyc3RDaGlsZCwgNCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWluUGFuZWwuZ2V0U2VsZWN0aW9uKCkpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci5fbWFpblBhbmVsLnNl
bGVjdGlvbigpKTsKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfSwKICAgICBdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180878</attachid>
            <date>2012-12-28 08:42:41 -0800</date>
            <delta_ts>2012-12-29 01:20:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105829-20121228203951.patch</filename>
            <type>text/plain</type>
            <size>15387</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMxYThkZmJiYzM3YjZl
NjExMjYyODQ2YTU2ZjBiNmVhYjYwZDA4NC4uOGQyNzZkZjBiNGIwZWY1NWZkMTYxMWU5ZDY3NjI5
YjgwNGIwZjQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDEyLTEyLTI4ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLmNvbT4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiByZWZhY3RvciBEZWZhdWx0VGV4dEVkaXRvciAtIGFubm90YXRlIGhhbmRsZXJzIGFu
ZCBmaXggZ2V0dGVycyBzdHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA1ODI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVmYWN0b3IgRGVmYXVsdFRleHRFZGl0b3IuanM6IGltcHJvdmUgaGFuZGxl
ciBtZXRob2QgYW5ub3RhdGlvbnMsCisgICAgICAgIHJlbW92ZSAiZ2V0IiBwcmVmaXggZnJvbSBt
ZXRob2QgbmFtZXMsIGdldCByaWQgb2YgdW5uZWNlc3NhcnkKKyAgICAgICAgZGVsZWdhdGlvbiAo
ZS5nLiBzZWUgX2hhbmRsZUN1dCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBubyBjaGFuZ2Ug
aW4gYmVoYXZpb3VyLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4
dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IucHJvdG90eXBlLl9jb250ZXh0
TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IucHJvdG90eXBl
LnNlbGVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IucHJv
dG90eXBlLmxhc3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0
RWRpdG9yLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVs
dFRleHRFZGl0b3IucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5jcmVhdGVOZXdDaHVuayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5wb3B1bGF0ZUNv
bnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZS5zcGxpdENodW5rT25BTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5wcm90b3R5cGUuZXhwYW5kQ2h1bmtzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5fcGFpbnRMaW5lQ2h1bmtzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5zZWxlY3Rp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBl
Lmxhc3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlLl9hcHBseURvbVVwZGF0ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9oYW5kbGVTZWxlY3Rpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9oYW5kbGVU
ZXh0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlLmhhbmRsZUtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlLl9oYW5kbGVDdXQpOgorCisyMDEyLTEyLTI4ICBBbmRyZXkgTHVz
aG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBlbmFibGUgbXV0YXRpb24gb2JzZXJ2ZXIgaW4gTGF5b3V0VGVzdHMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTgyNgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwpp
bmRleCA4Nzk5OTdjYmFhMjEzYzRmNjMxMDRiMjg0MTVmNmMyNDE0NTI0NTA4Li5iN2MxMDIyYTg5
NzM4MzUxMDFiZWY0MWVmZGE4MDhkZjhkNTczZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKQEAgLTkyLDcg
KzkyLDYgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yID0gZnVuY3Rpb24odXJsLCBk
ZWxlZ2F0ZSkKICAgICB0aGlzLl9ndXR0ZXJQYW5lbC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNld2hlZWwiLCBmb3J3YXJkV2hlZWxFdmVudC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2hhbmRsZUtl
eURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJjdXQiLCB0aGlzLl9oYW5kbGVDdXQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51
LmJpbmQodGhpcyksIHRydWUpOwogCiAgICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKQEAg
LTQxOSwxMSArNDE4LDYgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fbWFpblBhbmVsLmhhbmRsZUtleURvd24oZSk7CiAgICAgfSwK
IAotICAgIF9oYW5kbGVDdXQ6IGZ1bmN0aW9uKGUpCi0gICAgewotICAgICAgICB0aGlzLl9tYWlu
UGFuZWwuaGFuZGxlQ3V0KGUpOwotICAgIH0sCi0KICAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGFuY2hvciA9IGV2ZW50LnRhcmdldC5lbmNsb3Np
bmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJhIik7CkBAIC00MzQsNyArNDI4LDcgQEAgV2ViSW5z
cGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRhcmdl
dCkKICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnBvcHVsYXRlTGluZUd1dHRlckNvbnRleHRN
ZW51KGNvbnRleHRNZW51LCB0YXJnZXQubGluZU51bWJlcik7CiAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgdGhpcy5fbWFpblBhbmVsLmNvbnRleHRNZW51KGV2ZW50LnRhcmdldCwgY29udGV4
dE1lbnUpOworICAgICAgICAgICAgdGhpcy5fbWFpblBhbmVsLnBvcHVsYXRlQ29udGV4dE1lbnUo
ZXZlbnQudGFyZ2V0LCBjb250ZXh0TWVudSk7CiAgICAgICAgIH0KICAgICAgICAgY29udGV4dE1l
bnUuc2hvdygpOwogICAgIH0sCkBAIC00NTksNyArNDUzLDcgQEAgV2ViSW5zcGVjdG9yLkRlZmF1
bHRUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzZWxlY3Rpb246IGZ1bmN0
aW9uKHRleHRSYW5nZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuZ2V0
U2VsZWN0aW9uKCk7CisgICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuc2VsZWN0aW9uKCk7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNDY3LDcgKzQ2MSw3IEBAIFdlYkluc3BlY3Rvci5EZWZh
dWx0VGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgbGFzdFNlbGVjdGlvbjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21haW5QYW5lbC5nZXRMYXN0
U2VsZWN0aW9uKCk7CisgICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwubGFzdFNlbGVjdGlv
bigpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTUyMiw3ICs1MTYsNyBAQCBXZWJJbnNwZWN0b3Iu
RGVmYXVsdFRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBsaW5lCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKLSAgICAgKiBAcGFyYW0g
e09iamVjdD99IHZhbHVlCisgICAgICogQHBhcmFtIHs/T2JqZWN0fSB2YWx1ZQogICAgICAqLwog
ICAgIHNldEF0dHJpYnV0ZTogZnVuY3Rpb24obGluZSwgbmFtZSwgdmFsdWUpCiAgICAgewpAQCAt
NTUzLDggKzU0Nyw2IEBAIFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghdGhpcy5yZWFkT25seSgpKQogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLm1hcmtCZWluZ0VkaXRlZCh0aGlzLmVsZW1lbnQsIHRydWUpOwogCi0gICAgICAgIHRoaXMu
X2JvdW5kU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgPSB0aGlzLl9tYWluUGFuZWwuaGFuZGxlU2Vs
ZWN0aW9uQ2hhbmdlLmJpbmQodGhpcy5fbWFpblBhbmVsKTsKLSAgICAgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFu
Z2VMaXN0ZW5lciwgZmFsc2UpOwogICAgICAgICB0aGlzLl9tYWluUGFuZWwud2FzU2hvd24oKTsK
ICAgICB9LAogCkBAIC01NjIsOCArNTU0LDYgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRp
dG9yLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX21haW5QYW5lbC53aWxsSGlk
ZSgpOwogICAgICAgICB0aGlzLl9ndXR0ZXJQYW5lbC53aWxsSGlkZSgpOwotICAgICAgICBkb2N1
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNl
bGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxzZSk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9ib3Vu
ZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyOwogCiAgICAgICAgIGlmICghdGhpcy5yZWFkT25seSgp
KQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLm1hcmtCZWluZ0VkaXRlZCh0aGlzLmVsZW1lbnQs
IGZhbHNlKTsKQEAgLTgwMyw3ICs3OTMsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5r
ZWRQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBjcmVhdGVOZXdDaHVuazogZnVuY3Rpb24oc3Rh
cnRMaW5lLCBlbmRMaW5lKQogICAgIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJjcmVhdGVO
ZXdDaHVuaygpIGlzIG5vdCBpbXBsZW1lbnRlZCIpOworICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
ImNyZWF0ZU5ld0NodW5rKCkgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IGRlc2NlbmRhbnRzIik7
CiAgICAgfSwKIAogICAgIF9zY3JvbGw6IGZ1bmN0aW9uKCkKQEAgLTEzNDQsNiArMTMzNCw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsID0gZnVuY3Rpb24oZGVsZWdhdGUsIHRl
eHRNb2RlbCwgdXJsLCBzeW5jU2Nyb2xsCiAKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCB0aGlzLl9oYW5kbGVFbGVtZW50Rm9jdXMuYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0ZXh0SW5wdXQiLCB0aGlzLl9o
YW5kbGVUZXh0SW5wdXQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjdXQiLCB0aGlzLl9oYW5kbGVDdXQuYmluZCh0aGlzKSwgZmFsc2UpOwog
CiAgICAgdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5faGFu
ZGxlRm9jdXNlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKQEAgLTEzNTQsMTIgKzEzNDUsMTggQEAg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdGV4
dE1vZGVsLCB1cmwsIHN5bmNTY3JvbGwKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAg
dGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA9IHRoaXMuX2hhbmRsZVNlbGVjdGlv
bkNoYW5nZS5iaW5kKHRoaXMpOworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJz
ZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxz
ZSk7CisKICAgICAgICAgdGhpcy5faXNTaG93aW5nID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fYXR0
YWNoTXV0YXRpb25PYnNlcnZlcigpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9u
Y2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciwgZmFsc2UpOworICAg
ICAgICBkZWxldGUgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lcjsKKwogICAgICAg
ICB0aGlzLl9kZXRhY2hNdXRhdGlvbk9ic2VydmVyKCk7CiAgICAgICAgIHRoaXMuX2lzU2hvd2lu
ZyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9mcmVlQ2FjaGVkRWxlbWVudHMoKTsKQEAgLTEzNjks
NyArMTM2Niw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGV2ZW50VGFyZ2V0CiAgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuQ29udGV4dE1lbnV9IGNvbnRleHRNZW51CiAgICAgICovCi0gICAgY29udGV4
dE1lbnU6IGZ1bmN0aW9uKGV2ZW50VGFyZ2V0LCBjb250ZXh0TWVudSkKKyAgICBwb3B1bGF0ZUNv
bnRleHRNZW51OiBmdW5jdGlvbihldmVudFRhcmdldCwgY29udGV4dE1lbnUpCiAgICAgewogICAg
ICAgICB2YXIgdGFyZ2V0ID0gdGhpcy5fZW5jbG9zaW5nTGluZVJvd09yU2VsZihldmVudFRhcmdl
dCk7CiAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnBvcHVsYXRlVGV4dEFyZWFDb250ZXh0TWVudShj
b250ZXh0TWVudSwgdGFyZ2V0ICYmIHRhcmdldC5saW5lTnVtYmVyKTsKQEAgLTE1NzgsNyArMTU3
NSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgaWYgKHRoaXMucmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgdmFy
IHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uKCk7CiAgICAgICAgIGlmICghc2VsZWN0aW9uKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNjA5LDcgKzE2MDYsNyBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlz
LnJlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgdmFyIHJh
bmdlID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgdmFyIHJhbmdlID0gdGhpcy5zZWxl
Y3Rpb24oKTsKICAgICAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtMTY1OSw3ICsxNjU2LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNwbGl0Q2h1bmtPbkFMaW5lOiBmdW5jdGlvbihs
aW5lTnVtYmVyLCBjaHVua051bWJlciwgY3JlYXRlU3VmZml4Q2h1bmspCiAgICAgewotICAgICAg
ICB2YXIgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgdmFyIHNlbGVj
dGlvbiA9IHRoaXMuc2VsZWN0aW9uKCk7CiAgICAgICAgIHZhciBjaHVuayA9IFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5zcGxpdENodW5rT25BTGluZS5jYWxs
KHRoaXMsIGxpbmVOdW1iZXIsIGNodW5rTnVtYmVyLCBjcmVhdGVTdWZmaXhDaHVuayk7CiAgICAg
ICAgIHRoaXMuX3Jlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uKTsKICAgICAgICAgcmV0dXJuIGNo
dW5rOwpAQCAtMTcwNiw3ICsxNzAzLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbGFzdENodW5rID0gdGhpcy5fdGV4dENodW5r
c1t0b0luZGV4IC0gMV07CiAgICAgICAgIHZhciBsYXN0VmlzaWJsZUxpbmUgPSBsYXN0Q2h1bmsu
c3RhcnRMaW5lICsgbGFzdENodW5rLmxpbmVzQ291bnQ7CiAKLSAgICAgICAgdmFyIHNlbGVjdGlv
biA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLnNl
bGVjdGlvbigpOwogCiAgICAgICAgIHRoaXMuX211dGVIaWdobGlnaHRMaXN0ZW5lciA9IHRydWU7
CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVyLmhpZ2hsaWdodChsYXN0VmlzaWJsZUxpbmUpOwpA
QCAtMTg0Nyw3ICsxODQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgaWYgKHJlc3RvcmVTZWxlY3Rpb24gJiYgIXNlbGVjdGlvbikK
LSAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTsKICAgICAgICAg
ICAgICAgICB0aGlzLl9wYWludExpbmUobGluZVJvdyk7CiAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX3BhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0IDwgMCkgewogICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9zY2hlZHVsZVBhaW50TGluZXMobGluZU51bWJlciArIDEsIGxpbmVDaHVuay5lbmRM
aW5lKTsKQEAgLTE4NTgsNyArMTg1NSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludmlzaWJs
ZUxpbmVSb3dzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICBpZiAocmVzdG9yZVNlbGVjdGlv
biAmJiAhc2VsZWN0aW9uKQotICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTsK
ICAgICAgICAgICAgIHRoaXMuX3BhaW50TGluZShpbnZpc2libGVMaW5lUm93c1tpXSk7CiAgICAg
ICAgIH0KIApAQCAtMTk1Myw3ICsxOTUwLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7P05vZGU9fSBsYXN0VW5kYW1hZ2Vk
TGluZVJvdwogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9CiAgICAgICov
Ci0gICAgZ2V0U2VsZWN0aW9uOiBmdW5jdGlvbihsYXN0VW5kYW1hZ2VkTGluZVJvdykKKyAgICBz
ZWxlY3Rpb246IGZ1bmN0aW9uKGxhc3RVbmRhbWFnZWRMaW5lUm93KQogICAgIHsKICAgICAgICAg
dmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgaWYgKCFzZWxl
Y3Rpb24ucmFuZ2VDb3VudCkKQEAgLTE5NjYsNyArMTk2Myw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlKHN0YXJ0LmxpbmUsIHN0YXJ0LmNvbHVtbiwgZW5kLmxpbmUsIGVuZC5j
b2x1bW4pOwogICAgIH0sCiAKLSAgICBnZXRMYXN0U2VsZWN0aW9uOiBmdW5jdGlvbigpCisgICAg
bGFzdFNlbGVjdGlvbjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2xh
c3RTZWxlY3Rpb247CiAgICAgfSwKQEAgLTIyOTIsNyArMjI4OSw3IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBlZGl0SW5m
byA9IG5ldyBXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0b3IuRWRpdEluZm8ocmFuZ2UsIGxp
bmVzLmpvaW4oIlxuIikpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRo
aXMuZ2V0U2VsZWN0aW9uKGNvbGxlY3RMaW5lc0Zyb21Ob2RlKTsKKyAgICAgICAgdmFyIHNlbGVj
dGlvbiA9IHRoaXMuc2VsZWN0aW9uKGNvbGxlY3RMaW5lc0Zyb21Ob2RlKTsKIAogICAgICAgICAv
LyBVbmluZGVudCBhZnRlciBibG9jawogICAgICAgICBpZiAoZWRpdEluZm8udGV4dCA9PT0gIn0i
ICYmIGVkaXRJbmZvLnJhbmdlLmlzRW1wdHkoKSAmJiBzZWxlY3Rpb24uaXNFbXB0eSgpICYmICF0
aGlzLl90ZXh0TW9kZWwubGluZShlZGl0SW5mby5yYW5nZS5lbmRMaW5lKS50cmltKCkpIHsKQEAg
LTI1NjYsMjUgKzI1NjMsMzcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGV4dENvbnRlbnQuc3BsaXQoIlxuIik7CiAgICAg
fSwKIAotICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24oZXZlbnQpCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfaGFuZGxlU2VsZWN0
aW9uQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciB0ZXh0UmFuZ2Ug
PSB0aGlzLmdldFNlbGVjdGlvbigpOworICAgICAgICB2YXIgdGV4dFJhbmdlID0gdGhpcy5zZWxl
Y3Rpb24oKTsKICAgICAgICAgaWYgKHRleHRSYW5nZSkKICAgICAgICAgICAgIHRoaXMuX2xhc3RT
ZWxlY3Rpb24gPSB0ZXh0UmFuZ2U7CiAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNlbGVjdGlvbkNo
YW5nZWQodGV4dFJhbmdlKTsKICAgICB9LAogCi0gICAgX2hhbmRsZVRleHRJbnB1dDogZnVuY3Rp
b24oZSkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAorICAgICAqLworICAg
IF9oYW5kbGVUZXh0SW5wdXQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5f
dGV4dElucHV0RGF0YSA9IGUuZGF0YTsKKyAgICAgICAgdGhpcy5fdGV4dElucHV0RGF0YSA9IGV2
ZW50LmRhdGE7CiAgICAgfSwKIAotICAgIGhhbmRsZUtleURvd246IGZ1bmN0aW9uKGUpCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBoYW5kbGVLZXlE
b3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2tleURvd25Db2RlID0g
ZS5rZXlDb2RlOworICAgICAgICB0aGlzLl9rZXlEb3duQ29kZSA9IGV2ZW50LmtleUNvZGU7CiAg
ICAgfSwKIAotICAgIGhhbmRsZUN1dDogZnVuY3Rpb24oZSkKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge0V2ZW50fSBldmVudAorICAgICAqLworICAgIF9oYW5kbGVDdXQ6IGZ1bmN0aW9uKGV2ZW50
KQogICAgIHsKICAgICAgICAgdGhpcy5fa2V5RG93bkNvZGUgPSBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5LZXlzLkRlbGV0ZS5jb2RlOwogICAgIH0sCkBAIC0yNjMwLDYgKzI2MzksOSBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuayA9IGZ1bmN0aW9uKGNodW5rZWRQYW5l
bCwgc3RhcnRMaW5lLCBlbmRMaW5lKQogfQogCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5D
aHVuay5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtFbGVtZW50fHN0cmlu
Z30gZGVjb3JhdGlvbgorICAgICAqLwogICAgIGFkZERlY29yYXRpb246IGZ1bmN0aW9uKGRlY29y
YXRpb24pCiAgICAgewogICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuYmVnaW5Eb21VcGRhdGVz
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMWQ5ZmQ4Y2ZlMjRjYTE3YzNlYjY4NjNhM2EzZTljZjhhYmNkODVkNi4uNTk3
MzJjYjViMWI1YjNkMTkwYTVlY2MwNDM1ZjhkZWMxYTViYWFjMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTEyLTI4ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWZhY3RvciBEZWZhdWx0VGV4dEVkaXRvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODI5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRlc3Qg
dG8gY29ycmVsYXRlIHdpdGggcmVmYWN0b3Jpbmcgb2YgRGVmYXVsdFRleHRFZGl0b3IuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5odG1sOgorCiAy
MDEyLTEyLTI4ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAaW50ZWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5odG1sCmlu
ZGV4IGM1NTI5ZWQ5MTFjZDFlNThkYzJiOGUxOTAxMmY5MmRjOGRjNWNmYTAuLjIyYmYwNjIzMzRl
MmY2OGQ0ZDY1NTM1ODM1NzllMTE4OGYwMGU1NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24uaHRtbApAQCAtMTUsNyAr
MTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciBjaHVua3MgPSB0ZXh0RWRp
dG9yLl9tYWluUGFuZWwuX3RleHRDaHVua3M7CiAgICAgICAgICAgICB2YXIgbGFzdENodW5rID0g
Y2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXTsKICAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5zZXRCYXNlQW5kRXh0ZW50KGxhc3RDaHVuay5lbGVtZW50LCAwLCBsYXN0Q2h1bmsuZWxl
bWVudCwgMCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9y
Ll9tYWluUGFuZWwuZ2V0U2VsZWN0aW9uKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQodGV4dEVkaXRvci5fbWFpblBhbmVsLnNlbGVjdGlvbigpKTsKICAgICAgICAgICAg
IG5leHQoKTsKICAgICAgICAgfSwKIApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIHZhciBjaHVua3MgPSB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX3RleHRDaHVu
a3M7CiAgICAgICAgICAgICB2YXIgbGFzdENodW5rID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAx
XTsKICAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGxh
c3RDaHVuay5lbGVtZW50LCAxLCBsYXN0Q2h1bmsuZWxlbWVudCwgMSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWluUGFuZWwuZ2V0U2VsZWN0aW9u
KCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci5fbWFp
blBhbmVsLnNlbGVjdGlvbigpKTsKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfSwKIApA
QCAtMzMsNyArMzMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciBjaHVua3Mg
PSB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX3RleHRDaHVua3M7CiAgICAgICAgICAgICB2YXIgbGFz
dENodW5rID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXTsKICAgICAgICAgICAgIHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGxhc3RDaHVuay5lbGVtZW50LmZpcnN0Q2hp
bGQsIDEsIGxhc3RDaHVuay5lbGVtZW50LmZpcnN0Q2hpbGQsIDExKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5nZXRTZWxlY3Rpb24o
KSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWlu
UGFuZWwuc2VsZWN0aW9uKCkpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LAogCkBA
IC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIGNodW5rcyA9
IHRleHRFZGl0b3IuX21haW5QYW5lbC5fdGV4dENodW5rczsKICAgICAgICAgICAgIHZhciBmaXJz
dENodW5rID0gY2h1bmtzWzBdOwogICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZmlyc3RDaHVuay5leHBhbmRlZExpbmVSb3coMyksIDAsIGZpcnN0Q2h1
bmsuZXhwYW5kZWRMaW5lUm93KDQpLCAxKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5nZXRTZWxlY3Rpb24oKSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWluUGFuZWwuc2VsZWN0aW9u
KCkpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LAogCkBAIC01MSw3ICs1MSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIGNodW5rcyA9IHRleHRFZGl0b3IuX21h
aW5QYW5lbC5fdGV4dENodW5rczsKICAgICAgICAgICAgIHZhciBmaXJzdENodW5rID0gY2h1bmtz
WzBdOwogICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQo
Zmlyc3RDaHVuay5leHBhbmRlZExpbmVSb3coMykuZmlyc3RDaGlsZCwgMywgZmlyc3RDaHVuay5l
eHBhbmRlZExpbmVSb3coNCkuZmlyc3RDaGlsZCwgNCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLl9tYWluUGFuZWwuZ2V0U2VsZWN0aW9uKCkpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci5fbWFpblBhbmVsLnNl
bGVjdGlvbigpKTsKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfSwKICAgICBdKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>