<?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>51175</bug_id>
          
          <creation_ts>2010-12-16 03:44:51 -0800</creation_ts>
          <short_desc>WebInspector: introduce DebuggerPresentationModel - model for all presentation data related to scripts panel</short_desc>
          <delta_ts>2011-05-24 08:10:04 -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>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>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>323097</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-16 03:44:51 -0800</bug_when>
    <thetext>WebInspector: introduce DebuggerPresentationModel - model for all presentation data related to scripts panel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323098</commentid>
    <comment_count>1</comment_count>
      <attachid>76749</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-16 03:45:51 -0800</bug_when>
    <thetext>Created attachment 76749
Patch.

This patch adds script beautification data and functions to DebuggerPresentationModel.
Later we should move all data used by ScriptsPanel and its views to DebuggerPresentationModel:
- JavaScript compilation errors and exceptions (used by SourceFrame to show message bubbles)
- lazy script and resource loading, mapping between scripts and resources
- other data used by views which is not a part of &quot;real&quot; debugger model (e.g. currently selected call frame index)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327913</commentid>
    <comment_count>2</comment_count>
      <attachid>76749</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-12-30 06:19:34 -0800</bug_when>
    <thetext>Comment on attachment 76749
Patch.

As we discussed offline, there is no clear need in this separate abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354461</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-21 01:43:37 -0800</bug_when>
    <thetext>We should add a layer between DebuggerModel and scripts panel ui classes to encapsulate complex logic such as source mapping, content loading, renames, scripts concatenation, etc.

New layer will receive events from DebuggerModel, map source locations and names and dispatch new events which are directly usable by ui.

This should be done in two steps:

1. Move source mapping logic and direct calls to DebuggerModel from SourceFrame to ScriptsPanel.
  1.1 Update SourceFrame decorations with direct calls from ScriptsPanel.
  1.2 Extract calls to DebuggerModel functions to a delegate class that is set up by the ScriptsPanel.
2. Extract source mapping and direct calls to DebuggerModel to a new DebuggerPresentationModel class, make ScriptsPanel DebuggerPresentationModel&apos;s listener.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76749</attachid>
            <date>2010-12-16 03:45:51 -0800</date>
            <delta_ts>2010-12-30 06:19:34 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14546</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWI5ZGYyZS4uYjhmNDQ1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMC0xMi0xNiAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IGludHJvZHVjZSBEZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsIC0gbW9kZWwgZm9yIGFsbCBwcmVzZW50YXRpb24gZGF0YSByZWxhdGVk
IHRvIHNjcmlwdHMgcGFuZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MTE3NQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzY3JpcHQgYmVhdXRp
ZmljYXRpb24gZGF0YSBhbmQgZnVuY3Rpb25zIHRvIERlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
CisgICAgICAgIExhdGVyIHdlIHNob3VsZCBtb3ZlIGFsbCBkYXRhIHVzZWQgYnkgU2NyaXB0c1Bh
bmVsIGFuZCBpdHMgdmlld3MgdG8gRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbDoKKyAgICAgICAg
LSBKYXZhU2NyaXB0IGNvbXBpbGF0aW9uIGVycm9ycyBhbmQgZXhjZXB0aW9ucyAodXNlZCBieSBT
b3VyY2VGcmFtZSB0byBzaG93IG1lc3NhZ2UgYnViYmxlcykKKyAgICAgICAgLSBsYXp5IHNjcmlw
dCBhbmQgcmVzb3VyY2UgbG9hZGluZywgbWFwcGluZyBiZXR3ZWVuIHNjcmlwdHMgYW5kIHJlc291
cmNlcworICAgICAgICAtIG90aGVyIGRhdGEgdXNlZCBieSB2aWV3cyB3aGljaCBpcyBub3QgYSBw
YXJ0IG9mICJyZWFsIiBkZWJ1Z2dlciBtb2RlbCAoZS5nLiBjdXJyZW50bHkgc2VsZWN0ZWQgY2Fs
bCBmcmFtZSBpbmRleCkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5w
cm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuZm9ybWF0U2NyaXB0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9u
VG9MaW5lTnVtYmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5saW5lTnVtYmVyVG9PcmlnaW5hbFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fY29udmVy
dFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5sb2NhdGlvblRvUG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnBvc2l0aW9uVG9Mb2NhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2xvY2F0aW9uVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Bvc2l0aW9uVG9Mb2NhdGlvbik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Njcmlw
dERhdGEpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl9maW5kTGluZUVuZGluZ3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cHBlckJvdW5kKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVzZXQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5fZm9ybWF0U2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlVmlldy5w
cm90b3R5cGUuZm9ybWF0U2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dl
YktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKwogMjAxMC0xMi0x
NSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSm9uIEhvbmV5Y3V0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjZmY2NmNC4uNTY5NzY0NyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ2
MTksNiArNDYxOSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFz
ZVRhYmxlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3Jp
ZC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpz
JywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMyM2U1MjYuLmU0MTUzYmIgMTAw
NzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjU0MTcsNiArNjU0MTcsMTAg
QEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGluc3BlY3Rvclxmcm9udC1lbmRcRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcyIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rv
clxmcm9udC1lbmRcRE9NQWdlbnQuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IGNjODc3NTUuLmIzOGEy
MDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVs
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCkBA
IC05Niw2ICs5Niw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHMgPSB7fTsKICAgICAgICAgZGVsZXRlIHRoaXMuX29u
ZVRpbWVCcmVha3BvaW50OwogICAgICAgICB0aGlzLl9zY3JpcHRzID0ge307CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJyZXNldCIpOwogICAgIH0sCiAKICAgICBfc2V0
QnJlYWtwb2ludDogZnVuY3Rpb24oc291cmNlSUQsIHVybCwgbGluZSwgZW5hYmxlZCwgY29uZGl0
aW9uKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z
MjQzYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKG1vZGVsKQoreworICAgIHRoaXMu
X21vZGVsID0gbW9kZWw7CisgICAgdGhpcy5fX3NjcmlwdERhdGEgPSB7fTsKKworICAgIHRoaXMu
X21vZGVsLmFkZEV2ZW50TGlzdGVuZXIoInJlc2V0IiwgdGhpcy5fcmVzZXQsIHRoaXMpOworfQor
CitXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7Cisg
ICAgZm9ybWF0U2NyaXB0OiBmdW5jdGlvbihzb3VyY2VJRCkKKyAgICB7CisgICAgICAgIHZhciBz
Y3JpcHREYXRhID0gdGhpcy5fc2NyaXB0RGF0YShzb3VyY2VJRCk7CisgICAgICAgIHNjcmlwdERh
dGEuc291cmNlID0gc2NyaXB0RGF0YS5vcmlnaW5hbFNvdXJjZS5yZXBsYWNlKC87L2csICI7XG4i
KTsKKyAgICAgICAgc2NyaXB0RGF0YS5saW5lRW5kaW5ncyA9IHRoaXMuX2ZpbmRMaW5lRW5kaW5n
cyhzY3JpcHREYXRhLnNvdXJjZSk7CisKKyAgICAgICAgc2NyaXB0RGF0YS5vcmlnaW5hbFN5bWJv
bFBvc2l0aW9ucyA9IFswXTsKKyAgICAgICAgc2NyaXB0RGF0YS5zeW1ib2xQb3NpdGlvbnMgPSBb
MF07CisgICAgICAgIHZhciBsYXN0Q29kZVBvc2l0aW9uID0gMDsKKyAgICAgICAgdmFyIHJlID0g
bmV3IFJlZ0V4cCgvW1wkXC5cd10rL2cpOworICAgICAgICB3aGlsZSh0cnVlKSB7CisgICAgICAg
ICAgICB2YXIgbWF0Y2ggPSByZS5leGVjKHNjcmlwdERhdGEuc291cmNlKTsKKyAgICAgICAgICAg
IGlmICghbWF0Y2gpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB2YXIgcG9z
aXRpb24gPSBzY3JpcHREYXRhLm9yaWdpbmFsU291cmNlLmluZGV4T2YobWF0Y2hbMF0sIGxhc3RD
b2RlUG9zaXRpb24pOworICAgICAgICAgICAgaWYgKHBvc2l0aW9uID09PSAtMSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHNjcmlwdERhdGEub3JpZ2luYWxTeW1ib2xQ
b3NpdGlvbnMucHVzaChwb3NpdGlvbik7CisgICAgICAgICAgICBzY3JpcHREYXRhLnN5bWJvbFBv
c2l0aW9ucy5wdXNoKG1hdGNoLmluZGV4KTsKKyAgICAgICAgICAgIGxhc3RDb2RlUG9zaXRpb24g
PSBwb3NpdGlvbiArIG1hdGNoWzBdLmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHNjcmlw
dERhdGEuZm9ybWF0dGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHNjcmlwdERhdGEuc291cmNl
OworICAgIH0sCisKKyAgICBvcmlnaW5hbFBvc2l0aW9uVG9MaW5lTnVtYmVyOiBmdW5jdGlvbihz
b3VyY2VJRCwgb3JpZ2luYWxQb3NpdGlvbikKKyAgICB7CisgICAgICAgIHZhciBzY3JpcHREYXRh
ID0gdGhpcy5fc2NyaXB0RGF0YShzb3VyY2VJRCk7CisgICAgICAgIGlmICghc2NyaXB0RGF0YS5m
b3JtYXR0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25Ub0xvY2F0aW9uKHNj
cmlwdERhdGEub3JpZ2luYWxMaW5lRW5kaW5ncywgb3JpZ2luYWxQb3NpdGlvbikubGluZTsKKyAg
ICAgICAgdmFyIHBvc2l0aW9uID0gdGhpcy5fY29udmVydFBvc2l0aW9uKHNjcmlwdERhdGEub3Jp
Z2luYWxTeW1ib2xQb3NpdGlvbnMsIHNjcmlwdERhdGEuc3ltYm9sUG9zaXRpb25zLCBvcmlnaW5h
bFBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uVG9Mb2NhdGlvbihzY3Jp
cHREYXRhLmxpbmVFbmRpbmdzLCBwb3NpdGlvbikubGluZTsKKyAgICB9LAorCisgICAgbGluZU51
bWJlclRvT3JpZ2luYWxQb3NpdGlvbjogZnVuY3Rpb24oc291cmNlSUQsIGxpbmVOdW1iZXIpCisg
ICAgeworICAgICAgICB2YXIgc2NyaXB0RGF0YSA9IHRoaXMuX3NjcmlwdERhdGEoc291cmNlSUQp
OworICAgICAgICB2YXIgcG9zaXRpb24gPSB0aGlzLl9sb2NhdGlvblRvUG9zaXRpb24oc2NyaXB0
RGF0YS5saW5lRW5kaW5ncywgeyBsaW5lOiBsaW5lTnVtYmVyLCBjb2x1bW46IDAgfSk7CisgICAg
ICAgIHJldHVybiB0aGlzLl9jb252ZXJ0UG9zaXRpb24oc2NyaXB0RGF0YS5zeW1ib2xQb3NpdGlv
bnMsIHNjcmlwdERhdGEub3JpZ2luYWxTeW1ib2xQb3NpdGlvbnMsIHBvc2l0aW9uKTsKKyAgICB9
LAorCisgICAgX2NvbnZlcnRQb3NpdGlvbjogZnVuY3Rpb24oc3ltYm9sUG9zaXRpb25zMSwgc3lt
Ym9sUG9zaXRpb25zMiwgcG9zaXRpb24pCisgICAgeworICAgICAgICB2YXIgaW5kZXggPSB0aGlz
Ll91cHBlckJvdW5kKHN5bWJvbFBvc2l0aW9uczEsIHBvc2l0aW9uKSAtIDE7CisgICAgICAgIHJl
dHVybiBzeW1ib2xQb3NpdGlvbnMyW2luZGV4XTsKKyAgICB9LAorCisgICAgbG9jYXRpb25Ub1Bv
c2l0aW9uOiBmdW5jdGlvbihzb3VyY2VJRCwgbG9jYXRpb24pCisgICAgeworICAgICAgICB2YXIg
c2NyaXB0RGF0YSA9IHRoaXMuX3NjcmlwdERhdGEoc291cmNlSUQpOworICAgICAgICByZXR1cm4g
dGhpcy5fbG9jYXRpb25Ub1Bvc2l0aW9uKHNjcmlwdERhdGEub3JpZ2luYWxMaW5lRW5kaW5ncywg
bG9jYXRpb24pOworICAgIH0sCisKKyAgICBwb3NpdGlvblRvTG9jYXRpb246IGZ1bmN0aW9uKHNv
dXJjZUlELCBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIHZhciBzY3JpcHREYXRhID0gdGhpcy5f
c2NyaXB0RGF0YShzb3VyY2VJRCk7CisgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblRvTG9j
YXRpb24oc2NyaXB0RGF0YS5vcmlnaW5hbExpbmVFbmRpbmdzLCBwb3NpdGlvbik7CisgICAgfSwK
KworICAgIF9sb2NhdGlvblRvUG9zaXRpb246IGZ1bmN0aW9uKGxpbmVFbmRpbmdzLCBsb2NhdGlv
bikKKyAgICB7CisgICAgICAgIHZhciBwb3NpdGlvbiA9IGxvY2F0aW9uLmxpbmUgPyBsaW5lRW5k
aW5nc1tsb2NhdGlvbi5saW5lIC0gMV0gKyAxIDogMDsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9u
ICsgbG9jYXRpb24uY29sdW1uOworICAgIH0sCisKKyAgICBfcG9zaXRpb25Ub0xvY2F0aW9uOiBm
dW5jdGlvbihsaW5lRW5kaW5ncywgcG9zaXRpb24pCisgICAgeworICAgICAgICB2YXIgbG9jYXRp
b24gPSB7fTsKKyAgICAgICAgbG9jYXRpb24ubGluZSA9IHRoaXMuX3VwcGVyQm91bmQobGluZUVu
ZGluZ3MsIHBvc2l0aW9uIC0gMSk7CisgICAgICAgIGlmICghbG9jYXRpb24ubGluZSkKKyAgICAg
ICAgICAgIGxvY2F0aW9uLmNvbHVtbiA9IHBvc2l0aW9uOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBsb2NhdGlvbi5jb2x1bW4gPSBwb3NpdGlvbiAtIGxpbmVFbmRpbmdzW2xvY2F0aW9uLmxp
bmUgLSAxXSAtIDE7CisgICAgICAgIHJldHVybiBsb2NhdGlvbjsKKyAgICB9LAorCisgICAgX3Nj
cmlwdERhdGE6IGZ1bmN0aW9uKHNvdXJjZUlEKQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZUlE
IGluIHRoaXMuX19zY3JpcHREYXRhKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX19zY3JpcHRE
YXRhW3NvdXJjZUlEXTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX21vZGVsLnNjcmlwdEZv
clNvdXJjZUlEKHNvdXJjZUlEKTsKKyAgICAgICAgdmFyIHNjcmlwdERhdGEgPSB7fTsKKyAgICAg
ICAgc2NyaXB0RGF0YS5vcmlnaW5hbFNvdXJjZSA9IHNjcmlwdC5zb3VyY2UgfHwgc2NyaXB0LnJl
c291cmNlLmNvbnRlbnQ7CisgICAgICAgIHNjcmlwdERhdGEub3JpZ2luYWxMaW5lRW5kaW5ncyA9
IHRoaXMuX2ZpbmRMaW5lRW5kaW5ncyhzY3JpcHREYXRhLm9yaWdpbmFsU291cmNlKTsKKyAgICAg
ICAgc2NyaXB0RGF0YS5mb3JtYXR0ZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fX3NjcmlwdERh
dGFbc291cmNlSURdID0gc2NyaXB0RGF0YTsKKyAgICAgICAgcmV0dXJuIHNjcmlwdERhdGE7Cisg
ICAgfSwKKworICAgIF9maW5kTGluZUVuZGluZ3M6IGZ1bmN0aW9uKHNvdXJjZSkKKyAgICB7Cisg
ICAgICAgIHZhciBsaW5lRW5kaW5ncyA9IFtdOworICAgICAgICB2YXIgaSA9IHNvdXJjZS5pbmRl
eE9mKCJcbiIpOworICAgICAgICB3aGlsZSAoaSAhPT0gLTEpIHsKKyAgICAgICAgICAgIGxpbmVF
bmRpbmdzLnB1c2goaSk7CisgICAgICAgICAgICBpID0gc291cmNlLmluZGV4T2YoIlxuIiwgaSAr
IDEpOworICAgICAgICB9CisgICAgICAgIGxpbmVFbmRpbmdzLnB1c2goc291cmNlLmxlbmd0aCk7
CisgICAgICAgIHJldHVybiBsaW5lRW5kaW5nczsKKyAgICB9LAorCisgICAgX3VwcGVyQm91bmQ6
IGZ1bmN0aW9uKGFycmF5LCBudW1iZXIpCisgICAgeworICAgICAgICB2YXIgZmlyc3QgPSAwOwor
ICAgICAgICB2YXIgY291bnQgPSBhcnJheS5sZW5ndGg7CisgICAgICAgIHdoaWxlIChjb3VudCA+
IDApIHsKKyAgICAgICAgICB2YXIgc3RlcCA9IGNvdW50ID4+IDE7CisgICAgICAgICAgdmFyIG1p
ZGRsZSA9IGZpcnN0ICsgc3RlcDsKKyAgICAgICAgICBpZiAobnVtYmVyID49IGFycmF5W21pZGRs
ZV0pIHsKKyAgICAgICAgICAgICAgZmlyc3QgPSBtaWRkbGUgKyAxOworICAgICAgICAgICAgICBj
b3VudCAtPSBzdGVwICsgMTsKKyAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgY291bnQg
PSBzdGVwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaXJzdDsKKyAgICB9LAorCisgICAg
X3Jlc2V0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9fc2NyaXB0RGF0YSA9IHt9
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CmluZGV4IDE0MDlmNzQuLjBiMWYwNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcwpAQCAtNjAsNiArNjAsMTUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmZ1bmN0aW9uc1NlbGVjdEVsZW1lbnQuY2xhc3NO
YW1lID0gInN0YXR1cy1iYXItaXRlbSI7CiAgICAgdGhpcy5mdW5jdGlvbnNTZWxlY3RFbGVtZW50
LmlkID0gInNjcmlwdHMtZnVuY3Rpb25zIjsKIAorICAgIHRoaXMuZm9ybWF0QnV0dG9uID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CisgICAgdGhpcy5mb3JtYXRCdXR0b24uY2xh
c3NOYW1lID0gInN0YXR1cy1iYXItaXRlbSI7CisgICAgdGhpcy5mb3JtYXRCdXR0b24uaWQgPSAi
Zm9ybWF0LXNjcmlwdCI7CisgICAgdGhpcy5mb3JtYXRCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkZvcm1hdCBzY3JpcHQuIik7CisgICAgdGhpcy5mb3JtYXRCdXR0b24uYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikpOworICAgIHRoaXMuZm9ybWF0
QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZm9ybWF0U2NyaXB0LmJpbmQo
dGhpcyksIGZhbHNlKTsKKyAgICBpZiAoUHJlZmVyZW5jZXMuZGVidWdNb2RlKQorICAgICAgICB0
aGlzLnRvcFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLmZvcm1hdEJ1dHRvbik7CisKICAgICAv
LyBGSVhNRTogYXBwZW5kIHRoZSBmdW5jdGlvbnMgc2VsZWN0IGVsZW1lbnQgdG8gdGhlIHRvcCBz
dGF0dXMgYmFyIHdoZW4gaXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgLy8gdGhpcy50b3BTdGF0dXNC
YXIuYXBwZW5kQ2hpbGQodGhpcy5mdW5jdGlvbnNTZWxlY3RFbGVtZW50KTsKIApAQCAtODU1LDYg
Kzg2NCwxMiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fdXBkYXRlQmFja0FuZEZvcndhcmRCdXR0b25zKCk7CiAgICAgfSwKIAorICAgIF9m
b3JtYXRTY3JpcHQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLnZpc2libGVW
aWV3ICYmIHRoaXMudmlzaWJsZVZpZXcuZm9ybWF0U2NyaXB0KQorICAgICAgICAgICAgdGhpcy52
aXNpYmxlVmlldy5mb3JtYXRTY3JpcHQoKTsKKyAgICB9LAorCiAgICAgX2VuYWJsZURlYnVnZ2lu
ZzogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2RlYnVnZ2VyRW5hYmxlZCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKaW5kZXggN2E5N2RiMi4u
N2ViN2M3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZp
ZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKQEAg
LTIxOCw2ICsyMTgsMTUgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmNsZWFyTWVzc2FnZXMoKTsKICAgICB9LAogCisgICAg
Zm9ybWF0U2NyaXB0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5yZXNvdXJj
ZS50eXBlICE9PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TY3JpcHQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHZhciBzY3JpcHRzID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuc2NyaXB0c0ZvclVSTCh0aGlzLnJlc291cmNlLnVybCk7CisgICAgICAgIHZhciBzb3VyY2Ug
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5mb3JtYXRTY3JpcHQoc2Ny
aXB0c1swXS5zb3VyY2VJRCk7CisgICAgICAgIHRoaXMuc291cmNlRnJhbWUudXBkYXRlQ29udGVu
dChzb3VyY2UpOworICAgIH0sCisKICAgICBfanVtcFRvU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihp
bmRleCkKICAgICB7CiAgICAgICAgIHZhciBmb3VuZFJhbmdlID0gdGhpcy5fc2VhcmNoUmVzdWx0
c1tpbmRleF07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0
LnFyYyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDJmOTFh
ZGIuLmRiOTBjZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJL
aXQucXJjCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0z
MCw2ICszMCw3IEBACiAgICAgPGZpbGU+RGF0YWJhc2VUYWJsZVZpZXcuanM8L2ZpbGU+CiAgICAg
PGZpbGU+RGF0YUdyaWQuanM8L2ZpbGU+CiAgICAgPGZpbGU+RGVidWdnZXJNb2RlbC5qczwvZmls
ZT4KKyAgICA8ZmlsZT5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzPC9maWxlPgogICAgIDxm
aWxlPkRPTUFnZW50LmpzPC9maWxlPgogICAgIDxmaWxlPkRPTVN0b3JhZ2UuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+RE9NU3RvcmFnZUl0ZW1zVmlldy5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA0MGU3NWVhLi5kMmFmZDdiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC0xNTMsNiArMTUzLDcg
QEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTaG9y
dGN1dHNIZWxwLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJIQVJFbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iQ29va2llUGFyc2VyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGNsYXNzPSJkZXRhY2hlZCI+CiAgICAgPGRpdiBpZD0i
dG9vbGJhciI+CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA5
OGMzOThjLi44NjlhYWY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKQEAgLTUzNSw2ICs1MzUsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rp
b24oKQogCiAgICAgdGhpcy5jc3NNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bCgpOwogICAgIHRoaXMuZGVidWdnZXJNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbCgpOworICAgIHRoaXMuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCh0aGlzLmRlYnVnZ2VyTW9kZWwpOwogCiAg
ICAgdGhpcy5icmVha3BvaW50TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1h
bmFnZXIoKTsKIAo=
</data>
<flag name="review"
          id="67747"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>