<?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>21250</bug_id>
          
          <creation_ts>2008-09-30 12:52:32 -0700</creation_ts>
          <short_desc>Rename updateContents to repaintContentRectangle and make it cross-platform</short_desc>
          <delta_ts>2008-09-30 13:11:31 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>21083</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>93405</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-30 12:52:32 -0700</bug_when>
    <thetext>Rename updateContents to repaintContentRectangle and make it cross-platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93407</commentid>
    <comment_count>1</comment_count>
      <attachid>23949</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-30 12:56:34 -0700</bug_when>
    <thetext>Created attachment 23949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93408</commentid>
    <comment_count>2</comment_count>
      <attachid>23949</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-30 13:01:13 -0700</bug_when>
    <thetext>Comment on attachment 23949
Patch

I don&apos;t understand why Chrome is derived from HostWindow. That doesn&apos;t make sense to me. I could see why Chrome would *have* a HostWindow* stored in it, but it seems really strange to derive it from HostWindow. Maybe the right thing would be private inheritance? Adding these new virtual functions to Chrome makes it harder to understand the purpose of the Chrome class.

This new window-repaint-related stuff seems way too low level to me to be a good addition to ChromeClient, but I guess it already had all this &quot;backing store&quot; stuff in it.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93411</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-30 13:05:51 -0700</bug_when>
    <thetext>Darin:

The point is to allow ScrollView to communiate via an interface in the *platform* layer, even though what really has to happen is that the interface calls out (over in the page layer).

HostWindow &lt;-&gt; Chrome is basically analogous to:

ScrollView &lt;-&gt; FrameView

Right now ScrollView violates the platform/ layer abstraction all over the place by casting itself to FrameView and manually grabbing the ChromeClient.  This new HostWindow object will enable ScrollView to remain a platform/ abstraction.

It may be that there should be a ChromeWindow and ChromeWindowClient instead of a Chrome and ChromeClient, but looking at Chrome, the majority of functions defined on it are window-related.

One final point: the number of functions defined on Chrome should actually *shrink* by the time I&apos;m done with this refactoring, since all of those backing store functions are going to go away (and/or be replaced).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93413</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-30 13:11:31 -0700</bug_when>
    <thetext>Fixed in r37105

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23949</attachid>
            <date>2008-09-30 12:56:34 -0700</date>
            <delta_ts>2008-09-30 13:01:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>25296</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzEwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDgtMDktMzAgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNTAK
KyAgICAgICAgCisgICAgICAgIFJlbmFtZSB1cGRhdGVDb250ZW50cyB0byByZXBhaW50Q29udGVu
dFJlY3RhbmdsZSBhbmQgbWFrZSBpdCBjcm9zcy1wbGF0Zm9ybSBieSBhbHdheXMgc2VuZGluZwor
ICAgICAgICByZXBhaW50cyB1cCB0aHJvdWdoIHRoZSBDaHJvbWVDbGllbnQuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBD
QVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6
CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6cmVwYWludCk6CisgICAgICAg
ICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZXBhaW50KToK
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojpob3N0V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVwYWludENv
bnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICog
cGxhdGZvcm0vSG9zdFdpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJl
Y3RhbmdsZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtUmVw
YWludENvbnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Njcm9sbFZpZXdR
dC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Njcm9sbFZpZXdXaW4uY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxWaWV3OjpwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKToKKwogMjAwOC0wOS0zMCAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9uLU1hYyBi
dWlsZCBmaXhlcy4KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAzNzA4NikKKysr
IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNiAr
MTEzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50
IGR4LCBpbnQgZHksIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsg
fQogCisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVu
dENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpIHsgfQorCiAgICAgdmlydHVhbCB2b2lk
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0
cmluZyYpIHsgfQpJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDExIEBAIENocm9tZTo6fkNo
cm9tZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgpOwogfQogCit2b2lkIENocm9t
ZTo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNvbnRlbnRDaGFuZ2Vk
LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBtX2NsaWVudC0+cmVwYWludCh3aW5kb3dSZWN0LCBj
b250ZW50Q2hhbmdlZCwgaW1tZWRpYXRlKTsKK30KKwogdm9pZCBDaHJvbWU6OnNldFdpbmRvd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAogewogICAgIG1fY2xpZW50LT5zZXRXaW5k
b3dSZWN0KHJlY3QpOwpJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2aXNpb24gMzcwODYpCisrKyBXZWJDb3JlL3BhZ2Uv
Q2hyb21lLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7
IH0KIAorICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCisgICAgICAgIHZpcnR1YWwgdm9p
ZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVk
aWF0ZSA9IGZhbHNlKTsKKwogICAgICAgICB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRS
ZWN0JikgY29uc3Q7CiAgICAgICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgY29uc3Q7CiAKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsOSArMTA4LDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3QgPSAwOwog
CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0ID0gMDsK
KworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHRocmVlIG1ldGhvZHMgYXJlIGRlcHJlY2F0ZWQg
YW5kIHdpbGwgYmUgcmVtb3ZlZCBvbmNlIGFsbCBvZiB0aGUgY2FsbGVycyBoYXZlIGJlZW4KKyAg
ICAgICAgLy8gZWxpbWluYXRlZC4KICAgICAgICAgdmlydHVhbCB2b2lkIGFkZFRvRGlydHlSZWdp
b24oY29uc3QgSW50UmVjdCYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEJhY2tp
bmdTdG9yZShpbnQgZHgsIGludCBkeSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNv
bnN0IEludFJlY3QmIGNsaXBSZWN0KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVC
YWNraW5nU3RvcmUoKSA9IDA7CisgICAgICAgIC8vIEVuZCBkZXByZWNhdGVkIG1ldGhvZHMuCisK
KyAgICAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVu
dENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpID0gMDsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2ln
bmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIApJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDM3
MDg2KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYy
Miw2ICs2MjIsMTQgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IAog
ICAgIGQtPm1faW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSB3YXNJblByb2dyYW1tYXRpY1Njcm9sbDsK
IH0KIAorSG9zdFdpbmRvdyogRnJhbWVWaWV3Ojpob3N0V2luZG93KCkgY29uc3QKK3sKKyAgICBQ
YWdlKiBwYWdlID0gZnJhbWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IDA7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCk7Cit9CisKIGNv
bnN0IHVuc2lnbmVkIGNSZXBhaW50UmVjdFVuaW9uVGhyZXNob2xkID0gMjU7CiAKIHZvaWQgRnJh
bWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByLCBib29sIGlt
bWVkaWF0ZSkKQEAgLTY0NSw3ICs2NTMsNyBAQCB2b2lkIEZyYW1lVmlldzo6cmVwYWludENvbnRl
bnRSZWN0YW5nbGUoCiAgICAgaWYgKCFpbW1lZGlhdGUgJiYgaXNPZmZzY3JlZW4oKSAmJiAhc2hv
dWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRl
Q29udGVudHMociwgaW1tZWRpYXRlKTsKKyAgICBTY3JvbGxWaWV3OjpyZXBhaW50Q29udGVudFJl
Y3RhbmdsZShyLCBpbW1lZGlhdGUpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6YmVnaW5EZWZlcnJl
ZFJlcGFpbnRzKCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgfkZyYW1lVmlldygpOwogCisgICAgdmlydHVhbCBIb3N0V2luZG93KiBo
b3N0V2luZG93KCkgY29uc3Q7CisKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lLmdldCgpOyB9CiAgICAgdm9pZCBjbGVhckZyYW1lKCk7CiAKQEAgLTE2Niw3ICsxNjgs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hTY2hlZHVsZWRFdmVudHMoKTsKICAgICB2
b2lkIHBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsKIAotICAgIHZvaWQgcmVwYWludENvbnRlbnRS
ZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRl
KTsKIAogICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7CiAgICAgSW50U2l6ZSBtX3NpemU7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL0hvc3RXaW5kb3cuaAkocmV2aXNpb24gMzcwODYpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L0hvc3RXaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDE3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW50UmVjdDsKKwogY2xhc3MgSG9zdFdpbmRvdyA6IE5v
bmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICBIb3N0V2luZG93KCkge30KICAgICB2aXJ0dWFsIH5I
b3N0V2luZG93KCkge30KKworICAgIC8vIFRoZSByZXBhaW50IG1ldGhvZCBhc2tzIHRoZSBob3N0
IHdpbmRvdyB0byByZXBhaW50IGEgcmVjdCBpbiB0aGUgd2luZG93J3MgY29vcmRpbmF0ZSBzcGFj
ZS4gIFRoZQorICAgIC8vIGNvbnRlbnRDaGFuZ2VkIGJvb2xlYW4gaW5kaWNhdGVzIHdoZXRoZXIg
b3Igbm90IHRoZSBXZWIgcGFnZSBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKG9yIGlmIGEgcmVw
YWludAorICAgIC8vIG9mIHVuY2hhbmdlZCBjb250ZW50IGlzIGJlaW5nIHJlcXVlc3RlZCkuCisg
ICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5n
ZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMzcwODYpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogCisj
aW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgpA
QCAtMzQwLDYgKzM0MSwyMSBAQCB2b2lkIFNjcm9sbFZpZXc6OmZyYW1lUmVjdHNDaGFuZ2VkKCkg
Y29uCiAgICAgICAgICgqY3VycmVudCktPmZyYW1lUmVjdHNDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQg
U2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgcmVjdCwg
Ym9vbCBub3cpCit7CisgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQoIXBhcmVudCgpKTsKKworICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKSB7Cisg
ICAgICAgIHBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUocmVjdCwgbm93KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGhvc3RXaW5kb3coKS0+cmVwYWludChjb250ZW50c1Rv
V2luZG93KHJlY3QpLCB0cnVlLCBub3cpOworfQorCiAjaWYgIVBMQVRGT1JNKE1BQykKIHZvaWQg
U2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRDYW5CbGl0T25TY3JvbGwoKQogewpAQCAtMzgxLDYgKzM5
NywxMCBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpCiB7CiAgICAg
cmV0dXJuIHRydWU7CiB9CisKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVu
dFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiwgYm9vbCBub3cpCit7Cit9CiAjZW5kaWYKIAogfQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgY2xhc3Mg
d3hTY3JvbGxXaW5FdmVudDsKIC8vIFBvcnQgYXV0aG9ycyBzaG91bGQgd2FpdCB1bnRpbCB0aGlz
IHJlZmFjdG9yaW5nIGlzIGNvbXBsZXRlIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGltcGxlbWVudCB0
aGlzIGludGVyZmFjZS4KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSG9zdFdpbmRvdzsK
IGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKIGNsYXNzIFNjcm9sbGJhcjsKIApAQCAtNjIsNiAr
NjMsMTAgQEAgcHVibGljOgogICAgIFNjcm9sbFZpZXcoKTsKICAgICB+U2Nyb2xsVmlldygpOwog
CisgICAgLy8gVGhlIHdpbmRvdyB0aGF0cyBob3N0cyB0aGUgU2Nyb2xsVmlldy4gIFRoZSBTY3Jv
bGxWaWV3IHdpbGwgY29tbXVuaWNhdGUgc2Nyb2xscyBhbmQgcmVwYWludHMgdG8gdGhlCisgICAg
Ly8gaG9zdCB3aW5kb3cgaW4gdGhlIHdpbmRvdydzIGNvb3JkaW5hdGUgc3BhY2UuCisgICAgdmly
dHVhbCBIb3N0V2luZG93KiBob3N0V2luZG93KCkgY29uc3QgPSAwOworCiAgICAgLy8gTWV0aG9k
cyBmb3IgY2hpbGQgbWFuaXB1bGF0aW9uIGFuZCBpbnNwZWN0aW9uLgogICAgIGNvbnN0IEhhc2hT
ZXQ8V2lkZ2V0Kj4qIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gJm1fY2hpbGRyZW47IH0KICAg
ICB2b2lkIGFkZENoaWxkKFdpZGdldCopOwpAQCAtMTgwLDcgKzE4NSw3IEBAIHB1YmxpYzoKICNl
bmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0
JiwgYm9vbCBub3cgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVj
dGFuZ2xlKGNvbnN0IEludFJlY3QmLCBib29sIG5vdyA9IGZhbHNlKTsKICAgICB2b2lkIHVwZGF0
ZVdpbmRvd1JlY3QoY29uc3QgSW50UmVjdCYsIGJvb2wgbm93ID0gZmFsc2UpOwogcHVibGljOgog
ICAgIHZvaWQgdXBkYXRlKCk7CkBAIC0yMTIsNyArMjE3LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IHBsYXRmb3JtU2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKICAgICBib29sIHBs
YXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHZv
aWQgcGxhdGZvcm1TZXRTY3JvbGxiYXJzU3VwcHJlc3NlZChib29sIHJlcGFpbnRPblVuc3VwcHJl
c3MpOwotICAgIAorICAgIHZvaWQgcGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25z
dCBJbnRSZWN0JiwgYm9vbCBub3cpOworCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkIF9f
T0JKQ19fCiBwdWJsaWM6CiAgICAgTlNWaWV3KiBkb2N1bWVudFZpZXcoKSBjb25zdDsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCShyZXZpc2lvbiAzNzA4NikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yODUsMjggKzI4NSw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3Rr
QWQKICAgICB1cGRhdGVTY3JvbGxiYXJzKG1fc2Nyb2xsT2Zmc2V0KTsKIH0KIAotdm9pZCBTY3Jv
bGxWaWV3Ojp1cGRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIG5v
dykKLXsKLSAgICBpZiAodXBkYXRlUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIEludFBvaW50IHdpbmRvd1BvaW50ID0gY29udGVudHNUb1dpbmRvdyh1cGRhdGVSZWN0Lmxv
Y2F0aW9uKCkpOwotICAgIEludFJlY3QgY29udGFpbmluZ1dpbmRvd1JlY3QgPSB1cGRhdGVSZWN0
OwotICAgIGNvbnRhaW5pbmdXaW5kb3dSZWN0LnNldExvY2F0aW9uKHdpbmRvd1BvaW50KTsKLQot
ICAgIEdka1JlY3RhbmdsZSByZWN0ID0gY29udGFpbmluZ1dpbmRvd1JlY3Q7Ci0gICAgR2RrV2lu
ZG93KiB3aW5kb3cgPSBHVEtfV0lER0VUKGNvbnRhaW5pbmdXaW5kb3coKSktPndpbmRvdzsKLQot
ICAgIGlmICh3aW5kb3cpCi0gICAgICAgIGdka193aW5kb3dfaW52YWxpZGF0ZV9yZWN0KHdpbmRv
dywgJnJlY3QsIHRydWUpOwotCi0gICAgLy8gQ2FjaGUgdGhlIGRpcnR5IHNwb3QuCi0gICAgYWRk
VG9EaXJ0eVJlZ2lvbihjb250YWluaW5nV2luZG93UmVjdCk7Ci0KLSAgICBpZiAobm93ICYmIHdp
bmRvdykKLSAgICAgICAgZ2RrX3dpbmRvd19wcm9jZXNzX3VwZGF0ZXMod2luZG93LCB0cnVlKTsK
LX0KLQogdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGUoKQogewogICAgIEFTU0VSVChjb250YWluaW5n
V2luZG93KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCShyZXZp
c2lvbiAzNzA4NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE1NiwxMyArMTU2LDE3IEBAIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZv
cm1TY3JvbGwoU2Nyb2xsRGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3
Ojp1cGRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIG5vdykKK3ZvaWQgU2Ny
b2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiBy
ZWN0LCBib29sIG5vdykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAg
ICBOU1ZpZXcgKnZpZXcgPSBkb2N1bWVudFZpZXcoKTsKICAgICBOU1JlY3QgdmlzaWJsZVJlY3Qg
PSB2aXNpYmxlQ29udGVudFJlY3QoKTsKIAorICAgIC8vIEZJWE1FOiBJIGRvbid0IHRoaW5rIHRo
aXMgaW50ZXJzZWN0aW9uIGlzIG5lY2Vzc2FyeSBhbnkgbW9yZSBub3cgdGhhdAorICAgIC8vIHNl
bGVjdGlvbiBkb2Vzbid0IGNhbGwgdGhpcyBtZXRob2QgZGlyZWN0bHkgKGJ1dCBoYXMgdG8gZ28g
dGhyb3VnaCBGcmFtZVZpZXcncworICAgIC8vIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlLCB3aGlj
aCBkb2VzIHRoZSBpbnRlcnNlY3Rpb24gdGVzdCBhbHNvKS4gIExlYXZpbmcgaXQgaW4KKyAgICAv
LyBmb3Igbm93IHVudGlsIEknbSBzdXJlLgogICAgIC8vIENoZWNraW5nIGZvciByZWN0IHZpc2li
aWxpdHkgaXMgYW4gaW1wb3J0YW50IG9wdGltaXphdGlvbiBmb3IgdGhlIGNhc2Ugb2YKICAgICAv
LyBTZWxlY3QgQWxsIG9mIGEgbGFyZ2UgZG9jdW1lbnQuIEFwcEtpdCBkb2VzIG5vdCBkbyB0aGlz
IGNoZWNrLCBhbmQgc28gZW5kcwogICAgIC8vIHVwIGJ1aWxkaW5nIGEgbGFyZ2UgY29tcGxpY2F0
ZWQgTlNSZWdpb24gaWYgd2UgZG9uJ3QgcGVyZm9ybSB0aGUgY2hlY2suCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1Njcm9sbFZpZXdRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwCShyZXZpc2lvbiAzNzA4NikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDIyICsxODAs
NiBAQCBTY3JvbGxWaWV3Ojp+U2Nyb2xsVmlldygpCiAgICAgZGVsZXRlIG1fZGF0YTsKIH0KIAot
dm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29s
IG5vdykKLXsKLSAgICBpZiAocmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IEludFBvaW50IHdpbmRvd1BvaW50ID0gY29udGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkp
OwotICAgIEludFJlY3QgY29udGFpbmluZ1dpbmRvd1JlY3QgPSByZWN0OwotICAgIGNvbnRhaW5p
bmdXaW5kb3dSZWN0LnNldExvY2F0aW9uKHdpbmRvd1BvaW50KTsKLQotICAgIC8vIENhY2hlIHRo
ZSBkaXJ0eSBzcG90LgotICAgIGFkZFRvRGlydHlSZWdpb24oY29udGFpbmluZ1dpbmRvd1JlY3Qp
OwotCi0gICAgaWYgKG5vdykKLSAgICAgICAgdXBkYXRlQmFja2luZ1N0b3JlKCk7Ci19Ci0KIHZv
aWQgU2Nyb2xsVmlldzo6dXBkYXRlKCkKIHsKICAgICBRV2lkZ2V0KiBuYXRpdmUgPSBwbGF0Zm9y
bVdpZGdldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsVmlld1dpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsVmlld1dpbi5jcHAJKHJl
dmlzaW9uIDM3MDg2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsVmlld1dpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwMSwxOCArMjAxLDYgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVJlbW92ZUNoaWxkKFdpZAogewogfQogCi12b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZUNvbnRl
bnRzKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93KQotewotICAgIGlmIChyZWN0LmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSW50UG9pbnQgd2luZG93UG9pbnQgPSBjb250
ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSk7Ci0gICAgSW50UmVjdCBjb250YWluaW5nV2lu
ZG93UmVjdCA9IHJlY3Q7Ci0gICAgY29udGFpbmluZ1dpbmRvd1JlY3Quc2V0TG9jYXRpb24od2lu
ZG93UG9pbnQpOwotCi0gICAgdXBkYXRlV2luZG93UmVjdChjb250YWluaW5nV2luZG93UmVjdCwg
bm93KTsKLX0KLQogdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVXaW5kb3dSZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QsIGJvb2wgbm93KQogewogICAgIFJFQ1QgY29udGFpbmluZ1dpbmRvd1JlY3RXaW4g
PSByZWN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93eC9TY3JvbGxWaWV3V3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvU2Nyb2xsVmlld1d4LmNwcAkocmV2aXNpb24g
MzcwODYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNyw3ICsxMzcsNyBAQCBTY3JvbGxWaWV3Ojp+U2Nyb2xsVmlldygpCiAgICAg
ZGVsZXRlIG1fZGF0YTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVDb250ZW50cyhjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIG5vdykKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZv
cm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29s
IG5vdykKIHsKICAgICAvLyB3ZSBuZWVkIHRvIGNvbnZlcnQgY29vcmRpbmF0ZXMgdG8gc2Nyb2xs
ZWQgcG9zaXRpb24KICAgICB3eFJlY3QgY29udGVudHNSZWN0ID0gdXBkYXRlUmVjdDsKSW5kZXg6
IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzEwNCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMDktMzAgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5j
b20+CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEy
NTAKKyAgICAgICAgCisgICAgICAgIFJlbmFtZSB1cGRhdGVDb250ZW50cyB0byByZXBhaW50Q29u
dGVudFJlY3RhbmdsZSBhbmQgbWFrZSBpdCBjcm9zcy1wbGF0Zm9ybSBieSBhbHdheXMgc2VuZGlu
ZworICAgICAgICByZXBhaW50cyB1cCB0aHJvdWdoIHRoZSBDaHJvbWVDbGllbnQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgLi4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJlcGFpbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDA4LTA5LTE2ICBB
bHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAgICAgICBTdWdnZXN0ZWQgYnkgRGF2ZSBI
eWF0dC4KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHAJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNiArMjU5LDI2IEBAIEludFJl
Y3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNpemVyUmVjdCgKICAgICByZXR1cm4gSW50UmVjdCgp
OwogfQogCit2b2lkIENocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiB3aW5kb3dSZWN0LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSkKK3sKKyAg
ICAvLyBObyBkb3VibGUgYnVmZmVyLgorICAgIGlmICghY29udGVudENoYW5nZWQgfHwgIW1fd2Vi
VmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgR3RrV2lkZ2V0KiB3aW5kb3dXaWRnZXQgPSBn
dGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKG1fd2ViVmlldykpOworICAgIGlmICgh
d2luZG93V2lkZ2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBHZGtSZWN0YW5nbGUgcmVjdCA9
IHdpbmRvd1JlY3Q7CisgICAgR2RrV2luZG93KiB3aW5kb3cgPSBHVEtfV0lORE9XKHdpbmRvd1dp
ZGdldCk7CisKKyAgICBpZiAod2luZG93KSB7CisgICAgICAgIGdka193aW5kb3dfaW52YWxpZGF0
ZV9yZWN0KHdpbmRvdywgJnJlY3QsIHRydWUpOworICAgICAgICBpZiAoaW1tZWRpYXRlKQorICAg
ICAgICAgICAgZ2RrX3dpbmRvd19wcm9jZXNzX3VwZGF0ZXMod2luZG93LCB0cnVlKTsKKyAgICB9
Cit9CisKIHZvaWQgQ2hyb21lQ2xpZW50OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IEludFJlY3Qm
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNiAr
ODcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEJh
Y2tpbmdTdG9yZShpbnQgZHgsIGludCBkeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xs
Vmlld1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlKTsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlm
aWVyRmxhZ3MpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdlYkNv
cmU6OlN0cmluZyYpOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3MTA0KQorKysgV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOC0wOS0zMCAgRGF2ZSBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTI1MAorICAgICAgICAKKyAgICAgICAgUmVuYW1lIHVwZGF0ZUNv
bnRlbnRzIHRvIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlIGFuZCBtYWtlIGl0IGNyb3NzLXBsYXRm
b3JtIGJ5IGFsd2F5cyBzZW5kaW5nCisgICAgICAgIHJlcGFpbnRzIHVwIHRocm91Z2ggdGhlIENo
cm9tZUNsaWVudC4KKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpyZXBhaW50KToKKwogMjAwOC0wOS0zMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZSBhbmQgQWRhbSBS
b2Jlbi4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAkocmV2aXNpb24gMzcwODYpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsQmFja2luZ1N0b3JlKGludCBkeCwgaW50IGR5LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBzY3JvbGxWaWV3UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xp
cFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoKTsKICAgICAKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250
ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CisKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U3RhdHVzYmFyVGV4dChjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkocmV2aXNpb24gMzcwODYpCisrKyBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAz
LDYgKzQwMywxMCBAQCBJbnRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlCiAg
ICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoW1ttX3dlYlZpZXcgd2luZG93XSBfZ3Jvd0JveFJl
Y3RdKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGJvb2wsIGJvb2wpCit7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRU
b0RpcnR5UmVnaW9uKGNvbnN0IEludFJlY3QmKQogewogfQpJbmRleDogV2ViS2l0L3F0L0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNzEwNCkK
KysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAor
MjAwOC0wOS0zMCAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1MAorICAgICAgICAKKyAgICAg
ICAgUmVuYW1lIHVwZGF0ZUNvbnRlbnRzIHRvIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlIGFuZCBt
YWtlIGl0IGNyb3NzLXBsYXRmb3JtIGJ5IGFsd2F5cyBzZW5kaW5nCisgICAgICAgIHJlcGFpbnRz
IHVwIHRocm91Z2ggdGhlIENocm9tZUNsaWVudC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpyZXBhaW50KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDA4LTA5LTI5ICBHdW5uYXIg
U2xldHRhICA8Z3VubmFyQHRyb2xsdGVjaC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAko
cmV2aXNpb24gMzcwODYpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTYsNiArMjk2LDI0IEBAIEludFJlY3QgQ2hyb21l
Q2xpZW50UXQ6OndpbmRvd1Jlc2l6ZXJSZWMKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCit2
b2lkIENocm9tZUNsaWVudFF0OjpyZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRv
d1JlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wpCit7CisgICAgLy8gTm8gZG91YmxlIGJ1
ZmZlci4KKyAgICBpZiAoIWNvbnRlbnRDaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBR
V2lkZ2V0KiB2aWV3ID0gbV93ZWJQYWdlLT52aWV3KCk7CisgICAgaWYgKHZpZXcpIHsKKyAgICAg
ICAgUVJlY3QgcmVjdChyKTsKKyAgICAgICAgcmVjdCA9IHJlY3QuaW50ZXJzZWN0ZWQoUVJlY3Qo
UVBvaW50KDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7CisgICAgICAgIGlmICgh
ci5pc0VtcHR5KCkpCisgICAgICAgICAgICB2aWV3LT51cGRhdGUocik7CisgICAgfSBlbHNlCisg
ICAgICAgIGVtaXQgbV93ZWJQYWdlLT5yZXBhaW50UmVxdWVzdGVkKHIpOworICAgIAorICAgIC8v
IEZJWE1FOiBUaGVyZSBpcyBubyAiaW1tZWRpYXRlIiBzdXBwb3J0LgorfQorCiB2b2lkIENocm9t
ZUNsaWVudFF0OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgUVdp
ZGdldCogdmlldyA9IG1fd2ViUGFnZS0+dmlldygpOwpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsx
MDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxC
YWNraW5nU3RvcmUoaW50LCBpbnQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoKTsKIAorICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9v
bCBpbW1lZGlhdGUgPSBmYWxzZSk7CisKICAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdz
KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmKTsKSW5k
ZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdl
TG9nCShyZXZpc2lvbiAzNzEwNCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDgtMDktMzAgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBs
ZS5jb20+CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEyNTAKKyAgICAgICAgCisgICAgICAgIFJlbmFtZSB1cGRhdGVDb250ZW50cyB0byByZXBhaW50
Q29udGVudFJlY3RhbmdsZSBhbmQgbWFrZSBpdCBjcm9zcy1wbGF0Zm9ybSBieSBhbHdheXMgc2Vu
ZGluZworICAgICAgICByZXBhaW50cyB1cCB0aHJvdWdoIHRoZSBDaHJvbWVDbGllbnQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZXBh
aW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnJlcGFpbnQpOgorICAgICAgICAq
IFdlYlZpZXcuaDoKKwogMjAwOC0wOS0yOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXQvd2luL1dl
YlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9u
IDM3MDg2KQorKysgV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIx
LDYgKzYyMSwxNiBAQCB2b2lkIFdlYlZpZXc6OmNsb3NlKCkKICAgICBkZWxldGVCYWNraW5nU3Rv
cmUoKTsKIH0KIAordm9pZCBXZWJWaWV3OjpyZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHdpbmRvd1JlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlKQoreworICAg
IFJFQ1QgcmVjdCA9IHdpbmRvd1JlY3Q7CisgICAgOjpJbnZhbGlkYXRlUmVjdChtX3ZpZXdXaW5k
b3csICZyZWN0LCBmYWxzZSk7CisgICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQorICAgICAgICBhZGRU
b0RpcnR5UmVnaW9uKHdpbmRvd1JlY3QpOworICAgIGlmIChpbW1lZGlhdGUpCisgICAgICAgIDo6
VXBkYXRlV2luZG93KG1fdmlld1dpbmRvdyk7Cit9CisKIHZvaWQgV2ViVmlldzo6ZGVsZXRlQmFj
a2luZ1N0b3JlKCkKIHsKICAgICBwZW5kaW5nRGVsZXRlQmFja2luZ1N0b3JlU2V0LnJlbW92ZSh0
aGlzKTsKSW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
aW4vV2ViVmlldy5oCShyZXZpc2lvbiAzNzA4NikKKysrIFdlYktpdC93aW4vV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03MTEsNiArNzExLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xs
QmFja2luZ1N0b3JlKFdlYkNvcmU6OkZyYW1lVmlldyosIGludCBkeCwgaW50IGR5LCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxWaWV3UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpOwogICAgIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKFdlYkNvcmU6OkZyYW1lVmll
dyosIEhEQywgYm9vbCBiYWNraW5nU3RvcmVDb21wbGV0ZWx5RGlydHkpOwogICAgIHZvaWQgZGVs
ZXRlQmFja2luZ1N0b3JlKCk7CisgICAgdm9pZCByZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKICAgICB2
b2lkIGZyYW1lUmVjdChSRUNUKiByZWN0KTsKICAgICB2b2lkIGNsb3NlV2luZG93KCk7CiAgICAg
dm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDM3MDg2KQorKysgV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTcs
NiArNDE3LDEyIEBAIEludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNpemVyUmUKICAg
ICByZXR1cm4gaW50UmVjdDsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29u
c3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlh
dGUpCit7CisgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKKyAg
ICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgY29udGVudENoYW5nZWQsIGltbWVkaWF0
ZSk7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IElu
dFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICBtX3dlYlZpZXctPmFkZFRvRGlydHlSZWdpb24oZGly
dHlSZWN0KTsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gMzcwODYpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2ICs5MSw5IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lk
IHJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJv
b2wgaW1tZWRpYXRlID0gZmFsc2UpOworCiAgICAgdmlydHVhbCB2b2lkIGFkZFRvRGlydHlSZWdp
b24oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxCYWNr
aW5nU3RvcmUoaW50IGR4LCBpbnQgZHksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFZp
ZXdSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpJbmRleDogV2ViS2l0L3d4L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNzEwNCkKKysrIFdlYktp
dC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOC0wOS0z
MCAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1MAorICAgICAgICAKKyAgICAgICAgUmVuYW1l
IHVwZGF0ZUNvbnRlbnRzIHRvIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlIGFuZCBtYWtlIGl0IGNy
b3NzLXBsYXRmb3JtIGJ5IGFsd2F5cyBzZW5kaW5nCisgICAgICAgIHJlcGFpbnRzIHVwIHRocm91
Z2ggdGhlIENocm9tZUNsaWVudC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnJlcGFpbnQpOgorICAgICAgICAqIFdlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAwOC0wOS0yNiAgS2V2aW4gT2xsaXZpZXIgIDxr
ZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICB3eCBidWlsZCBmaXhlcyBhZnRlciBX
aWRnZXQvU2Nyb2xsVmlldyBjaGFuZ2VzLgpJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmNwcAkocmV2aXNpb24gMzcwODYpCisrKyBXZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Myw2ICsyODMs
MTEgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRXeDo6d2luZG93UmVzaXplclJlYwogICAgIHJldHVy
biBJbnRSZWN0KCk7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcGFpbnQoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwogdm9pZCBDaHJvbWVDbGllbnRXeDo6YWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBJbnRSZWN0JikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oCShyZXZpc2lvbiAzNzA4NikKKysrIFdlYktpdC93eC9XZWJLaXRTdXBw
b3J0L0Nocm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50IGR4LCBpbnQgZHks
IGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIAorICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlKTsKKwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmKTsK
</data>
<flag name="review"
          id="10812"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>