<?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>90758</bug_id>
          
          <creation_ts>2012-07-09 00:14:21 -0700</creation_ts>
          <short_desc>Refactoring metadata of BitmapImage.</short_desc>
          <delta_ts>2012-08-08 19:37:18 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          <dependson>90443</dependson>
          <blocked>90375</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gram</cc>
    
    <cc>skyul</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>664688</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-09 00:14:21 -0700</bug_when>
    <thetext>There is no precise definition of FrameData&apos;s metadata. So I assume the metadata as a combination of m_orientation, m_duration, and m_hasAlpha. This definition works fine because currently there is no method that uses m_haveMetadata on its purpose.

This patch contains two changes:
    
1. Remove FrameData::m_haveMetadata for readability.
Only BitmapImage::dataChanged uses m_haveMetadata in order to check whether the frame is cleared or not, and it is enough to check whether FrameData::m_frame is 0.
    
2. Don&apos;t decode again if metadata exist.
If the indexed frame was once decoded completely and cleared by destroyDecodedData(), We don&apos;t need to decode again in order to know metadata because destroyDecodedData() does not reset the metadata. See destroyDecodedData().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664704</commentid>
    <comment_count>1</comment_count>
      <attachid>151202</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-09 00:45:12 -0700</bug_when>
    <thetext>Created attachment 151202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665623</commentid>
    <comment_count>2</comment_count>
      <attachid>151426</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-10 03:28:55 -0700</bug_when>
    <thetext>Created attachment 151426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665626</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-10 03:33:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=151426) [details]
&gt; Patch

Add &quot;m_frames[0].m_isComplete = true&quot; in BitmapImage(NativeImagePtr, ImageObserver* = 0).
BitmapImage(NativeImagePtr, ImageObserver* = 0) is implemented by each platform, and most of them does not clarify &quot;m_frames[0].m_isComplete = true&quot; except for VG port.
BitmapImage(NativeImagePtr, ImageObserver* = 0) means to create new image with a complete platform image, so &quot;m_frames[0].m_isComplete = true&quot; is proper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665703</commentid>
    <comment_count>4</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-10 06:17:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Created an attachment (id=151426) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Add &quot;m_frames[0].m_isComplete = true&quot; in BitmapImage(NativeImagePtr, ImageObserver* = 0).
&gt; BitmapImage(NativeImagePtr, ImageObserver* = 0) is implemented by each platform, and most of them does not clarify &quot;m_frames[0].m_isComplete = true&quot; except for VG port.
&gt; BitmapImage(NativeImagePtr, ImageObserver* = 0) means to create new image with a complete platform image, so &quot;m_frames[0].m_isComplete = true&quot; is proper.

I am not sure if this change should belong to this patch because m_isComplete is not a metadata by our definition. We also need to explain more about the consequences of this change. e.g., How does this change impact parallel image decoders?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666451</commentid>
    <comment_count>5</comment_count>
      <attachid>151620</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-11 00:32:50 -0700</bug_when>
    <thetext>Created attachment 151620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666453</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-11 00:34:31 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Created an attachment (id=151426) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Add &quot;m_frames[0].m_isComplete = true&quot; in BitmapImage(NativeImagePtr, ImageObserver* = 0).
&gt; &gt; BitmapImage(NativeImagePtr, ImageObserver* = 0) is implemented by each platform, and most of them does not clarify &quot;m_frames[0].m_isComplete = true&quot; except for VG port.
&gt; &gt; BitmapImage(NativeImagePtr, ImageObserver* = 0) means to create new image with a complete platform image, so &quot;m_frames[0].m_isComplete = true&quot; is proper.
&gt; 
&gt; I am not sure if this change should belong to this patch because m_isComplete is not a metadata by our definition. We also need to explain more about the consequences of this change. e.g., How does this change impact parallel image decoders?

Ok. I explain more detail about m_isComplete in ChangeLog.

3. Set m_isComplete to true in BitmapImage(NativeImagePtr, ImageObserver*).
This constructor creates a BitmapImage from a platform specific NativeImagePtr.
It sets m_frame of the first frame to the given NativeImagePtr.
The BitmapImage created does not need decoding because decoding is already done.
So, it is proper to set m_isComplete to true. Currently, only OpenVG
port sets m_isComplete to true.

The third change is needed for parallel image decoders. Currently,
BitmapImage checks only m_frame in order to determine whether decoding
is needed or not. But after parallel image decoders are landed,
BitmapImage also needs to check m_isComplete. If m_isComplete is false,
BitmapImage will try to decode again, and it can&apos;t actually decode
because the BitmapImage created from a NativeImagePtr does not have
encoded data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666597</commentid>
    <comment_count>7</comment_count>
      <attachid>151620</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-11 03:15:37 -0700</bug_when>
    <thetext>Comment on attachment 151620
Patch

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

&gt; Source/WebCore/platform/graphics/BitmapImage.h:108
&gt;      NativeImagePtr m_frame;

Doesn&apos;t make sense to use the a ImageFrameData object here as a member instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666599</commentid>
    <comment_count>8</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-11 03:16:39 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 151620 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151620&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/BitmapImage.h:108
&gt; &gt;      NativeImagePtr m_frame;
&gt; 
&gt; Doesn&apos;t make sense to use the a ImageFrameData object here as a member instead?

I mean ImageFrameData from the patch of the bug #90443.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666621</commentid>
    <comment_count>9</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-11 03:52:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 151620 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151620&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/BitmapImage.h:108
&gt; &gt;      NativeImagePtr m_frame;
&gt; 
&gt; Doesn&apos;t make sense to use the a ImageFrameData object here as a member instead?

Yes, we can use ImageFrameData as a member instead. But then member references become too verbose. For example, m_frames[i].m_isComplete becomes m_frames[i].m_imageFrameData.m_isComplete.

Also because these two classes are used for different purposes, we didn&apos;t want to embed ImageFrameData in Bitmap&apos;s FrameData.

So we chose to duplicate members here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666664</commentid>
    <comment_count>10</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-11 04:48:42 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Yes, we can use ImageFrameData as a member instead. But then member references become too verbose. For example, m_frames[i].m_isComplete becomes m_frames[i].m_imageFrameData.m_isComplete.

We can avoid the verbosity by adding member access functions to the class, let&apos;s listen other&apos;s opinions.
 
&gt; Also because these two classes are used for different purposes, we didn&apos;t want to embed ImageFrameData in Bitmap&apos;s FrameData.
&gt; 
&gt; So we chose to duplicate members here.

Oh, I see. Hmm we have 3 slightly different instances of this member group: FrameData, ImageFrameData, ParallelFrameData. Did you consider to merge them somehow? Or would it increase the complexity too much and mix things that attend to different purposes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667196</commentid>
    <comment_count>11</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-11 16:21:36 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Yes, we can use ImageFrameData as a member instead. But then member references become too verbose. For example, m_frames[i].m_isComplete becomes m_frames[i].m_imageFrameData.m_isComplete.
&gt; 
&gt; We can avoid the verbosity by adding member access functions to the class, let&apos;s listen other&apos;s opinions.

If we can remove the verbosity by adding member functions, then I think it is okay to use ImageFrameData as a member in FrameData.

&gt; 
&gt; &gt; Also because these two classes are used for different purposes, we didn&apos;t want to embed ImageFrameData in Bitmap&apos;s FrameData.
&gt; &gt; 
&gt; &gt; So we chose to duplicate members here.
&gt; 
&gt; Oh, I see. Hmm we have 3 slightly different instances of this member group: FrameData, ImageFrameData, ParallelFrameData. Did you consider to merge them somehow? Or would it increase the complexity too much and mix things that attend to different purposes?

ImageFrameData is used to pass the decoded image between ImageSoure and its clients while FrameData is used by BitmapImage to cache the decoded image.

We originally used one class for both FrameData and ImageFrameData, but it increased the complexity too much because the life cycles of these two classes were different. So we chose to use two separate classes.

However, it is okay to use ImageFrameData as a member in FrameData because FrameData is usually initialized by FrameData::setFromImageFrameData(const ImageFrameData&amp;) and it is natural to keep a copy of ImageFrameData in FrameData.

ParallelFrameData is used to pass a segment of decoded data from the decoder thread to the main thread. Because it is used internally only in ParallelImageDecoder and its members are different (the decoded segment instead of a native image pointer), we think it is better to leave it as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667201</commentid>
    <comment_count>12</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-11 16:27:39 -0700</bug_when>
    <thetext>BTW, I admit that the class names such FrameData, ImageFrameData, ParallelFrameData and ImageFrame are quite confusing because they serve for slightly different purposes with almost the same name. We need to come up with better names here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671827</commentid>
    <comment_count>13</comment_count>
      <attachid>152894</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-17 18:04:01 -0700</bug_when>
    <thetext>Created attachment 152894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671830</commentid>
    <comment_count>14</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-07-17 18:06:53 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=152894) [details]
&gt; Patch

Rebased to the latest revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688803</commentid>
    <comment_count>15</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-06 22:00:58 -0700</bug_when>
    <thetext>We are rewriting the preparation patches for async image decoding, so this bug is of no use.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151202</attachid>
            <date>2012-07-09 00:45:12 -0700</date>
            <delta_ts>2012-07-10 03:28:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90758-20120709164510.patch</filename>
            <type>text/plain</type>
            <size>16085</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWMwNmYzNDFiNGRlYjRm
NmUzNjk1ZjZhY2I3NDE4M2Q4MzQyMTg1ZC4uMDAwYzZmOTA3Y2FjZTM2ZmRhOGVhOTRiNGJiMGUy
ZjUyZjdkNjFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA3LTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFJlZmFjdG9y
aW5nIG1ldGFkYXRhIG9mIEJpdG1hcEltYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA3NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBwcmVjaXNlIGRlZmluaXRpb24gb2YgRnJh
bWVEYXRhJ3MgbWV0YWRhdGEuIFNvIEkgYXNzdW1lIHRoZSBtZXRhZGF0YQorICAgICAgICBhcyBh
IGNvbWJpbmF0aW9uIG9mIG1fb3JpZW50YXRpb24sIG1fZHVyYXRpb24sIGFuZCBtX2hhc0FscGhh
LiBUaGlzIGRlZmluaXRpb24KKyAgICAgICAgd29ya3MgZmluZSBiZWNhdXNlIGN1cnJlbnRseSB0
aGVyZSBpcyBubyBtZXRob2QgdGhhdCB1c2VzIG1faGF2ZU1ldGFkYXRhIG9uIGl0cworICAgICAg
ICBwdXJwb3NlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGFpbnMgdHdvIGNoYW5nZXM6CisK
KyAgICAgICAgMS4gUmVtb3ZlIEZyYW1lRGF0YTo6bV9oYXZlTWV0YWRhdGEgZm9yIHJlYWRhYmls
aXR5LgorICAgICAgICBPbmx5IEJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCB1c2VzIG1faGF2ZU1l
dGFkYXRhIGluIG9yZGVyIHRvIGNoZWNrIHdoZXRoZXIgdGhlCisgICAgICAgIGZyYW1lIGlzIGNs
ZWFyZWQgb3Igbm90LCBhbmQgaXQgaXMgZW5vdWdoIHRvIGNoZWNrIHdoZXRoZXIgRnJhbWVEYXRh
OjptX2ZyYW1lIGlzCisgICAgICAgIDAuCisKKyAgICAgICAgMi4gRG9uJ3QgZGVjb2RlIGFnYWlu
IGlmIG1ldGFkYXRhIGV4aXN0LgorICAgICAgICBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25j
ZSBkZWNvZGVkIGNvbXBsZXRlbHkgYW5kIGNsZWFyZWQgYnkKKyAgICAgICAgZGVzdHJveURlY29k
ZWREYXRhKCksIFdlIGRvbid0IG5lZWQgdG8gZGVjb2RlIGFnYWluIGluIG9yZGVyIHRvIGtub3cg
bWV0YWRhdGEKKyAgICAgICAgYmVjYXVzZSBkZXN0cm95RGVjb2RlZERhdGEoKSBkb2VzIG5vdCBy
ZXNldCB0aGUgbWV0YWRhdGEuIFNlZQorICAgICAgICBkZXN0cm95RGVjb2RlZERhdGEoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
ZnJhbWVJc0NvbXBsZXRlQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
ZnJhbWVEdXJhdGlvbkF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZy
YW1lSGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFt
ZU9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6c2V0RnJvbUltYWdlRnJhbWVEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAoRnJhbWVEYXRhKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZURhdGE6
OkltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKEltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZURhdGE6OmNsZWFyRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpj
bGVhckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
SW1hZ2U6OkJpdG1hcEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0lt
YWdlU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlV2luQ0UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93eC9JbWFnZVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xl
YXJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgor
CiAyMDEyLTA3LTAzICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgog
CiAgICAgICAgIFByZXBhcmUgZm9yIHBhcmFsbGVsIGltYWdlIGRlY29kZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggM2Q2MzQ4
YTE2Y2NjZGZiZGVhMDFkZWNhNDQwNjc5YmI5YzE5MGQzZC4uMGQxYzBhMDVjNDJhMDQ0NmYzZTg1
MjA5MTdkYWNjOThlOGM5MDE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgQml0bWFwSW1h
Z2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICAvLyBOT1RFOiBE
b24ndCBjYWxsIGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKSBoZXJlLCB0aGF0IHdpbGwgdHJ5IHRv
CiAgICAgICAgIC8vIGRlY29kZSBhbnkgdW5jYWNoZWQgKGkuZS4gbmV2ZXItZGVjb2RlZCBvcgog
ICAgICAgICAvLyBjbGVhcmVkLW9uLWEtcHJldmlvdXMtcGFzcykgZnJhbWVzIQotICAgICAgICBp
ZiAobV9mcmFtZXNbaV0ubV9oYXZlTWV0YWRhdGEgJiYgIW1fZnJhbWVzW2ldLm1faXNDb21wbGV0
ZSkKKyAgICAgICAgaWYgKG1fZnJhbWVzW2ldLm1fZnJhbWUgJiYgIW1fZnJhbWVzW2ldLm1faXND
b21wbGV0ZSkKICAgICAgICAgICAgIGZyYW1lc0NsZWFyZWQgKz0gKG1fZnJhbWVzW2ldLmNsZWFy
KHRydWUpID8gMSA6IDApOwogICAgIH0KICAgICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJh
bWVzQ2xlYXJlZCk7CkBAIC0yOTksNiArMjk5LDExIEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcElt
YWdlOjpmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogCiBib29sIEJpdG1hcEltYWdlOjpmcmFt
ZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKKyAgICAvLyBXZSBjYW4gbm90IHJl
dHVybiBjYWNoZWQgbV9pc0NvbXBsZXRlLCBiZWNhdXNlIGNsaWVudHMgdGhhdCBjYWxscyB0aGlz
IG1ldGhvZCBleHBlY3QKKyAgICAvLyBtX2ZyYW1lIGlzIG5vdCBudWxsIGlmIHRoaXMgbWV0aG9k
IHJldHVybnMgdHJ1ZS4KKyAgICAvLyBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25jZSBkZWNv
ZGVkIGNvbXBsZXRlbHkgYW5kIGNsZWFyZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksCisgICAg
Ly8gdGhpcyBtZXRob2QgY2FuIHJldHVybiB0cnVlIGFsdGhvdWdoIG1fZnJhbWUgaXMgbnVsbC4K
KyAgICAvLyAoc2VlIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIGFuZCBmcmFtZUR1cmF0aW9uQXRJbmRl
eCgpKQogICAgIGlmICghZW5zdXJlRnJhbWVJc0NhY2hlZChpbmRleCkpCiAgICAgICAgIHJldHVy
biB0cnVlOyAvLyBXaHkgd291bGQgYW4gaW52YWxpZCBpbmRleCByZXR1cm4gdHJ1ZSBoZXJlPwog
ICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9pc0NvbXBsZXRlOwpAQCAtMzA2LDYgKzMxMSwx
MiBAQCBib29sIEJpdG1hcEltYWdlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRl
eCkKIAogZmxvYXQgQml0bWFwSW1hZ2U6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRl
eCkKIHsKKyAgICAvLyBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25jZSBkZWNvZGVkIGNvbXBs
ZXRlbHkgYW5kIGNsZWFyZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksCisgICAgLy8gV2UgZG9u
J3QgbmVlZCBkZWNvZGUgYWdhaW4gaW4gb3JkZXIgdG8ga25vdyBtZXRhIGRhdGEuCisgICAgLy8g
SXQgaXMgYmVjYXVzZSBkZXN0cm95RGVjb2RlZERhdGEoKSBkb2VzIG5vdCByZXNldCBtZXRhIGRh
dGEuIChzZWUgZGVzdHJveURlY29kZWREYXRhKCkpCisgICAgaWYgKGluZGV4IDwgbV9mcmFtZXMu
c2l6ZSgpICYmIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUpCisgICAgICAgIHJldHVybiBt
X2ZyYW1lc1tpbmRleF0ubV9kdXJhdGlvbjsKKwogICAgIGlmICghZW5zdXJlRnJhbWVJc0NhY2hl
ZChpbmRleCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0u
bV9kdXJhdGlvbjsKQEAgLTMxOCw2ICszMjksMTAgQEAgTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1h
Z2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkKIAogYm9vbCBCaXRtYXBJbWFnZTo6ZnJh
bWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQogeworICAgIC8vIElmIGNhY2hlZCwgcmV0
dXJuIGNhY2hlZCBtZXRhIGRhdGEuIChzZWUgZnJhbWVEdXJhdGlvbkF0SW5kZXgoKCkpCisgICAg
aWYgKGluZGV4IDwgbV9mcmFtZXMuc2l6ZSgpICYmIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxl
dGUpCisgICAgICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9oYXNBbHBoYTsKKwogICAgIC8v
IFdoZW4gYSBmcmFtZSBoYXMgbm90IGZpbmlzaGVkIGRlY29kaW5nLCBhbHdheXMgbWFyayBpdCBh
cyBoYXZpbmcgYWxwaGEuCiAgICAgLy8gU2VlIEltYWdlU291cmNlOjpmcmFtZWhhc0FscGhhQXRJ
bmRleCBmb3IgZXhwbGFuYXRpb24gb2Ygd2h5IGluY29tcGxldGUgaW1hZ2VzIGNsYWltIHRvIGhh
dmUgYWxwaGEuCiAgICAgaWYgKCFlbnN1cmVGcmFtZUlzQ2FjaGVkKGluZGV4KSkKQEAgLTMzNyw2
ICszNTIsMTAgQEAgSW1hZ2VPcmllbnRhdGlvbiBCaXRtYXBJbWFnZTo6Y3VycmVudEZyYW1lT3Jp
ZW50YXRpb24oKQogCiBJbWFnZU9yaWVudGF0aW9uIEJpdG1hcEltYWdlOjpmcmFtZU9yaWVudGF0
aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCiB7CisgICAgLy8gSWYgY2FjaGVkLCByZXR1cm4gY2Fj
aGVkIG1ldGEgZGF0YS4gKHNlZSBmcmFtZUR1cmF0aW9uQXRJbmRleCgoKSkKKyAgICBpZiAoaW5k
ZXggPCBtX2ZyYW1lcy5zaXplKCkgJiYgbV9mcmFtZXNbaW5kZXhdLm1faXNDb21wbGV0ZSkKKyAg
ICAgICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XS5tX29yaWVudGF0aW9uOworCiAgICAgaWYgKCFl
bnN1cmVGcmFtZUlzQ2FjaGVkKGluZGV4KSkKICAgICAgICAgcmV0dXJuIERlZmF1bHRJbWFnZU9y
aWVudGF0aW9uOwogICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9vcmllbnRhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDM2
ZjRhOGNkZWEzMzdlYzg5ZTI2ODFlYjhlNTc4NzFhYTYzNGEwOTQuLjdkZGYyZjNkNjhiNWFmMzY4
NDQ2YWNmNzZjMTg5MzNmMWY4MGJhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtNzIsOSArNzIsOCBAQCBwdWJsaWM6CiAgICAgICAg
IDogbV9mcmFtZSgwKQogICAgICAgICAsIG1fb3JpZW50YXRpb24oRGVmYXVsdEltYWdlT3JpZW50
YXRpb24pCiAgICAgICAgICwgbV9kdXJhdGlvbigwKQotICAgICAgICAsIG1faGF2ZU1ldGFkYXRh
KGZhbHNlKQorICAgICAgICAsIG1faGFzQWxwaGEodHJ1ZSkKICAgICAgICAgLCBtX2lzQ29tcGxl
dGUoZmFsc2UpCi0gICAgICAgICwgbV9oYXNBbHBoYSh0cnVlKSAKICAgICB7CiAgICAgfQogCkBA
IC04OSwyMSArODgsMzEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gZGF0YS5tX2ZyYW1l
OwogICAgICAgICBtX29yaWVudGF0aW9uID0gZGF0YS5tX29yaWVudGF0aW9uOwogICAgICAgICBt
X2R1cmF0aW9uID0gZGF0YS5tX2R1cmF0aW9uOwotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGRh
dGEubV9oYXZlTWV0YWRhdGE7Ci0gICAgICAgIG1faXNDb21wbGV0ZSA9IGRhdGEubV9pc0NvbXBs
ZXRlOwogICAgICAgICBtX2hhc0FscGhhID0gZGF0YS5tX2hhc0FscGhhOworICAgICAgICBBU1NF
UlQoIShtX2lzQ29tcGxldGUgJiYgIWRhdGEubV9pc0NvbXBsZXRlKSk7CisgICAgICAgIG1faXND
b21wbGV0ZSA9IGRhdGEubV9pc0NvbXBsZXRlOwogICAgIH0KIAogICAgIC8vIENsZWFyIHRoZSBj
YWNoZWQgaW1hZ2UgZGF0YSBvbiB0aGUgZnJhbWUsIGFuZCAob3B0aW9uYWxseSkgdGhlIG1ldGFk
YXRhLgogICAgIC8vIFJldHVybnMgd2hldGhlciB0aGVyZSB3YXMgY2FjaGVkIGltYWdlIGRhdGEg
dG8gY2xlYXIuCi0gICAgYm9vbCBjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpOworICAgIGJvb2wg
Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQorICAgIHsKKyAgICAgICAgaWYgKGNsZWFyTWV0YWRh
dGEpIHsKKyAgICAgICAgICAgIG1fb3JpZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlv
bjsKKyAgICAgICAgICAgIG1fZHVyYXRpb24gPSAwOworICAgICAgICAgICAgbV9oYXNBbHBoYSA9
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNsZWFyRnJhbWUoKTsKKyAgICB9CiAK
ICAgICBOYXRpdmVJbWFnZVB0ciBtX2ZyYW1lOwogICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmll
bnRhdGlvbjsKICAgICBmbG9hdCBtX2R1cmF0aW9uOwotICAgIGJvb2wgbV9oYXZlTWV0YWRhdGEg
OiAxOwotICAgIGJvb2wgbV9pc0NvbXBsZXRlIDogMTsKICAgICBib29sIG1faGFzQWxwaGEgOiAx
OworICAgIGJvb2wgbV9pc0NvbXBsZXRlIDogMTsKKworcHJpdmF0ZToKKyAgICBib29sIGNsZWFy
RnJhbWUoKTsKIH07CiAKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcAppbmRleCAwOWE5ODZlYTc4ZDEzZGUyODZhNDE3OGQzZDZmYjZjZDU1YWQxMTQ4
Li4wMjAzMzRlY2ZkZDU2Y2VkYTQ2ZTdhYTllMzIxZWVmMTU5MmQ0MzkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xNzUsNyAr
MTc1LDYgQEAgSW1hZ2VGcmFtZURhdGEgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQXRJbmRleChz
aXplX3QgaW5kZXgpCiAgICAgfQogCiAgICAgaW1hZ2VGcmFtZURhdGEubV9vcmllbnRhdGlvbiA9
IG9yaWVudGF0aW9uQXRJbmRleChidWZmZXIpOwotICAgIGltYWdlRnJhbWVEYXRhLm1faGF2ZU1l
dGFkYXRhID0gdHJ1ZTsKICAgICBpbWFnZUZyYW1lRGF0YS5tX2lzQ29tcGxldGUgPSBmcmFtZUlz
Q29tcGxldGVBdEluZGV4KGJ1ZmZlcik7CiAgICAgaWYgKHJlcGV0aXRpb25Db3VudCgpICE9IGNB
bmltYXRpb25Ob25lKQogICAgICAgICBpbWFnZUZyYW1lRGF0YS5tX2R1cmF0aW9uID0gZnJhbWVE
dXJhdGlvbkF0SW5kZXgoYnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDUxMDVjMDU5NDkxYmIyMzZkODRmODYwMGE5ZDhhNGY5
NjY4N2Q5NDAuLjdiOWMwMjA1NjUxYzJhOWUxODU2Mzc1NDVlZDQzODNiYmRiMDVlMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtMTA5
LDcgKzEwOSw2IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX2ZyYW1lKDApCiAgICAgICAgICwgbV9v
cmllbnRhdGlvbihEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgLCBtX2R1cmF0aW9u
KDApCi0gICAgICAgICwgbV9oYXZlTWV0YWRhdGEoZmFsc2UpCiAgICAgICAgICwgbV9pc0NvbXBs
ZXRlKGZhbHNlKQogICAgICAgICAsIG1faGFzQWxwaGEodHJ1ZSkKICAgICB7CkBAIC0xMTgsNyAr
MTE3LDYgQEAgcHVibGljOgogICAgIE5hdGl2ZUltYWdlUHRyIG1fZnJhbWU7CiAgICAgSW1hZ2VP
cmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwogICAgIGZsb2F0IG1fZHVyYXRpb247Ci0gICAgYm9v
bCBtX2hhdmVNZXRhZGF0YSA6IDE7CiAgICAgYm9vbCBtX2lzQ29tcGxldGUgOiAxOwogICAgIGJv
b2wgbV9oYXNBbHBoYSA6IDE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCA2NjdkMDVm
OGY1OWVhMTFiZTg2ZjIyZWRlZTRhNjMwY2ZhODU5ZDM0Li5iMTIxN2JiY2NmZWRmY2FiMzFkYjIz
M2ZjMjEyNmJkNzQ3ZGQ4MzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtNjgsNyArNjgs
NiBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1h
Z2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIG1fZnJhbWVzLmdyb3coMSk7CiAgICAg
bV9mcmFtZXNbMF0ubV9mcmFtZSA9IG5hdGl2ZUltYWdlOwogICAgIG1fZnJhbWVzWzBdLm1faGFz
QWxwaGEgPSBjYWlyb19zdXJmYWNlX2dldF9jb250ZW50KHN1cmZhY2UpICE9IENBSVJPX0NPTlRF
TlRfQ09MT1I7Ci0gICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVlOwogICAgIGNo
ZWNrRm9yU29saWRDb2xvcigpOwogfQogCkBAIC0xMzMsMTEgKzEzMiw4IEBAIHZvaWQgQml0bWFw
SW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiAgICAgbV9pc1NvbGlkQ29sb3IgPSB0cnVlOwog
fQogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQorYm9vbCBGcmFt
ZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFkYXRhKQotICAgICAgICBt
X2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgZGVs
ZXRlIG1fZnJhbWU7CiAgICAgICAgIG1fZnJhbWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAppbmRleCBmZmNmOWRiNzZkMzI1YTYwMDZh
Nzk2ZmYxZDNkYTI3NGVmOGRhMDRmLi4zZGMxYzYxNTgyZjFhMDI5NjRlZWQ2OWI5MDc3NzI1Zjg3
Y2NjN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcApAQCAtNDksMTMgKzQ5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29s
IEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQorYm9vbCBGcmFtZURhdGE6OmNs
ZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFkYXRhKQotICAgICAgICBtX2hhdmVNZXRh
ZGF0YSA9IGZhbHNlOwotCi0gICAgbV9vcmllbnRhdGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0
aW9uOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgQ0dJbWFnZVJlbGVhc2UobV9mcmFt
ZSk7CiAgICAgICAgIG1fZnJhbWUgPSAwOwpAQCAtOTksNyArOTQsNiBAQCBCaXRtYXBJbWFnZTo6
Qml0bWFwSW1hZ2UoQ0dJbWFnZVJlZiBjZ0ltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikK
ICAgICBtX2ZyYW1lcy5ncm93KDEpOwogICAgIG1fZnJhbWVzWzBdLm1fZnJhbWUgPSBjZ0ltYWdl
OwogICAgIG1fZnJhbWVzWzBdLm1faGFzQWxwaGEgPSB0cnVlOwotICAgIG1fZnJhbWVzWzBdLm1f
aGF2ZU1ldGFkYXRhID0gdHJ1ZTsKIAogICAgIGNoZWNrRm9yU29saWRDb2xvcigpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VD
Ry5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNH
LmNwcAppbmRleCA0YmU4MmQxMzc4MzljZTVmYWM4YTExYjc3YmU1NjYwNWUxODk2YTg3Li42MGJh
M2M5NGI2MzgwMTA1ODA2ZWZlNzE4NTVkM2E0YjQzYjM3NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcApAQCAtMzM4
LDcgKzMzOCw2IEBAIEltYWdlRnJhbWVEYXRhIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5k
ZXgoc2l6ZV90IGluZGV4KQogICAgIGltYWdlRnJhbWVEYXRhLm1fZnJhbWUgPSBtYXNrZWRJbWFn
ZS5sZWFrUmVmKCk7CiAKICAgICBpbWFnZUZyYW1lRGF0YS5tX29yaWVudGF0aW9uID0gb3JpZW50
YXRpb25BdEluZGV4KGluZGV4KTsKLSAgICBpbWFnZUZyYW1lRGF0YS5tX2hhdmVNZXRhZGF0YSA9
IHRydWU7CiAgICAgaW1hZ2VGcmFtZURhdGEubV9pc0NvbXBsZXRlID0gZnJhbWVJc0NvbXBsZXRl
QXRJbmRleChpbmRleCk7CiAgICAgaWYgKHJlcGV0aXRpb25Db3VudCgpICE9IGNBbmltYXRpb25O
b25lKQogICAgICAgICBpbWFnZUZyYW1lRGF0YS5tX2R1cmF0aW9uID0gZnJhbWVEdXJhdGlvbkF0
SW5kZXgoaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKaW5kZXggZWI4MDY2YzQ3NDAwM2VjYTgxZjBlMTcy
ZjdhZmRhNDlkNjA3NGZhMy4uY2Q4Nzk0ZTUzOWNmZDUwZWU4OGE3N2UwN2M0NWY4MmFiOWNkNzM1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0lt
YWdlT3BlblZHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dmcvSW1hZ2VPcGVuVkcuY3BwCkBAIC0zNywxMSArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCitib29sIEZy
YW1lRGF0YTo6Y2xlYXJGcmFtZSgpCiB7Ci0gICAgaWYgKGNsZWFyTWV0YWRhdGEpCi0gICAgICAg
IG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7Ci0KICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBk
ZWxldGUgbV9mcmFtZTsKICAgICAgICAgbV9mcmFtZSA9IDA7CkBAIC03OSw3ICs3Niw2IEBAIEJp
dG1hcEltYWdlOjpCaXRtYXBJbWFnZShUaWxlZEltYWdlT3BlblZHKiB0aWxlZEltYWdlLCBJbWFn
ZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICBtX2ZyYW1lc1swXS5tX2ZyYW1lID0gdGlsZWRJbWFn
ZTsKICAgICBtX2ZyYW1lc1swXS5tX2hhc0FscGhhID0gdHJ1ZTsKICAgICBtX2ZyYW1lc1swXS5t
X2lzQ29tcGxldGUgPSB0cnVlOwotICAgIG1fZnJhbWVzWzBdLm1faGF2ZU1ldGFkYXRhID0gdHJ1
ZTsKICAgICBjaGVja0ZvclNvbGlkQ29sb3IoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCBkYWYwMGJlYmU0MmJlMGM5YmEw
NmNiZjdlNGNhNjE0MGJmYjg3M2JlLi41NzIwMzllOWRlYzBlYmQxMDdmNDczNTVkMGI0Mjg1ZjI1
YmFiYjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9J
bWFnZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZVF0LmNwcApAQCAtOTcsMTEgKzk3LDggQEAgc3RhdGljIFFQaXhtYXAgbG9hZFJlc291cmNlUGl4
bWFwKGNvbnN0IGNoYXIgKm5hbWUpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBGcmFt
ZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZy
YW1lKCkKIHsKLSAgICBpZiAoY2xlYXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEg
PSBmYWxzZTsKLQogICAgIGlmIChtX2ZyYW1lKSB7CiAgICAgICAgIGRlbGV0ZSBtX2ZyYW1lOwog
ICAgICAgICBtX2ZyYW1lID0gMDsKQEAgLTIyMSw3ICsyMTgsNiBAQCBCaXRtYXBJbWFnZTo6Qml0
bWFwSW1hZ2UoUVBpeG1hcCogcGl4bWFwLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICBt
X2ZyYW1lcy5ncm93KDEpOwogICAgIG1fZnJhbWVzWzBdLm1fZnJhbWUgPSBwaXhtYXA7CiAgICAg
bV9mcmFtZXNbMF0ubV9oYXNBbHBoYSA9IHBpeG1hcC0+aGFzQWxwaGEoKTsKLSAgICBtX2ZyYW1l
c1swXS5tX2hhdmVNZXRhZGF0YSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1h
Z2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VT
a2lhLmNwcAppbmRleCA2YTRiY2IwYTMwMjFkODI5MDUwNzc1ODQxOTNkZDk4YThmNDM5NmQ4Li4w
NGRkYzM0MWQzMzkxOWI1MTRmYWMwNWM0ZDg0YWM5OTUzMWI2ZGRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCkBAIC0zMTgs
MTEgKzMxOCw4IEBAIEZsb2F0UmVjdCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKICAgICByZXR1cm4gbm9ybTsKIH0KIAotYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wgY2xl
YXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkKIHsKLSAgICBpZiAoY2xl
YXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKLQogICAgIGlmICht
X2ZyYW1lKSB7CiAgICAgICAgIC8vIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoKSBh
bGxvY2F0ZWQgfG1fZnJhbWV8IGFuZCBwYXNzZWQKICAgICAgICAgLy8gb3duZXJzaGlwIHRvIEJp
dG1hcEltYWdlOyB3ZSBtdXN0IGRlbGV0ZSBpdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VXaW5DRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAppbmRleCAyM2QzYjNh
MmNhNWEwZDBjODUzYjcwYmRkYTgyYWJkNDZkYTRmMWYzLi40ZTczNjFmNDExZmE0OWRiNWRiYzhh
M2RjOWNhNzNlYzFkNjNhMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcApAQCAtNDYsMTEgKzQ2LDggQEAgTmF0aXZl
SW1hZ2VQdHIgSW1hZ2VGcmFtZTo6YXNOZXdOYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IFNoYXJlZEJpdG1hcDo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLCBtX3NpemUsIGhhc0FscGhhKCkp
OwogfQogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFEYXRhKQorYm9vbCBG
cmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFEYXRhKQotICAgICAg
ICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAg
bV9mcmFtZSA9IDA7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAppbmRleCA3NDY1NWYzOGZlNzk2M2NkM2My
OGVjMTNhNjUyMjJiZjRiZDdmMDFiLi45MmY2ZWI3YzYxYWU3NDI1MTljZWY2Yzc5NDYyMmZkMmRj
ZGFiNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9J
bWFnZVd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFn
ZVd4LmNwcApAQCAtNTIsMTEgKzUyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdGhpcyBp
cyBpbiBHcmFwaGljc0NvbnRleHRXeC5jcHAKIGludCBnZXRXeENvbXBvc2l0aW5nT3BlcmF0aW9u
KENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBib29sIGhhc0FscGhhKTsKIAotYm9vbCBGcmFtZURhdGE6
OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkK
IHsKLSAgICBpZiAoY2xlYXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxz
ZTsKLQogICAgIGlmIChtX2ZyYW1lKSB7CiAgICAgICAgIGRlbGV0ZSBtX2ZyYW1lOwogICAgICAg
ICBtX2ZyYW1lID0gMDsKQEAgLTExNCw3ICsxMTEsNiBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1h
Z2UoY29uc3Qgd3hCaXRtYXAmIGJpdG1hcCkKICAgICAKICAgICAgICAgbV9mcmFtZXMuZ3Jvdygx
KTsKICAgICAgICAgbV9mcmFtZXNbMF0ubV9mcmFtZSA9IGdibXA7Ci0gICAgICAgIG1fZnJhbWVz
WzBdLm1faGF2ZU1ldGFkYXRhID0gdHJ1ZTsKICAgICAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7
CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151426</attachid>
            <date>2012-07-10 03:28:55 -0700</date>
            <delta_ts>2012-07-11 00:32:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90758-20120710192850.patch</filename>
            <type>text/plain</type>
            <size>16241</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWMwNmYzNDFiNGRlYjRm
NmUzNjk1ZjZhY2I3NDE4M2Q4MzQyMTg1ZC4uOWNmZjZlZjI5NTk0MTA0Y2Q2MDYwOWJkZTRjYjk4
YmJiYjA5ZWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA3LTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFJlZmFjdG9y
aW5nIG1ldGFkYXRhIG9mIEJpdG1hcEltYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA3NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBwcmVjaXNlIGRlZmluaXRpb24gb2YgRnJh
bWVEYXRhJ3MgbWV0YWRhdGEuIFNvIEkgYXNzdW1lIHRoZSBtZXRhZGF0YQorICAgICAgICBhcyBh
IGNvbWJpbmF0aW9uIG9mIG1fb3JpZW50YXRpb24sIG1fZHVyYXRpb24sIGFuZCBtX2hhc0FscGhh
LiBUaGlzIGRlZmluaXRpb24KKyAgICAgICAgd29ya3MgZmluZSBiZWNhdXNlIGN1cnJlbnRseSB0
aGVyZSBpcyBubyBtZXRob2QgdGhhdCB1c2VzIG1faGF2ZU1ldGFkYXRhIG9uIGl0cworICAgICAg
ICBwdXJwb3NlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGFpbnMgdHdvIGNoYW5nZXM6CisK
KyAgICAgICAgMS4gUmVtb3ZlIEZyYW1lRGF0YTo6bV9oYXZlTWV0YWRhdGEgZm9yIHJlYWRhYmls
aXR5LgorICAgICAgICBPbmx5IEJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCB1c2VzIG1faGF2ZU1l
dGFkYXRhIGluIG9yZGVyIHRvIGNoZWNrIHdoZXRoZXIgdGhlCisgICAgICAgIGZyYW1lIGlzIGNs
ZWFyZWQgb3Igbm90LCBhbmQgaXQgaXMgZW5vdWdoIHRvIGNoZWNrIHdoZXRoZXIgRnJhbWVEYXRh
OjptX2ZyYW1lIGlzCisgICAgICAgIDAuCisKKyAgICAgICAgMi4gRG9uJ3QgZGVjb2RlIGFnYWlu
IGlmIG1ldGFkYXRhIGV4aXN0LgorICAgICAgICBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25j
ZSBkZWNvZGVkIGNvbXBsZXRlbHkgYW5kIGNsZWFyZWQgYnkKKyAgICAgICAgZGVzdHJveURlY29k
ZWREYXRhKCksIFdlIGRvbid0IG5lZWQgdG8gZGVjb2RlIGFnYWluIGluIG9yZGVyIHRvIGtub3cg
bWV0YWRhdGEKKyAgICAgICAgYmVjYXVzZSBkZXN0cm95RGVjb2RlZERhdGEoKSBkb2VzIG5vdCBy
ZXNldCB0aGUgbWV0YWRhdGEuIFNlZQorICAgICAgICBkZXN0cm95RGVjb2RlZERhdGEoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
ZnJhbWVJc0NvbXBsZXRlQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
ZnJhbWVEdXJhdGlvbkF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZy
YW1lSGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFt
ZU9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6c2V0RnJvbUltYWdlRnJhbWVEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAoRnJhbWVEYXRhKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZURhdGE6
OkltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKEltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZURhdGE6OmNsZWFyRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZTo6Y3JlYXRlRnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpj
bGVhckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
SW1hZ2U6OkJpdG1hcEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0lt
YWdlU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlV2luQ0UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93eC9JbWFnZVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xl
YXJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgor
CiAyMDEyLTA3LTAzICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgog
CiAgICAgICAgIFByZXBhcmUgZm9yIHBhcmFsbGVsIGltYWdlIGRlY29kZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggM2Q2MzQ4
YTE2Y2NjZGZiZGVhMDFkZWNhNDQwNjc5YmI5YzE5MGQzZC4uMGQxYzBhMDVjNDJhMDQ0NmYzZTg1
MjA5MTdkYWNjOThlOGM5MDE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgQml0bWFwSW1h
Z2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICAvLyBOT1RFOiBE
b24ndCBjYWxsIGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKSBoZXJlLCB0aGF0IHdpbGwgdHJ5IHRv
CiAgICAgICAgIC8vIGRlY29kZSBhbnkgdW5jYWNoZWQgKGkuZS4gbmV2ZXItZGVjb2RlZCBvcgog
ICAgICAgICAvLyBjbGVhcmVkLW9uLWEtcHJldmlvdXMtcGFzcykgZnJhbWVzIQotICAgICAgICBp
ZiAobV9mcmFtZXNbaV0ubV9oYXZlTWV0YWRhdGEgJiYgIW1fZnJhbWVzW2ldLm1faXNDb21wbGV0
ZSkKKyAgICAgICAgaWYgKG1fZnJhbWVzW2ldLm1fZnJhbWUgJiYgIW1fZnJhbWVzW2ldLm1faXND
b21wbGV0ZSkKICAgICAgICAgICAgIGZyYW1lc0NsZWFyZWQgKz0gKG1fZnJhbWVzW2ldLmNsZWFy
KHRydWUpID8gMSA6IDApOwogICAgIH0KICAgICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJh
bWVzQ2xlYXJlZCk7CkBAIC0yOTksNiArMjk5LDExIEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcElt
YWdlOjpmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogCiBib29sIEJpdG1hcEltYWdlOjpmcmFt
ZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKKyAgICAvLyBXZSBjYW4gbm90IHJl
dHVybiBjYWNoZWQgbV9pc0NvbXBsZXRlLCBiZWNhdXNlIGNsaWVudHMgdGhhdCBjYWxscyB0aGlz
IG1ldGhvZCBleHBlY3QKKyAgICAvLyBtX2ZyYW1lIGlzIG5vdCBudWxsIGlmIHRoaXMgbWV0aG9k
IHJldHVybnMgdHJ1ZS4KKyAgICAvLyBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25jZSBkZWNv
ZGVkIGNvbXBsZXRlbHkgYW5kIGNsZWFyZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksCisgICAg
Ly8gdGhpcyBtZXRob2QgY2FuIHJldHVybiB0cnVlIGFsdGhvdWdoIG1fZnJhbWUgaXMgbnVsbC4K
KyAgICAvLyAoc2VlIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIGFuZCBmcmFtZUR1cmF0aW9uQXRJbmRl
eCgpKQogICAgIGlmICghZW5zdXJlRnJhbWVJc0NhY2hlZChpbmRleCkpCiAgICAgICAgIHJldHVy
biB0cnVlOyAvLyBXaHkgd291bGQgYW4gaW52YWxpZCBpbmRleCByZXR1cm4gdHJ1ZSBoZXJlPwog
ICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9pc0NvbXBsZXRlOwpAQCAtMzA2LDYgKzMxMSwx
MiBAQCBib29sIEJpdG1hcEltYWdlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRl
eCkKIAogZmxvYXQgQml0bWFwSW1hZ2U6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRl
eCkKIHsKKyAgICAvLyBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25jZSBkZWNvZGVkIGNvbXBs
ZXRlbHkgYW5kIGNsZWFyZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksCisgICAgLy8gV2UgZG9u
J3QgbmVlZCBkZWNvZGUgYWdhaW4gaW4gb3JkZXIgdG8ga25vdyBtZXRhIGRhdGEuCisgICAgLy8g
SXQgaXMgYmVjYXVzZSBkZXN0cm95RGVjb2RlZERhdGEoKSBkb2VzIG5vdCByZXNldCBtZXRhIGRh
dGEuIChzZWUgZGVzdHJveURlY29kZWREYXRhKCkpCisgICAgaWYgKGluZGV4IDwgbV9mcmFtZXMu
c2l6ZSgpICYmIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUpCisgICAgICAgIHJldHVybiBt
X2ZyYW1lc1tpbmRleF0ubV9kdXJhdGlvbjsKKwogICAgIGlmICghZW5zdXJlRnJhbWVJc0NhY2hl
ZChpbmRleCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0u
bV9kdXJhdGlvbjsKQEAgLTMxOCw2ICszMjksMTAgQEAgTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1h
Z2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkKIAogYm9vbCBCaXRtYXBJbWFnZTo6ZnJh
bWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQogeworICAgIC8vIElmIGNhY2hlZCwgcmV0
dXJuIGNhY2hlZCBtZXRhIGRhdGEuIChzZWUgZnJhbWVEdXJhdGlvbkF0SW5kZXgoKCkpCisgICAg
aWYgKGluZGV4IDwgbV9mcmFtZXMuc2l6ZSgpICYmIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxl
dGUpCisgICAgICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9oYXNBbHBoYTsKKwogICAgIC8v
IFdoZW4gYSBmcmFtZSBoYXMgbm90IGZpbmlzaGVkIGRlY29kaW5nLCBhbHdheXMgbWFyayBpdCBh
cyBoYXZpbmcgYWxwaGEuCiAgICAgLy8gU2VlIEltYWdlU291cmNlOjpmcmFtZWhhc0FscGhhQXRJ
bmRleCBmb3IgZXhwbGFuYXRpb24gb2Ygd2h5IGluY29tcGxldGUgaW1hZ2VzIGNsYWltIHRvIGhh
dmUgYWxwaGEuCiAgICAgaWYgKCFlbnN1cmVGcmFtZUlzQ2FjaGVkKGluZGV4KSkKQEAgLTMzNyw2
ICszNTIsMTAgQEAgSW1hZ2VPcmllbnRhdGlvbiBCaXRtYXBJbWFnZTo6Y3VycmVudEZyYW1lT3Jp
ZW50YXRpb24oKQogCiBJbWFnZU9yaWVudGF0aW9uIEJpdG1hcEltYWdlOjpmcmFtZU9yaWVudGF0
aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCiB7CisgICAgLy8gSWYgY2FjaGVkLCByZXR1cm4gY2Fj
aGVkIG1ldGEgZGF0YS4gKHNlZSBmcmFtZUR1cmF0aW9uQXRJbmRleCgoKSkKKyAgICBpZiAoaW5k
ZXggPCBtX2ZyYW1lcy5zaXplKCkgJiYgbV9mcmFtZXNbaW5kZXhdLm1faXNDb21wbGV0ZSkKKyAg
ICAgICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XS5tX29yaWVudGF0aW9uOworCiAgICAgaWYgKCFl
bnN1cmVGcmFtZUlzQ2FjaGVkKGluZGV4KSkKICAgICAgICAgcmV0dXJuIERlZmF1bHRJbWFnZU9y
aWVudGF0aW9uOwogICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9vcmllbnRhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDM2
ZjRhOGNkZWEzMzdlYzg5ZTI2ODFlYjhlNTc4NzFhYTYzNGEwOTQuLjdkZGYyZjNkNjhiNWFmMzY4
NDQ2YWNmNzZjMTg5MzNmMWY4MGJhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtNzIsOSArNzIsOCBAQCBwdWJsaWM6CiAgICAgICAg
IDogbV9mcmFtZSgwKQogICAgICAgICAsIG1fb3JpZW50YXRpb24oRGVmYXVsdEltYWdlT3JpZW50
YXRpb24pCiAgICAgICAgICwgbV9kdXJhdGlvbigwKQotICAgICAgICAsIG1faGF2ZU1ldGFkYXRh
KGZhbHNlKQorICAgICAgICAsIG1faGFzQWxwaGEodHJ1ZSkKICAgICAgICAgLCBtX2lzQ29tcGxl
dGUoZmFsc2UpCi0gICAgICAgICwgbV9oYXNBbHBoYSh0cnVlKSAKICAgICB7CiAgICAgfQogCkBA
IC04OSwyMSArODgsMzEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gZGF0YS5tX2ZyYW1l
OwogICAgICAgICBtX29yaWVudGF0aW9uID0gZGF0YS5tX29yaWVudGF0aW9uOwogICAgICAgICBt
X2R1cmF0aW9uID0gZGF0YS5tX2R1cmF0aW9uOwotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGRh
dGEubV9oYXZlTWV0YWRhdGE7Ci0gICAgICAgIG1faXNDb21wbGV0ZSA9IGRhdGEubV9pc0NvbXBs
ZXRlOwogICAgICAgICBtX2hhc0FscGhhID0gZGF0YS5tX2hhc0FscGhhOworICAgICAgICBBU1NF
UlQoIShtX2lzQ29tcGxldGUgJiYgIWRhdGEubV9pc0NvbXBsZXRlKSk7CisgICAgICAgIG1faXND
b21wbGV0ZSA9IGRhdGEubV9pc0NvbXBsZXRlOwogICAgIH0KIAogICAgIC8vIENsZWFyIHRoZSBj
YWNoZWQgaW1hZ2UgZGF0YSBvbiB0aGUgZnJhbWUsIGFuZCAob3B0aW9uYWxseSkgdGhlIG1ldGFk
YXRhLgogICAgIC8vIFJldHVybnMgd2hldGhlciB0aGVyZSB3YXMgY2FjaGVkIGltYWdlIGRhdGEg
dG8gY2xlYXIuCi0gICAgYm9vbCBjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpOworICAgIGJvb2wg
Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQorICAgIHsKKyAgICAgICAgaWYgKGNsZWFyTWV0YWRh
dGEpIHsKKyAgICAgICAgICAgIG1fb3JpZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlv
bjsKKyAgICAgICAgICAgIG1fZHVyYXRpb24gPSAwOworICAgICAgICAgICAgbV9oYXNBbHBoYSA9
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNsZWFyRnJhbWUoKTsKKyAgICB9CiAK
ICAgICBOYXRpdmVJbWFnZVB0ciBtX2ZyYW1lOwogICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmll
bnRhdGlvbjsKICAgICBmbG9hdCBtX2R1cmF0aW9uOwotICAgIGJvb2wgbV9oYXZlTWV0YWRhdGEg
OiAxOwotICAgIGJvb2wgbV9pc0NvbXBsZXRlIDogMTsKICAgICBib29sIG1faGFzQWxwaGEgOiAx
OworICAgIGJvb2wgbV9pc0NvbXBsZXRlIDogMTsKKworcHJpdmF0ZToKKyAgICBib29sIGNsZWFy
RnJhbWUoKTsKIH07CiAKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcAppbmRleCAwOWE5ODZlYTc4ZDEzZGUyODZhNDE3OGQzZDZmYjZjZDU1YWQxMTQ4
Li4wMjAzMzRlY2ZkZDU2Y2VkYTQ2ZTdhYTllMzIxZWVmMTU5MmQ0MzkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xNzUsNyAr
MTc1LDYgQEAgSW1hZ2VGcmFtZURhdGEgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQXRJbmRleChz
aXplX3QgaW5kZXgpCiAgICAgfQogCiAgICAgaW1hZ2VGcmFtZURhdGEubV9vcmllbnRhdGlvbiA9
IG9yaWVudGF0aW9uQXRJbmRleChidWZmZXIpOwotICAgIGltYWdlRnJhbWVEYXRhLm1faGF2ZU1l
dGFkYXRhID0gdHJ1ZTsKICAgICBpbWFnZUZyYW1lRGF0YS5tX2lzQ29tcGxldGUgPSBmcmFtZUlz
Q29tcGxldGVBdEluZGV4KGJ1ZmZlcik7CiAgICAgaWYgKHJlcGV0aXRpb25Db3VudCgpICE9IGNB
bmltYXRpb25Ob25lKQogICAgICAgICBpbWFnZUZyYW1lRGF0YS5tX2R1cmF0aW9uID0gZnJhbWVE
dXJhdGlvbkF0SW5kZXgoYnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDUxMDVjMDU5NDkxYmIyMzZkODRmODYwMGE5ZDhhNGY5
NjY4N2Q5NDAuLjdiOWMwMjA1NjUxYzJhOWUxODU2Mzc1NDVlZDQzODNiYmRiMDVlMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtMTA5
LDcgKzEwOSw2IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX2ZyYW1lKDApCiAgICAgICAgICwgbV9v
cmllbnRhdGlvbihEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgLCBtX2R1cmF0aW9u
KDApCi0gICAgICAgICwgbV9oYXZlTWV0YWRhdGEoZmFsc2UpCiAgICAgICAgICwgbV9pc0NvbXBs
ZXRlKGZhbHNlKQogICAgICAgICAsIG1faGFzQWxwaGEodHJ1ZSkKICAgICB7CkBAIC0xMTgsNyAr
MTE3LDYgQEAgcHVibGljOgogICAgIE5hdGl2ZUltYWdlUHRyIG1fZnJhbWU7CiAgICAgSW1hZ2VP
cmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwogICAgIGZsb2F0IG1fZHVyYXRpb247Ci0gICAgYm9v
bCBtX2hhdmVNZXRhZGF0YSA6IDE7CiAgICAgYm9vbCBtX2lzQ29tcGxldGUgOiAxOwogICAgIGJv
b2wgbV9oYXNBbHBoYSA6IDE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCA2NjdkMDVm
OGY1OWVhMTFiZTg2ZjIyZWRlZTRhNjMwY2ZhODU5ZDM0Li5kYzZhNGQ0YmNiNzJjNmFlNzM0ZmU3
MzlhOGM0Y2U3ZDU2NDE1ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtNjgsNyArNjgs
NyBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1h
Z2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIG1fZnJhbWVzLmdyb3coMSk7CiAgICAg
bV9mcmFtZXNbMF0ubV9mcmFtZSA9IG5hdGl2ZUltYWdlOwogICAgIG1fZnJhbWVzWzBdLm1faGFz
QWxwaGEgPSBjYWlyb19zdXJmYWNlX2dldF9jb250ZW50KHN1cmZhY2UpICE9IENBSVJPX0NPTlRF
TlRfQ09MT1I7Ci0gICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVlOworICAgIG1f
ZnJhbWVzWzBdLm1faXNDb21wbGV0ZSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7
CiB9CiAKQEAgLTEzMywxMSArMTMzLDggQEAgdm9pZCBCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xp
ZENvbG9yKCkKICAgICBtX2lzU29saWRDb2xvciA9IHRydWU7CiB9CiAKLWJvb2wgRnJhbWVEYXRh
OjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCitib29sIEZyYW1lRGF0YTo6Y2xlYXJGcmFtZSgp
CiB7Ci0gICAgaWYgKGNsZWFyTWV0YWRhdGEpCi0gICAgICAgIG1faGF2ZU1ldGFkYXRhID0gZmFs
c2U7Ci0KICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBkZWxldGUgbV9mcmFtZTsKICAgICAg
ICAgbV9mcmFtZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQ0cuY3BwCmluZGV4IGZmY2Y5ZGI3NmQzMjVhNjAwNmE3OTZmZjFkM2RhMjc0ZWY4ZGEw
NGYuLmM4NWJlNDY3MGViMmE3Yzc5YzI1YTAyMDk4MjVhZTBlZDQwOGRjYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCkBAIC00OSwxMyAr
NDksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgRnJhbWVEYXRhOjpjbGVhcihi
b29sIGNsZWFyTWV0YWRhdGEpCitib29sIEZyYW1lRGF0YTo6Y2xlYXJGcmFtZSgpCiB7Ci0gICAg
aWYgKGNsZWFyTWV0YWRhdGEpCi0gICAgICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7Ci0KLSAg
ICBtX29yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247Ci0KICAgICBpZiAobV9m
cmFtZSkgewogICAgICAgICBDR0ltYWdlUmVsZWFzZShtX2ZyYW1lKTsKICAgICAgICAgbV9mcmFt
ZSA9IDA7CkBAIC05OSw3ICs5NCw3IEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShDR0ltYWdl
UmVmIGNnSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIG1fZnJhbWVzLmdyb3co
MSk7CiAgICAgbV9mcmFtZXNbMF0ubV9mcmFtZSA9IGNnSW1hZ2U7CiAgICAgbV9mcmFtZXNbMF0u
bV9oYXNBbHBoYSA9IHRydWU7Ci0gICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVl
OworICAgIG1fZnJhbWVzWzBdLm1faXNDb21wbGV0ZSA9IHRydWU7CiAKICAgICBjaGVja0ZvclNv
bGlkQ29sb3IoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKaW5kZXggNGJlODJkMTM3ODM5Y2U1ZmFjOGExMWI3N2Jl
NTY2MDVlMTg5NmE4Ny4uNjBiYTNjOTRiNjM4MDEwNTgwNmVmZTcxODU1ZDNhNGI0M2IzNzY2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3Vy
Y2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VT
b3VyY2VDRy5jcHAKQEAgLTMzOCw3ICszMzgsNiBAQCBJbWFnZUZyYW1lRGF0YSBJbWFnZVNvdXJj
ZTo6Y3JlYXRlRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICBpbWFnZUZyYW1lRGF0YS5t
X2ZyYW1lID0gbWFza2VkSW1hZ2UubGVha1JlZigpOwogCiAgICAgaW1hZ2VGcmFtZURhdGEubV9v
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uQXRJbmRleChpbmRleCk7Ci0gICAgaW1hZ2VGcmFtZURh
dGEubV9oYXZlTWV0YWRhdGEgPSB0cnVlOwogICAgIGltYWdlRnJhbWVEYXRhLm1faXNDb21wbGV0
ZSA9IGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoaW5kZXgpOwogICAgIGlmIChyZXBldGl0aW9uQ291
bnQoKSAhPSBjQW5pbWF0aW9uTm9uZSkKICAgICAgICAgaW1hZ2VGcmFtZURhdGEubV9kdXJhdGlv
biA9IGZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCmluZGV4IGViODA2
NmM0NzQwMDNlY2E4MWYwZTE3MmY3YWZkYTQ5ZDYwNzRmYTMuLmNkODc5NGU1MzljZmQ1MGVlODhh
NzdlMDdjNDVmODJhYjljZDczNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcApAQCAtMzcsMTEgKzM3LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVh
ck1ldGFkYXRhKQorYm9vbCBGcmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVh
ck1ldGFkYXRhKQotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1f
ZnJhbWUpIHsKICAgICAgICAgZGVsZXRlIG1fZnJhbWU7CiAgICAgICAgIG1fZnJhbWUgPSAwOwpA
QCAtNzksNyArNzYsNiBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoVGlsZWRJbWFnZU9wZW5W
RyogdGlsZWRJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgbV9mcmFtZXNbMF0u
bV9mcmFtZSA9IHRpbGVkSW1hZ2U7CiAgICAgbV9mcmFtZXNbMF0ubV9oYXNBbHBoYSA9IHRydWU7
CiAgICAgbV9mcmFtZXNbMF0ubV9pc0NvbXBsZXRlID0gdHJ1ZTsKLSAgICBtX2ZyYW1lc1swXS5t
X2hhdmVNZXRhZGF0YSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKaW5kZXgg
ZGFmMDBiZWJlNDJiZTBjOWJhMDZjYmY3ZTRjYTYxNDBiZmI4NzNiZS4uZmNhNzU5MDVmNWRjM2Q0
MjY5NmVjODk1MGVjNTFlM2ZlNzdkMGIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKQEAgLTk3LDExICs5Nyw4IEBAIHN0YXRpYyBRUGl4
bWFwIGxvYWRSZXNvdXJjZVBpeG1hcChjb25zdCBjaGFyICpuYW1lKQogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCitib29s
IEZyYW1lRGF0YTo6Y2xlYXJGcmFtZSgpCiB7Ci0gICAgaWYgKGNsZWFyTWV0YWRhdGEpCi0gICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7Ci0KICAgICBpZiAobV9mcmFtZSkgewogICAgICAg
ICBkZWxldGUgbV9mcmFtZTsKICAgICAgICAgbV9mcmFtZSA9IDA7CkBAIC0yMjEsNyArMjE4LDcg
QEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFFQaXhtYXAqIHBpeG1hcCwgSW1hZ2VPYnNlcnZl
ciogb2JzZXJ2ZXIpCiAgICAgbV9mcmFtZXMuZ3JvdygxKTsKICAgICBtX2ZyYW1lc1swXS5tX2Zy
YW1lID0gcGl4bWFwOwogICAgIG1fZnJhbWVzWzBdLm1faGFzQWxwaGEgPSBwaXhtYXAtPmhhc0Fs
cGhhKCk7Ci0gICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVlOworICAgIG1fZnJh
bWVzWzBdLm1faXNDb21wbGV0ZSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1h
Z2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VT
a2lhLmNwcAppbmRleCA2YTRiY2IwYTMwMjFkODI5MDUwNzc1ODQxOTNkZDk4YThmNDM5NmQ4Li4w
NGRkYzM0MWQzMzkxOWI1MTRmYWMwNWM0ZDg0YWM5OTUzMWI2ZGRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCkBAIC0zMTgs
MTEgKzMxOCw4IEBAIEZsb2F0UmVjdCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKICAgICByZXR1cm4gbm9ybTsKIH0KIAotYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wgY2xl
YXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkKIHsKLSAgICBpZiAoY2xl
YXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKLQogICAgIGlmICht
X2ZyYW1lKSB7CiAgICAgICAgIC8vIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoKSBh
bGxvY2F0ZWQgfG1fZnJhbWV8IGFuZCBwYXNzZWQKICAgICAgICAgLy8gb3duZXJzaGlwIHRvIEJp
dG1hcEltYWdlOyB3ZSBtdXN0IGRlbGV0ZSBpdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VXaW5DRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAppbmRleCAyM2QzYjNh
MmNhNWEwZDBjODUzYjcwYmRkYTgyYWJkNDZkYTRmMWYzLi40ZTczNjFmNDExZmE0OWRiNWRiYzhh
M2RjOWNhNzNlYzFkNjNhMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcApAQCAtNDYsMTEgKzQ2LDggQEAgTmF0aXZl
SW1hZ2VQdHIgSW1hZ2VGcmFtZTo6YXNOZXdOYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IFNoYXJlZEJpdG1hcDo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLCBtX3NpemUsIGhhc0FscGhhKCkp
OwogfQogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFEYXRhKQorYm9vbCBG
cmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFEYXRhKQotICAgICAg
ICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAg
bV9mcmFtZSA9IDA7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAppbmRleCA3NDY1NWYzOGZlNzk2M2NkM2My
OGVjMTNhNjUyMjJiZjRiZDdmMDFiLi5iN2MyNDk2YzczYjUyNjVmMWQ4NTM0ZTMzN2VlOGMyMGZl
MzAyOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9J
bWFnZVd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFn
ZVd4LmNwcApAQCAtNTIsMTEgKzUyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdGhpcyBp
cyBpbiBHcmFwaGljc0NvbnRleHRXeC5jcHAKIGludCBnZXRXeENvbXBvc2l0aW5nT3BlcmF0aW9u
KENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBib29sIGhhc0FscGhhKTsKIAotYm9vbCBGcmFtZURhdGE6
OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkK
IHsKLSAgICBpZiAoY2xlYXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxz
ZTsKLQogICAgIGlmIChtX2ZyYW1lKSB7CiAgICAgICAgIGRlbGV0ZSBtX2ZyYW1lOwogICAgICAg
ICBtX2ZyYW1lID0gMDsKQEAgLTExNCw3ICsxMTEsNyBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1h
Z2UoY29uc3Qgd3hCaXRtYXAmIGJpdG1hcCkKICAgICAKICAgICAgICAgbV9mcmFtZXMuZ3Jvdygx
KTsKICAgICAgICAgbV9mcmFtZXNbMF0ubV9mcmFtZSA9IGdibXA7Ci0gICAgICAgIG1fZnJhbWVz
WzBdLm1faGF2ZU1ldGFkYXRhID0gdHJ1ZTsKKyAgICAgICAgbV9mcmFtZXNbMF0ubV9pc0NvbXBs
ZXRlID0gdHJ1ZTsKICAgICAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151620</attachid>
            <date>2012-07-11 00:32:50 -0700</date>
            <delta_ts>2012-07-17 18:03:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90758-20120711163242.patch</filename>
            <type>text/plain</type>
            <size>17198</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJlYjY3MTFlYzJhMjdi
MWEzNTBmN2RjZDlhNDMzY2E0NWI0NDNiMS4uMDZhNWZiODU3NTNlYmE4ZTJjNDRhNGZhNGUxOTA1
MGM1NTk0MDk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTA3LTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFJlZmFjdG9y
aW5nIG1ldGFkYXRhIG9mIEJpdG1hcEltYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA3NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBwcmVjaXNlIGRlZmluaXRpb24gb2YgRnJh
bWVEYXRhJ3MgbWV0YWRhdGEuIFNvIEkgYXNzdW1lIHRoZSBtZXRhZGF0YQorICAgICAgICBhcyBh
IGNvbWJpbmF0aW9uIG9mIG1fb3JpZW50YXRpb24sIG1fZHVyYXRpb24sIGFuZCBtX2hhc0FscGhh
LiBUaGlzIGRlZmluaXRpb24KKyAgICAgICAgd29ya3MgZmluZSBiZWNhdXNlIGN1cnJlbnRseSB0
aGVyZSBpcyBubyBtZXRob2QgdGhhdCB1c2VzIG1faGF2ZU1ldGFkYXRhIG9uIGl0cworICAgICAg
ICBwdXJwb3NlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGFpbnMgdGhyZWUgY2hhbmdlczoK
KworICAgICAgICAxLiBSZW1vdmUgRnJhbWVEYXRhOjptX2hhdmVNZXRhZGF0YSBmb3IgcmVhZGFi
aWxpdHkuCisgICAgICAgIE9ubHkgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkIHVzZXMgbV9oYXZl
TWV0YWRhdGEgaW4gb3JkZXIgdG8gY2hlY2sgd2hldGhlciB0aGUKKyAgICAgICAgZnJhbWUgaXMg
Y2xlYXJlZCBvciBub3QsIGFuZCBpdCBpcyBlbm91Z2ggdG8gY2hlY2sgd2hldGhlciBGcmFtZURh
dGE6Om1fZnJhbWUgaXMKKyAgICAgICAgMC4KKworICAgICAgICAyLiBEb24ndCBkZWNvZGUgYWdh
aW4gaWYgbWV0YWRhdGEgZXhpc3QuCisgICAgICAgIElmIHRoZSBpbmRleGVkIGZyYW1lIHdhcyBv
bmNlIGRlY29kZWQgY29tcGxldGVseSBhbmQgY2xlYXJlZCBieQorICAgICAgICBkZXN0cm95RGVj
b2RlZERhdGEoKSwgV2UgZG9uJ3QgbmVlZCB0byBkZWNvZGUgYWdhaW4gaW4gb3JkZXIgdG8ga25v
dyBtZXRhZGF0YQorICAgICAgICBiZWNhdXNlIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIGRvZXMgbm90
IHJlc2V0IHRoZSBtZXRhZGF0YS4gU2VlCisgICAgICAgIGRlc3Ryb3lEZWNvZGVkRGF0YSgpLgor
CisgICAgICAgIDMuIFNldCBtX2lzQ29tcGxldGUgdG8gdHJ1ZSBpbiBCaXRtYXBJbWFnZShOYXRp
dmVJbWFnZVB0ciwgSW1hZ2VPYnNlcnZlciopLgorICAgICAgICBUaGlzIGNvbnN0cnVjdG9yIGNy
ZWF0ZXMgYSBCaXRtYXBJbWFnZSBmcm9tIGEgcGxhdGZvcm0gc3BlY2lmaWMgTmF0aXZlSW1hZ2VQ
dHIuCisgICAgICAgIEl0IHNldHMgbV9mcmFtZSBvZiB0aGUgZmlyc3QgZnJhbWUgdG8gdGhlIGdp
dmVuIE5hdGl2ZUltYWdlUHRyLgorICAgICAgICBUaGUgQml0bWFwSW1hZ2UgY3JlYXRlZCBkb2Vz
IG5vdCBuZWVkIGRlY29kaW5nIGJlY2F1c2UgZGVjb2RpbmcgaXMgYWxyZWFkeSBkb25lLgorICAg
ICAgICBTbywgaXQgaXMgcHJvcGVyIHRvIHNldCBtX2lzQ29tcGxldGUgdG8gdHJ1ZS4gQ3VycmVu
dGx5LCBvbmx5IE9wZW5WRworICAgICAgICBwb3J0IHNldHMgbV9pc0NvbXBsZXRlIHRvIHRydWUu
CisKKyAgICAgICAgVGhlIHRoaXJkIGNoYW5nZSBpcyBuZWVkZWQgZm9yIHBhcmFsbGVsIGltYWdl
IGRlY29kZXJzLiBDdXJyZW50bHksCisgICAgICAgIEJpdG1hcEltYWdlIGNoZWNrcyBvbmx5IG1f
ZnJhbWUgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZGVjb2RpbmcKKyAgICAgICAgaXMg
bmVlZGVkIG9yIG5vdC4gQnV0IGFmdGVyIHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIGFyZSBsYW5k
ZWQsCisgICAgICAgIEJpdG1hcEltYWdlIGFsc28gbmVlZHMgdG8gY2hlY2sgbV9pc0NvbXBsZXRl
LiBJZiBtX2lzQ29tcGxldGUgaXMgZmFsc2UsCisgICAgICAgIEJpdG1hcEltYWdlIHdpbGwgdHJ5
IHRvIGRlY29kZSBhZ2FpbiwgYW5kIGl0IGNhbid0IGFjdHVhbGx5IGRlY29kZQorICAgICAgICBi
ZWNhdXNlIHRoZSBCaXRtYXBJbWFnZSBjcmVhdGVkIGZyb20gYSBOYXRpdmVJbWFnZVB0ciBkb2Vz
IG5vdCBoYXZlCisgICAgICAgIGVuY29kZWQgZGF0YS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkYXRhQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFtZU9yaWVudGF0aW9uQXRJbmRleCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0
YTo6c2V0RnJvbUltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6
Y2xlYXIpOgorICAgICAgICAoRnJhbWVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6Y3JlYXRl
RnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZURhdGE6OkltYWdlRnJhbWVEYXRhKToKKyAg
ICAgICAgKEltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CaXRtYXBJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpC
aXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VT
b3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVB
dEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNs
ZWFyRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL0ltYWdlV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRh
OjpjbGVhckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXJGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorCiAyMDEyLTA3LTA5ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIEJpdG1hcEltYWdl
OjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KCkgbXVzdCByZXR1cm4gZmFsc2UgaWYgSW1hZ2VEZWNv
ZGVyIGlzIG5vdCBpbml0aWFsaXplZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBiOTA5ODNhMzk4NWQxZGVmMjg5NmFhOGU5ZWMz
MTE1MWY3YTE4OWJmLi4zMjc2ODAwY2E1MjYwM2RmYjRkNGM2MTk5MTNkMWIzNDY5MDM0YmNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CkBAIC0yMDgsNyArMjA4LDcgQEAgYm9vbCBCaXRtYXBJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIC8vIE5PVEU6IERvbid0IGNhbGwgZnJhbWVJc0NvbXBs
ZXRlQXRJbmRleCgpIGhlcmUsIHRoYXQgd2lsbCB0cnkgdG8KICAgICAgICAgLy8gZGVjb2RlIGFu
eSB1bmNhY2hlZCAoaS5lLiBuZXZlci1kZWNvZGVkIG9yCiAgICAgICAgIC8vIGNsZWFyZWQtb24t
YS1wcmV2aW91cy1wYXNzKSBmcmFtZXMhCi0gICAgICAgIGlmIChtX2ZyYW1lc1tpXS5tX2hhdmVN
ZXRhZGF0YSAmJiAhbV9mcmFtZXNbaV0ubV9pc0NvbXBsZXRlKQorICAgICAgICBpZiAobV9mcmFt
ZXNbaV0ubV9mcmFtZSAmJiAhbV9mcmFtZXNbaV0ubV9pc0NvbXBsZXRlKQogICAgICAgICAgICAg
ZnJhbWVzQ2xlYXJlZCArPSAobV9mcmFtZXNbaV0uY2xlYXIodHJ1ZSkgPyAxIDogMCk7CiAgICAg
fQogICAgIGRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeShmcmFtZXNDbGVhcmVkKTsKQEAgLTMwMiw2
ICszMDIsMTEgQEAgTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6OmZyYW1lQXRJbmRleChzaXpl
X3QgaW5kZXgpCiAKIGJvb2wgQml0bWFwSW1hZ2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6
ZV90IGluZGV4KQogeworICAgIC8vIFdlIGNhbiBub3QgcmV0dXJuIGNhY2hlZCBtX2lzQ29tcGxl
dGUsIGJlY2F1c2UgY2xpZW50cyB0aGF0IGNhbGxzIHRoaXMgbWV0aG9kIGV4cGVjdAorICAgIC8v
IG1fZnJhbWUgaXMgbm90IG51bGwgaWYgdGhpcyBtZXRob2QgcmV0dXJucyB0cnVlLgorICAgIC8v
IElmIHRoZSBpbmRleGVkIGZyYW1lIHdhcyBvbmNlIGRlY29kZWQgY29tcGxldGVseSBhbmQgY2xl
YXJlZCBieSBkZXN0cm95RGVjb2RlZERhdGEoKSwKKyAgICAvLyB0aGlzIG1ldGhvZCBjYW4gcmV0
dXJuIHRydWUgYWx0aG91Z2ggbV9mcmFtZSBpcyBudWxsLgorICAgIC8vIChzZWUgZGVzdHJveURl
Y29kZWREYXRhKCkgYW5kIGZyYW1lRHVyYXRpb25BdEluZGV4KCkpCiAgICAgaWYgKCFlbnN1cmVG
cmFtZUlzQ2FjaGVkKGluZGV4KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBt
X2ZyYW1lc1tpbmRleF0ubV9pc0NvbXBsZXRlOwpAQCAtMzA5LDYgKzMxNCwxMiBAQCBib29sIEJp
dG1hcEltYWdlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRleCkKIAogZmxvYXQg
Qml0bWFwSW1hZ2U6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkKIHsKKyAgICAv
LyBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25jZSBkZWNvZGVkIGNvbXBsZXRlbHkgYW5kIGNs
ZWFyZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksCisgICAgLy8gV2UgZG9uJ3QgbmVlZCBkZWNv
ZGUgYWdhaW4gaW4gb3JkZXIgdG8ga25vdyBtZXRhIGRhdGEuCisgICAgLy8gSXQgaXMgYmVjYXVz
ZSBkZXN0cm95RGVjb2RlZERhdGEoKSBkb2VzIG5vdCByZXNldCBtZXRhIGRhdGEuIChzZWUgZGVz
dHJveURlY29kZWREYXRhKCkpCisgICAgaWYgKGluZGV4IDwgbV9mcmFtZXMuc2l6ZSgpICYmIG1f
ZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUpCisgICAgICAgIHJldHVybiBtX2ZyYW1lc1tpbmRl
eF0ubV9kdXJhdGlvbjsKKwogICAgIGlmICghZW5zdXJlRnJhbWVJc0NhY2hlZChpbmRleCkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9kdXJhdGlvbjsK
QEAgLTMyMSw2ICszMzIsMTAgQEAgTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6Om5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCkKIAogYm9vbCBCaXRtYXBJbWFnZTo6ZnJhbWVIYXNBbHBoYUF0
SW5kZXgoc2l6ZV90IGluZGV4KQogeworICAgIC8vIElmIGNhY2hlZCwgcmV0dXJuIGNhY2hlZCBt
ZXRhIGRhdGEuIChzZWUgZnJhbWVEdXJhdGlvbkF0SW5kZXgoKCkpCisgICAgaWYgKGluZGV4IDwg
bV9mcmFtZXMuc2l6ZSgpICYmIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUpCisgICAgICAg
IHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9oYXNBbHBoYTsKKwogICAgIC8vIFdoZW4gYSBmcmFt
ZSBoYXMgbm90IGZpbmlzaGVkIGRlY29kaW5nLCBhbHdheXMgbWFyayBpdCBhcyBoYXZpbmcgYWxw
aGEuCiAgICAgLy8gU2VlIEltYWdlU291cmNlOjpmcmFtZWhhc0FscGhhQXRJbmRleCBmb3IgZXhw
bGFuYXRpb24gb2Ygd2h5IGluY29tcGxldGUgaW1hZ2VzIGNsYWltIHRvIGhhdmUgYWxwaGEuCiAg
ICAgaWYgKCFlbnN1cmVGcmFtZUlzQ2FjaGVkKGluZGV4KSkKQEAgLTM0MCw2ICszNTUsMTAgQEAg
SW1hZ2VPcmllbnRhdGlvbiBCaXRtYXBJbWFnZTo6Y3VycmVudEZyYW1lT3JpZW50YXRpb24oKQog
CiBJbWFnZU9yaWVudGF0aW9uIEJpdG1hcEltYWdlOjpmcmFtZU9yaWVudGF0aW9uQXRJbmRleChz
aXplX3QgaW5kZXgpCiB7CisgICAgLy8gSWYgY2FjaGVkLCByZXR1cm4gY2FjaGVkIG1ldGEgZGF0
YS4gKHNlZSBmcmFtZUR1cmF0aW9uQXRJbmRleCgoKSkKKyAgICBpZiAoaW5kZXggPCBtX2ZyYW1l
cy5zaXplKCkgJiYgbV9mcmFtZXNbaW5kZXhdLm1faXNDb21wbGV0ZSkKKyAgICAgICAgcmV0dXJu
IG1fZnJhbWVzW2luZGV4XS5tX29yaWVudGF0aW9uOworCiAgICAgaWYgKCFlbnN1cmVGcmFtZUlz
Q2FjaGVkKGluZGV4KSkKICAgICAgICAgcmV0dXJuIERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOwog
ICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9vcmllbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDljMWMwMDY3MGNmYmI4
NjI5MWNhMWVlZDQxYzg2Y2EwYWQyODMyZDguLjgxNzcyNzNkY2Y5MGRjNWMwNDM1NTc3NjAyNWYy
NjY5YTA1MTIxYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuaApAQCAtNzIsOSArNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIDogbV9mcmFtZSgw
KQogICAgICAgICAsIG1fb3JpZW50YXRpb24oRGVmYXVsdEltYWdlT3JpZW50YXRpb24pCiAgICAg
ICAgICwgbV9kdXJhdGlvbigwKQotICAgICAgICAsIG1faGF2ZU1ldGFkYXRhKGZhbHNlKQorICAg
ICAgICAsIG1faGFzQWxwaGEodHJ1ZSkKICAgICAgICAgLCBtX2lzQ29tcGxldGUoZmFsc2UpCi0g
ICAgICAgICwgbV9oYXNBbHBoYSh0cnVlKSAKICAgICB7CiAgICAgfQogCkBAIC04OSwyMSArODgs
MzEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gZGF0YS5tX2ZyYW1lOwogICAgICAgICBt
X29yaWVudGF0aW9uID0gZGF0YS5tX29yaWVudGF0aW9uOwogICAgICAgICBtX2R1cmF0aW9uID0g
ZGF0YS5tX2R1cmF0aW9uOwotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGRhdGEubV9oYXZlTWV0
YWRhdGE7Ci0gICAgICAgIG1faXNDb21wbGV0ZSA9IGRhdGEubV9pc0NvbXBsZXRlOwogICAgICAg
ICBtX2hhc0FscGhhID0gZGF0YS5tX2hhc0FscGhhOworICAgICAgICBBU1NFUlQoIShtX2lzQ29t
cGxldGUgJiYgIWRhdGEubV9pc0NvbXBsZXRlKSk7CisgICAgICAgIG1faXNDb21wbGV0ZSA9IGRh
dGEubV9pc0NvbXBsZXRlOwogICAgIH0KIAogICAgIC8vIENsZWFyIHRoZSBjYWNoZWQgaW1hZ2Ug
ZGF0YSBvbiB0aGUgZnJhbWUsIGFuZCAob3B0aW9uYWxseSkgdGhlIG1ldGFkYXRhLgogICAgIC8v
IFJldHVybnMgd2hldGhlciB0aGVyZSB3YXMgY2FjaGVkIGltYWdlIGRhdGEgdG8gY2xlYXIuCi0g
ICAgYm9vbCBjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpOworICAgIGJvb2wgY2xlYXIoYm9vbCBj
bGVhck1ldGFkYXRhKQorICAgIHsKKyAgICAgICAgaWYgKGNsZWFyTWV0YWRhdGEpIHsKKyAgICAg
ICAgICAgIG1fb3JpZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKKyAgICAgICAg
ICAgIG1fZHVyYXRpb24gPSAwOworICAgICAgICAgICAgbV9oYXNBbHBoYSA9IHRydWU7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGNsZWFyRnJhbWUoKTsKKyAgICB9CiAKICAgICBOYXRpdmVJ
bWFnZVB0ciBtX2ZyYW1lOwogICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKICAg
ICBmbG9hdCBtX2R1cmF0aW9uOwotICAgIGJvb2wgbV9oYXZlTWV0YWRhdGEgOiAxOwotICAgIGJv
b2wgbV9pc0NvbXBsZXRlIDogMTsKICAgICBib29sIG1faGFzQWxwaGEgOiAxOworICAgIGJvb2wg
bV9pc0NvbXBsZXRlIDogMTsKKworcHJpdmF0ZToKKyAgICBib29sIGNsZWFyRnJhbWUoKTsKIH07
CiAKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApp
bmRleCAwOWE5ODZlYTc4ZDEzZGUyODZhNDE3OGQzZDZmYjZjZDU1YWQxMTQ4Li4wMjAzMzRlY2Zk
ZDU2Y2VkYTQ2ZTdhYTllMzIxZWVmMTU5MmQ0MzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xNzUsNyArMTc1LDYgQEAgSW1h
Z2VGcmFtZURhdGEgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgp
CiAgICAgfQogCiAgICAgaW1hZ2VGcmFtZURhdGEubV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9u
QXRJbmRleChidWZmZXIpOwotICAgIGltYWdlRnJhbWVEYXRhLm1faGF2ZU1ldGFkYXRhID0gdHJ1
ZTsKICAgICBpbWFnZUZyYW1lRGF0YS5tX2lzQ29tcGxldGUgPSBmcmFtZUlzQ29tcGxldGVBdElu
ZGV4KGJ1ZmZlcik7CiAgICAgaWYgKHJlcGV0aXRpb25Db3VudCgpICE9IGNBbmltYXRpb25Ob25l
KQogICAgICAgICBpbWFnZUZyYW1lRGF0YS5tX2R1cmF0aW9uID0gZnJhbWVEdXJhdGlvbkF0SW5k
ZXgoYnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5oCmluZGV4IDUxMDVjMDU5NDkxYmIyMzZkODRmODYwMGE5ZDhhNGY5NjY4N2Q5NDAuLjdi
OWMwMjA1NjUxYzJhOWUxODU2Mzc1NDVlZDQzODNiYmRiMDVlMGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtMTA5LDcgKzEwOSw2IEBA
IHB1YmxpYzoKICAgICAgICAgOiBtX2ZyYW1lKDApCiAgICAgICAgICwgbV9vcmllbnRhdGlvbihE
ZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgLCBtX2R1cmF0aW9uKDApCi0gICAgICAg
ICwgbV9oYXZlTWV0YWRhdGEoZmFsc2UpCiAgICAgICAgICwgbV9pc0NvbXBsZXRlKGZhbHNlKQog
ICAgICAgICAsIG1faGFzQWxwaGEodHJ1ZSkKICAgICB7CkBAIC0xMTgsNyArMTE3LDYgQEAgcHVi
bGljOgogICAgIE5hdGl2ZUltYWdlUHRyIG1fZnJhbWU7CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBt
X29yaWVudGF0aW9uOwogICAgIGZsb2F0IG1fZHVyYXRpb247Ci0gICAgYm9vbCBtX2hhdmVNZXRh
ZGF0YSA6IDE7CiAgICAgYm9vbCBtX2lzQ29tcGxldGUgOiAxOwogICAgIGJvb2wgbV9oYXNBbHBo
YSA6IDE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCA2NjdkMDVmOGY1OWVhMTFiZTg2
ZjIyZWRlZTRhNjMwY2ZhODU5ZDM0Li5kYzZhNGQ0YmNiNzJjNmFlNzM0ZmU3MzlhOGM0Y2U3ZDU2
NDE1ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtNjgsNyArNjgsNyBAQCBCaXRtYXBJ
bWFnZTo6Qml0bWFwSW1hZ2UoTmF0aXZlSW1hZ2VDYWlybyogbmF0aXZlSW1hZ2UsIEltYWdlT2Jz
ZXJ2ZXIqIG9ic2VydmVyKQogICAgIG1fZnJhbWVzLmdyb3coMSk7CiAgICAgbV9mcmFtZXNbMF0u
bV9mcmFtZSA9IG5hdGl2ZUltYWdlOwogICAgIG1fZnJhbWVzWzBdLm1faGFzQWxwaGEgPSBjYWly
b19zdXJmYWNlX2dldF9jb250ZW50KHN1cmZhY2UpICE9IENBSVJPX0NPTlRFTlRfQ09MT1I7Ci0g
ICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVlOworICAgIG1fZnJhbWVzWzBdLm1f
aXNDb21wbGV0ZSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiB9CiAKQEAgLTEz
MywxMSArMTMzLDggQEAgdm9pZCBCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9yKCkKICAg
ICBtX2lzU29saWRDb2xvciA9IHRydWU7CiB9CiAKLWJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29s
IGNsZWFyTWV0YWRhdGEpCitib29sIEZyYW1lRGF0YTo6Y2xlYXJGcmFtZSgpCiB7Ci0gICAgaWYg
KGNsZWFyTWV0YWRhdGEpCi0gICAgICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7Ci0KICAgICBp
ZiAobV9mcmFtZSkgewogICAgICAgICBkZWxldGUgbV9mcmFtZTsKICAgICAgICAgbV9mcmFtZSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3Bw
CmluZGV4IGZmY2Y5ZGI3NmQzMjVhNjAwNmE3OTZmZjFkM2RhMjc0ZWY4ZGEwNGYuLmM4NWJlNDY3
MGViMmE3Yzc5YzI1YTAyMDk4MjVhZTBlZDQwOGRjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCkBAIC00OSwxMyArNDksOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0
YWRhdGEpCitib29sIEZyYW1lRGF0YTo6Y2xlYXJGcmFtZSgpCiB7Ci0gICAgaWYgKGNsZWFyTWV0
YWRhdGEpCi0gICAgICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7Ci0KLSAgICBtX29yaWVudGF0
aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247Ci0KICAgICBpZiAobV9mcmFtZSkgewogICAg
ICAgICBDR0ltYWdlUmVsZWFzZShtX2ZyYW1lKTsKICAgICAgICAgbV9mcmFtZSA9IDA7CkBAIC05
OSw3ICs5NCw3IEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShDR0ltYWdlUmVmIGNnSW1hZ2Us
IEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIG1fZnJhbWVzLmdyb3coMSk7CiAgICAgbV9m
cmFtZXNbMF0ubV9mcmFtZSA9IGNnSW1hZ2U7CiAgICAgbV9mcmFtZXNbMF0ubV9oYXNBbHBoYSA9
IHRydWU7Ci0gICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVlOworICAgIG1fZnJh
bWVzWzBdLm1faXNDb21wbGV0ZSA9IHRydWU7CiAKICAgICBjaGVja0ZvclNvbGlkQ29sb3IoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
U291cmNlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VT
b3VyY2VDRy5jcHAKaW5kZXggNGJlODJkMTM3ODM5Y2U1ZmFjOGExMWI3N2JlNTY2MDVlMTg5NmE4
Ny4uNjBiYTNjOTRiNjM4MDEwNTgwNmVmZTcxODU1ZDNhNGI0M2IzNzY2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAK
QEAgLTMzOCw3ICszMzgsNiBAQCBJbWFnZUZyYW1lRGF0YSBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJh
bWVBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICBpbWFnZUZyYW1lRGF0YS5tX2ZyYW1lID0gbWFz
a2VkSW1hZ2UubGVha1JlZigpOwogCiAgICAgaW1hZ2VGcmFtZURhdGEubV9vcmllbnRhdGlvbiA9
IG9yaWVudGF0aW9uQXRJbmRleChpbmRleCk7Ci0gICAgaW1hZ2VGcmFtZURhdGEubV9oYXZlTWV0
YWRhdGEgPSB0cnVlOwogICAgIGltYWdlRnJhbWVEYXRhLm1faXNDb21wbGV0ZSA9IGZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoaW5kZXgpOwogICAgIGlmIChyZXBldGl0aW9uQ291bnQoKSAhPSBjQW5p
bWF0aW9uTm9uZSkKICAgICAgICAgaW1hZ2VGcmFtZURhdGEubV9kdXJhdGlvbiA9IGZyYW1lRHVy
YXRpb25BdEluZGV4KGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCmluZGV4IGViODA2NmM0NzQwMDNlY2E4
MWYwZTE3MmY3YWZkYTQ5ZDYwNzRmYTMuLmNkODc5NGU1MzljZmQ1MGVlODhhNzdlMDdjNDVmODJh
YjljZDczNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW52Zy9JbWFnZU9wZW5WRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcApAQCAtMzcsMTEgKzM3LDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKQor
Ym9vbCBGcmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFkYXRhKQot
ICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAg
ICAgICAgZGVsZXRlIG1fZnJhbWU7CiAgICAgICAgIG1fZnJhbWUgPSAwOwpAQCAtNzksNyArNzYs
NiBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoVGlsZWRJbWFnZU9wZW5WRyogdGlsZWRJbWFn
ZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgbV9mcmFtZXNbMF0ubV9mcmFtZSA9IHRp
bGVkSW1hZ2U7CiAgICAgbV9mcmFtZXNbMF0ubV9oYXNBbHBoYSA9IHRydWU7CiAgICAgbV9mcmFt
ZXNbMF0ubV9pc0NvbXBsZXRlID0gdHJ1ZTsKLSAgICBtX2ZyYW1lc1swXS5tX2hhdmVNZXRhZGF0
YSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAKaW5kZXggZGFmMDBiZWJlNDJi
ZTBjOWJhMDZjYmY3ZTRjYTYxNDBiZmI4NzNiZS4uZmNhNzU5MDVmNWRjM2Q0MjY5NmVjODk1MGVj
NTFlM2ZlNzdkMGIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VRdC5jcHAKQEAgLTk3LDExICs5Nyw4IEBAIHN0YXRpYyBRUGl4bWFwIGxvYWRSZXNv
dXJjZVBpeG1hcChjb25zdCBjaGFyICpuYW1lKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJv
b2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCitib29sIEZyYW1lRGF0YTo6
Y2xlYXJGcmFtZSgpCiB7Ci0gICAgaWYgKGNsZWFyTWV0YWRhdGEpCi0gICAgICAgIG1faGF2ZU1l
dGFkYXRhID0gZmFsc2U7Ci0KICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBkZWxldGUgbV9m
cmFtZTsKICAgICAgICAgbV9mcmFtZSA9IDA7CkBAIC0yMjEsNyArMjE4LDcgQEAgQml0bWFwSW1h
Z2U6OkJpdG1hcEltYWdlKFFQaXhtYXAqIHBpeG1hcCwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIp
CiAgICAgbV9mcmFtZXMuZ3JvdygxKTsKICAgICBtX2ZyYW1lc1swXS5tX2ZyYW1lID0gcGl4bWFw
OwogICAgIG1fZnJhbWVzWzBdLm1faGFzQWxwaGEgPSBwaXhtYXAtPmhhc0FscGhhKCk7Ci0gICAg
bV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRhdGEgPSB0cnVlOworICAgIG1fZnJhbWVzWzBdLm1faXND
b21wbGV0ZSA9IHRydWU7CiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcAppbmRl
eCA2YTRiY2IwYTMwMjFkODI5MDUwNzc1ODQxOTNkZDk4YThmNDM5NmQ4Li4wNGRkYzM0MWQzMzkx
OWI1MTRmYWMwNWM0ZDg0YWM5OTUzMWI2ZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCkBAIC0zMTgsMTEgKzMxOCw4IEBA
IEZsb2F0UmVjdCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1
cm4gbm9ybTsKIH0KIAotYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkK
K2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkKIHsKLSAgICBpZiAoY2xlYXJNZXRhZGF0YSkK
LSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKLQogICAgIGlmIChtX2ZyYW1lKSB7CiAg
ICAgICAgIC8vIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoKSBhbGxvY2F0ZWQgfG1f
ZnJhbWV8IGFuZCBwYXNzZWQKICAgICAgICAgLy8gb3duZXJzaGlwIHRvIEJpdG1hcEltYWdlOyB3
ZSBtdXN0IGRlbGV0ZSBpdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAppbmRleCAyM2QzYjNhMmNhNWEwZDBjODUz
YjcwYmRkYTgyYWJkNDZkYTRmMWYzLi40ZTczNjFmNDExZmE0OWRiNWRiYzhhM2RjOWNhNzNlYzFk
NjNhMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9JbWFnZVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9JbWFnZVdpbkNFLmNwcApAQCAtNDYsMTEgKzQ2LDggQEAgTmF0aXZlSW1hZ2VQdHIgSW1h
Z2VGcmFtZTo6YXNOZXdOYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNoYXJlZEJpdG1h
cDo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLCBtX3NpemUsIGhhc0FscGhhKCkpOwogfQogCi1ib29s
IEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFEYXRhKQorYm9vbCBGcmFtZURhdGE6OmNs
ZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFEYXRhKQotICAgICAgICBtX2hhdmVNZXRh
ZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgbV9mcmFtZSA9IDA7
CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd3gvSW1hZ2VXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9JbWFnZVd4LmNwcAppbmRleCA3NDY1NWYzOGZlNzk2M2NkM2MyOGVjMTNhNjUyMjJi
ZjRiZDdmMDFiLi5iN2MyNDk2YzczYjUyNjVmMWQ4NTM0ZTMzN2VlOGMyMGZlMzAyOTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcApAQCAt
NTIsMTEgKzUyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdGhpcyBpcyBpbiBHcmFwaGlj
c0NvbnRleHRXeC5jcHAKIGludCBnZXRXeENvbXBvc2l0aW5nT3BlcmF0aW9uKENvbXBvc2l0ZU9w
ZXJhdG9yIG9wLCBib29sIGhhc0FscGhhKTsKIAotYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wg
Y2xlYXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkKIHsKLSAgICBpZiAo
Y2xlYXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKLQogICAgIGlm
IChtX2ZyYW1lKSB7CiAgICAgICAgIGRlbGV0ZSBtX2ZyYW1lOwogICAgICAgICBtX2ZyYW1lID0g
MDsKQEAgLTExNCw3ICsxMTEsNyBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoY29uc3Qgd3hC
aXRtYXAmIGJpdG1hcCkKICAgICAKICAgICAgICAgbV9mcmFtZXMuZ3JvdygxKTsKICAgICAgICAg
bV9mcmFtZXNbMF0ubV9mcmFtZSA9IGdibXA7Ci0gICAgICAgIG1fZnJhbWVzWzBdLm1faGF2ZU1l
dGFkYXRhID0gdHJ1ZTsKKyAgICAgICAgbV9mcmFtZXNbMF0ubV9pc0NvbXBsZXRlID0gdHJ1ZTsK
ICAgICAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152894</attachid>
            <date>2012-07-17 18:04:01 -0700</date>
            <delta_ts>2012-08-08 05:06:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90758-20120718100341.patch</filename>
            <type>text/plain</type>
            <size>17200</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBlNmFjM2FhNjRiMzk3
ZGIyOTg4NmUwNjE4NjVhNDU1NDAyZTRjOS4uMmNmMDY5ZDFmYjgxZGQzZjE5MGIxZjFkNDMxNTI1
YjA0NzljZDg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg1IEBACiAyMDEyLTA3LTE3ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFJlZmFjdG9y
aW5nIG1ldGFkYXRhIG9mIEJpdG1hcEltYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA3NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBwcmVjaXNlIGRlZmluaXRpb24gb2YgRnJh
bWVEYXRhJ3MgbWV0YWRhdGEuIFNvIEkgYXNzdW1lIHRoZSBtZXRhZGF0YQorICAgICAgICBhcyBh
IGNvbWJpbmF0aW9uIG9mIG1fb3JpZW50YXRpb24sIG1fZHVyYXRpb24sIGFuZCBtX2hhc0FscGhh
LiBUaGlzIGRlZmluaXRpb24KKyAgICAgICAgd29ya3MgZmluZSBiZWNhdXNlIGN1cnJlbnRseSB0
aGVyZSBpcyBubyBtZXRob2QgdGhhdCB1c2VzIG1faGF2ZU1ldGFkYXRhIG9uIGl0cworICAgICAg
ICBwdXJwb3NlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGFpbnMgdGhyZWUgY2hhbmdlczoK
KworICAgICAgICAxLiBSZW1vdmUgRnJhbWVEYXRhOjptX2hhdmVNZXRhZGF0YSBmb3IgcmVhZGFi
aWxpdHkuCisgICAgICAgIE9ubHkgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkIHVzZXMgbV9oYXZl
TWV0YWRhdGEgaW4gb3JkZXIgdG8gY2hlY2sgd2hldGhlciB0aGUKKyAgICAgICAgZnJhbWUgaXMg
Y2xlYXJlZCBvciBub3QsIGFuZCBpdCBpcyBlbm91Z2ggdG8gY2hlY2sgd2hldGhlciBGcmFtZURh
dGE6Om1fZnJhbWUgaXMKKyAgICAgICAgMC4KKworICAgICAgICAyLiBEb24ndCBkZWNvZGUgYWdh
aW4gaWYgbWV0YWRhdGEgZXhpc3QuCisgICAgICAgIElmIHRoZSBpbmRleGVkIGZyYW1lIHdhcyBv
bmNlIGRlY29kZWQgY29tcGxldGVseSBhbmQgY2xlYXJlZCBieQorICAgICAgICBkZXN0cm95RGVj
b2RlZERhdGEoKSwgV2UgZG9uJ3QgbmVlZCB0byBkZWNvZGUgYWdhaW4gaW4gb3JkZXIgdG8ga25v
dyBtZXRhZGF0YQorICAgICAgICBiZWNhdXNlIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIGRvZXMgbm90
IHJlc2V0IHRoZSBtZXRhZGF0YS4gU2VlCisgICAgICAgIGRlc3Ryb3lEZWNvZGVkRGF0YSgpLgor
CisgICAgICAgIDMuIFNldCBtX2lzQ29tcGxldGUgdG8gdHJ1ZSBpbiBCaXRtYXBJbWFnZShOYXRp
dmVJbWFnZVB0ciwgSW1hZ2VPYnNlcnZlciopLgorICAgICAgICBUaGlzIGNvbnN0cnVjdG9yIGNy
ZWF0ZXMgYSBCaXRtYXBJbWFnZSBmcm9tIGEgcGxhdGZvcm0gc3BlY2lmaWMgTmF0aXZlSW1hZ2VQ
dHIuCisgICAgICAgIEl0IHNldHMgbV9mcmFtZSBvZiB0aGUgZmlyc3QgZnJhbWUgdG8gdGhlIGdp
dmVuIE5hdGl2ZUltYWdlUHRyLgorICAgICAgICBUaGUgQml0bWFwSW1hZ2UgY3JlYXRlZCBkb2Vz
IG5vdCBuZWVkIGRlY29kaW5nIGJlY2F1c2UgZGVjb2RpbmcgaXMgYWxyZWFkeSBkb25lLgorICAg
ICAgICBTbywgaXQgaXMgcHJvcGVyIHRvIHNldCBtX2lzQ29tcGxldGUgdG8gdHJ1ZS4gQ3VycmVu
dGx5LCBvbmx5IE9wZW5WRworICAgICAgICBwb3J0IHNldHMgbV9pc0NvbXBsZXRlIHRvIHRydWUu
CisKKyAgICAgICAgVGhlIHRoaXJkIGNoYW5nZSBpcyBuZWVkZWQgZm9yIHBhcmFsbGVsIGltYWdl
IGRlY29kZXJzLiBDdXJyZW50bHksCisgICAgICAgIEJpdG1hcEltYWdlIGNoZWNrcyBvbmx5IG1f
ZnJhbWUgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZGVjb2RpbmcKKyAgICAgICAgaXMg
bmVlZGVkIG9yIG5vdC4gQnV0IGFmdGVyIHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIGFyZSBsYW5k
ZWQsCisgICAgICAgIEJpdG1hcEltYWdlIGFsc28gbmVlZHMgdG8gY2hlY2sgbV9pc0NvbXBsZXRl
LiBJZiBtX2lzQ29tcGxldGUgaXMgZmFsc2UsCisgICAgICAgIEJpdG1hcEltYWdlIHdpbGwgdHJ5
IHRvIGRlY29kZSBhZ2FpbiwgYW5kIGl0IGNhbid0IGFjdHVhbGx5IGRlY29kZQorICAgICAgICBi
ZWNhdXNlIHRoZSBCaXRtYXBJbWFnZSBjcmVhdGVkIGZyb20gYSBOYXRpdmVJbWFnZVB0ciBkb2Vz
IG5vdCBoYXZlCisgICAgICAgIGVuY29kZWQgZGF0YS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkYXRhQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFtZU9yaWVudGF0aW9uQXRJbmRleCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0
YTo6c2V0RnJvbUltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6
Y2xlYXIpOgorICAgICAgICAoRnJhbWVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6Y3JlYXRl
RnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZURhdGE6OkltYWdlRnJhbWVEYXRhKToKKyAg
ICAgICAgKEltYWdlRnJhbWVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CaXRtYXBJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpC
aXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VT
b3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVB
dEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhckZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNs
ZWFyRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL0ltYWdlV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRh
OjpjbGVhckZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXJGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UpOgorCisyMDEyLTA3LTE3ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCiAgICAgICAgIFByZXBhcmUgZm9y
IHBhcmFsbGVsIGltYWdlIGRlY29kZXIuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MDQ0MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggYjkwOTgzYTM5ODVkMWRlZjI4OTZhYThlOWVj
MzExNTFmN2ExODliZi4uMzI3NjgwMGNhNTI2MDNkZmI0ZDRjNjE5OTEzZDFiMzQ2OTAzNGJjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cApAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wg
YWxsRGF0YVJlY2VpdmVkKQogICAgICAgICAvLyBOT1RFOiBEb24ndCBjYWxsIGZyYW1lSXNDb21w
bGV0ZUF0SW5kZXgoKSBoZXJlLCB0aGF0IHdpbGwgdHJ5IHRvCiAgICAgICAgIC8vIGRlY29kZSBh
bnkgdW5jYWNoZWQgKGkuZS4gbmV2ZXItZGVjb2RlZCBvcgogICAgICAgICAvLyBjbGVhcmVkLW9u
LWEtcHJldmlvdXMtcGFzcykgZnJhbWVzIQotICAgICAgICBpZiAobV9mcmFtZXNbaV0ubV9oYXZl
TWV0YWRhdGEgJiYgIW1fZnJhbWVzW2ldLm1faXNDb21wbGV0ZSkKKyAgICAgICAgaWYgKG1fZnJh
bWVzW2ldLm1fZnJhbWUgJiYgIW1fZnJhbWVzW2ldLm1faXNDb21wbGV0ZSkKICAgICAgICAgICAg
IGZyYW1lc0NsZWFyZWQgKz0gKG1fZnJhbWVzW2ldLmNsZWFyKHRydWUpID8gMSA6IDApOwogICAg
IH0KICAgICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJhbWVzQ2xlYXJlZCk7CkBAIC0zMDIs
NiArMzAyLDExIEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcEltYWdlOjpmcmFtZUF0SW5kZXgoc2l6
ZV90IGluZGV4KQogCiBib29sIEJpdG1hcEltYWdlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNp
emVfdCBpbmRleCkKIHsKKyAgICAvLyBXZSBjYW4gbm90IHJldHVybiBjYWNoZWQgbV9pc0NvbXBs
ZXRlLCBiZWNhdXNlIGNsaWVudHMgdGhhdCBjYWxscyB0aGlzIG1ldGhvZCBleHBlY3QKKyAgICAv
LyBtX2ZyYW1lIGlzIG5vdCBudWxsIGlmIHRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZS4KKyAgICAv
LyBJZiB0aGUgaW5kZXhlZCBmcmFtZSB3YXMgb25jZSBkZWNvZGVkIGNvbXBsZXRlbHkgYW5kIGNs
ZWFyZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksCisgICAgLy8gdGhpcyBtZXRob2QgY2FuIHJl
dHVybiB0cnVlIGFsdGhvdWdoIG1fZnJhbWUgaXMgbnVsbC4KKyAgICAvLyAoc2VlIGRlc3Ryb3lE
ZWNvZGVkRGF0YSgpIGFuZCBmcmFtZUR1cmF0aW9uQXRJbmRleCgpKQogICAgIGlmICghZW5zdXJl
RnJhbWVJc0NhY2hlZChpbmRleCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
bV9mcmFtZXNbaW5kZXhdLm1faXNDb21wbGV0ZTsKQEAgLTMwOSw2ICszMTQsMTIgQEAgYm9vbCBC
aXRtYXBJbWFnZTo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpCiAKIGZsb2F0
IEJpdG1hcEltYWdlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCiB7CisgICAg
Ly8gSWYgdGhlIGluZGV4ZWQgZnJhbWUgd2FzIG9uY2UgZGVjb2RlZCBjb21wbGV0ZWx5IGFuZCBj
bGVhcmVkIGJ5IGRlc3Ryb3lEZWNvZGVkRGF0YSgpLAorICAgIC8vIFdlIGRvbid0IG5lZWQgZGVj
b2RlIGFnYWluIGluIG9yZGVyIHRvIGtub3cgbWV0YSBkYXRhLgorICAgIC8vIEl0IGlzIGJlY2F1
c2UgZGVzdHJveURlY29kZWREYXRhKCkgZG9lcyBub3QgcmVzZXQgbWV0YSBkYXRhLiAoc2VlIGRl
c3Ryb3lEZWNvZGVkRGF0YSgpKQorICAgIGlmIChpbmRleCA8IG1fZnJhbWVzLnNpemUoKSAmJiBt
X2ZyYW1lc1tpbmRleF0ubV9pc0NvbXBsZXRlKQorICAgICAgICByZXR1cm4gbV9mcmFtZXNbaW5k
ZXhdLm1fZHVyYXRpb247CisKICAgICBpZiAoIWVuc3VyZUZyYW1lSXNDYWNoZWQoaW5kZXgpKQog
ICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gbV9mcmFtZXNbaW5kZXhdLm1fZHVyYXRpb247
CkBAIC0zMjEsNiArMzMyLDEwIEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcEltYWdlOjpuYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZSgpCiAKIGJvb2wgQml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFB
dEluZGV4KHNpemVfdCBpbmRleCkKIHsKKyAgICAvLyBJZiBjYWNoZWQsIHJldHVybiBjYWNoZWQg
bWV0YSBkYXRhLiAoc2VlIGZyYW1lRHVyYXRpb25BdEluZGV4KCgpKQorICAgIGlmIChpbmRleCA8
IG1fZnJhbWVzLnNpemUoKSAmJiBtX2ZyYW1lc1tpbmRleF0ubV9pc0NvbXBsZXRlKQorICAgICAg
ICByZXR1cm4gbV9mcmFtZXNbaW5kZXhdLm1faGFzQWxwaGE7CisKICAgICAvLyBXaGVuIGEgZnJh
bWUgaGFzIG5vdCBmaW5pc2hlZCBkZWNvZGluZywgYWx3YXlzIG1hcmsgaXQgYXMgaGF2aW5nIGFs
cGhhLgogICAgIC8vIFNlZSBJbWFnZVNvdXJjZTo6ZnJhbWVoYXNBbHBoYUF0SW5kZXggZm9yIGV4
cGxhbmF0aW9uIG9mIHdoeSBpbmNvbXBsZXRlIGltYWdlcyBjbGFpbSB0byBoYXZlIGFscGhhLgog
ICAgIGlmICghZW5zdXJlRnJhbWVJc0NhY2hlZChpbmRleCkpCkBAIC0zNDAsNiArMzU1LDEwIEBA
IEltYWdlT3JpZW50YXRpb24gQml0bWFwSW1hZ2U6OmN1cnJlbnRGcmFtZU9yaWVudGF0aW9uKCkK
IAogSW1hZ2VPcmllbnRhdGlvbiBCaXRtYXBJbWFnZTo6ZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgo
c2l6ZV90IGluZGV4KQogeworICAgIC8vIElmIGNhY2hlZCwgcmV0dXJuIGNhY2hlZCBtZXRhIGRh
dGEuIChzZWUgZnJhbWVEdXJhdGlvbkF0SW5kZXgoKCkpCisgICAgaWYgKGluZGV4IDwgbV9mcmFt
ZXMuc2l6ZSgpICYmIG1fZnJhbWVzW2luZGV4XS5tX2lzQ29tcGxldGUpCisgICAgICAgIHJldHVy
biBtX2ZyYW1lc1tpbmRleF0ubV9vcmllbnRhdGlvbjsKKwogICAgIGlmICghZW5zdXJlRnJhbWVJ
c0NhY2hlZChpbmRleCkpCiAgICAgICAgIHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsK
ICAgICByZXR1cm4gbV9mcmFtZXNbaW5kZXhdLm1fb3JpZW50YXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA5YzFjMDA2NzBjZmJi
ODYyOTFjYTFlZWQ0MWM4NmNhMGFkMjgzMmQ4Li44MTc3MjczZGNmOTBkYzVjMDQzNTU3NzYwMjVm
MjY2OWEwNTEyMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKQEAgLTcyLDkgKzcyLDggQEAgcHVibGljOgogICAgICAgICA6IG1fZnJhbWUo
MCkKICAgICAgICAgLCBtX29yaWVudGF0aW9uKERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKQogICAg
ICAgICAsIG1fZHVyYXRpb24oMCkKLSAgICAgICAgLCBtX2hhdmVNZXRhZGF0YShmYWxzZSkKKyAg
ICAgICAgLCBtX2hhc0FscGhhKHRydWUpCiAgICAgICAgICwgbV9pc0NvbXBsZXRlKGZhbHNlKQot
ICAgICAgICAsIG1faGFzQWxwaGEodHJ1ZSkgCiAgICAgewogICAgIH0KIApAQCAtODksMjEgKzg4
LDMxIEBAIHB1YmxpYzoKICAgICAgICAgbV9mcmFtZSA9IGRhdGEubV9mcmFtZTsKICAgICAgICAg
bV9vcmllbnRhdGlvbiA9IGRhdGEubV9vcmllbnRhdGlvbjsKICAgICAgICAgbV9kdXJhdGlvbiA9
IGRhdGEubV9kdXJhdGlvbjsKLSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBkYXRhLm1faGF2ZU1l
dGFkYXRhOwotICAgICAgICBtX2lzQ29tcGxldGUgPSBkYXRhLm1faXNDb21wbGV0ZTsKICAgICAg
ICAgbV9oYXNBbHBoYSA9IGRhdGEubV9oYXNBbHBoYTsKKyAgICAgICAgQVNTRVJUKCEobV9pc0Nv
bXBsZXRlICYmICFkYXRhLm1faXNDb21wbGV0ZSkpOworICAgICAgICBtX2lzQ29tcGxldGUgPSBk
YXRhLm1faXNDb21wbGV0ZTsKICAgICB9CiAKICAgICAvLyBDbGVhciB0aGUgY2FjaGVkIGltYWdl
IGRhdGEgb24gdGhlIGZyYW1lLCBhbmQgKG9wdGlvbmFsbHkpIHRoZSBtZXRhZGF0YS4KICAgICAv
LyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgd2FzIGNhY2hlZCBpbWFnZSBkYXRhIHRvIGNsZWFyLgot
ICAgIGJvb2wgY2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKTsKKyAgICBib29sIGNsZWFyKGJvb2wg
Y2xlYXJNZXRhZGF0YSkKKyAgICB7CisgICAgICAgIGlmIChjbGVhck1ldGFkYXRhKSB7CisgICAg
ICAgICAgICBtX29yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247CisgICAgICAg
ICAgICBtX2R1cmF0aW9uID0gMDsKKyAgICAgICAgICAgIG1faGFzQWxwaGEgPSB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBjbGVhckZyYW1lKCk7CisgICAgfQogCiAgICAgTmF0aXZl
SW1hZ2VQdHIgbV9mcmFtZTsKICAgICBJbWFnZU9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CiAg
ICAgZmxvYXQgbV9kdXJhdGlvbjsKLSAgICBib29sIG1faGF2ZU1ldGFkYXRhIDogMTsKLSAgICBi
b29sIG1faXNDb21wbGV0ZSA6IDE7CiAgICAgYm9vbCBtX2hhc0FscGhhIDogMTsKKyAgICBib29s
IG1faXNDb21wbGV0ZSA6IDE7CisKK3ByaXZhdGU6CisgICAgYm9vbCBjbGVhckZyYW1lKCk7CiB9
OwogCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
aW5kZXggMDlhOTg2ZWE3OGQxM2RlMjg2YTQxNzhkM2Q2ZmI2Y2Q1NWFkMTE0OC4uMDIwMzM0ZWNm
ZGQ1NmNlZGE0NmU3YWE5ZTMyMWVlZjE1OTJkNDM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAtMTc1LDcgKzE3NSw2IEBAIElt
YWdlRnJhbWVEYXRhIEltYWdlU291cmNlOjpjcmVhdGVGcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4
KQogICAgIH0KIAogICAgIGltYWdlRnJhbWVEYXRhLm1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlv
bkF0SW5kZXgoYnVmZmVyKTsKLSAgICBpbWFnZUZyYW1lRGF0YS5tX2hhdmVNZXRhZGF0YSA9IHRy
dWU7CiAgICAgaW1hZ2VGcmFtZURhdGEubV9pc0NvbXBsZXRlID0gZnJhbWVJc0NvbXBsZXRlQXRJ
bmRleChidWZmZXIpOwogICAgIGlmIChyZXBldGl0aW9uQ291bnQoKSAhPSBjQW5pbWF0aW9uTm9u
ZSkKICAgICAgICAgaW1hZ2VGcmFtZURhdGEubV9kdXJhdGlvbiA9IGZyYW1lRHVyYXRpb25BdElu
ZGV4KGJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuaAppbmRleCAxOGVkOTkzNjU5MmUzZTZiZmQzM2UwZGYyODdmNTZhOTYyMjE5ZTdiLi4y
ZTY0ZDdkZWE3MzczNGU3ZjcwOGFmNjBkMjlhMzFiODQxMmYxODA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTEwOSw3ICsxMDksNiBA
QCBwdWJsaWM6CiAgICAgICAgIDogbV9mcmFtZSgwKQogICAgICAgICAsIG1fb3JpZW50YXRpb24o
RGVmYXVsdEltYWdlT3JpZW50YXRpb24pCiAgICAgICAgICwgbV9kdXJhdGlvbigwKQotICAgICAg
ICAsIG1faGF2ZU1ldGFkYXRhKGZhbHNlKQogICAgICAgICAsIG1faXNDb21wbGV0ZShmYWxzZSkK
ICAgICAgICAgLCBtX2hhc0FscGhhKHRydWUpCiAgICAgewpAQCAtMTE4LDcgKzExNyw2IEBAIHB1
YmxpYzoKICAgICBOYXRpdmVJbWFnZVB0ciBtX2ZyYW1lOwogICAgIEltYWdlT3JpZW50YXRpb24g
bV9vcmllbnRhdGlvbjsKICAgICBmbG9hdCBtX2R1cmF0aW9uOwotICAgIGJvb2wgbV9oYXZlTWV0
YWRhdGEgOiAxOwogICAgIGJvb2wgbV9pc0NvbXBsZXRlIDogMTsKICAgICBib29sIG1faGFzQWxw
aGEgOiAxOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKaW5kZXggNjY3ZDA1ZjhmNTllYTExYmU4
NmYyMmVkZWU0YTYzMGNmYTg1OWQzNC4uZGM2YTRkNGJjYjcyYzZhZTczNGZlNzM5YThjNGNlN2Q1
NjQxNWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgQml0bWFw
SW1hZ2U6OkJpdG1hcEltYWdlKE5hdGl2ZUltYWdlQ2Fpcm8qIG5hdGl2ZUltYWdlLCBJbWFnZU9i
c2VydmVyKiBvYnNlcnZlcikKICAgICBtX2ZyYW1lcy5ncm93KDEpOwogICAgIG1fZnJhbWVzWzBd
Lm1fZnJhbWUgPSBuYXRpdmVJbWFnZTsKICAgICBtX2ZyYW1lc1swXS5tX2hhc0FscGhhID0gY2Fp
cm9fc3VyZmFjZV9nZXRfY29udGVudChzdXJmYWNlKSAhPSBDQUlST19DT05URU5UX0NPTE9SOwot
ICAgIG1fZnJhbWVzWzBdLm1faGF2ZU1ldGFkYXRhID0gdHJ1ZTsKKyAgICBtX2ZyYW1lc1swXS5t
X2lzQ29tcGxldGUgPSB0cnVlOwogICAgIGNoZWNrRm9yU29saWRDb2xvcigpOwogfQogCkBAIC0x
MzMsMTEgKzEzMyw4IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiAg
ICAgbV9pc1NvbGlkQ29sb3IgPSB0cnVlOwogfQogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9v
bCBjbGVhck1ldGFkYXRhKQorYm9vbCBGcmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlm
IChjbGVhck1ldGFkYXRhKQotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAg
aWYgKG1fZnJhbWUpIHsKICAgICAgICAgZGVsZXRlIG1fZnJhbWU7CiAgICAgICAgIG1fZnJhbWUg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNw
cAppbmRleCBhYTNiODJhNTBmOWIwNGY3NDdiYmRkOWIxZDdmOGQ1MmU3N2E3ZGU2Li43M2NlZTIy
MDVkNWYyZDk3MWI5ZGFhYWI2MzQzNWVjZjUxOTAwYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcApAQCAtNDksMTMgKzQ5LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1l
dGFkYXRhKQorYm9vbCBGcmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1l
dGFkYXRhKQotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCi0gICAgbV9vcmllbnRh
dGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOwotCiAgICAgaWYgKG1fZnJhbWUpIHsKICAg
ICAgICAgQ0dJbWFnZVJlbGVhc2UobV9mcmFtZSk7CiAgICAgICAgIG1fZnJhbWUgPSAwOwpAQCAt
OTksNyArOTQsNyBAQCBCaXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoQ0dJbWFnZVJlZiBjZ0ltYWdl
LCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlcikKICAgICBtX2ZyYW1lcy5ncm93KDEpOwogICAgIG1f
ZnJhbWVzWzBdLm1fZnJhbWUgPSBjZ0ltYWdlOwogICAgIG1fZnJhbWVzWzBdLm1faGFzQWxwaGEg
PSB0cnVlOwotICAgIG1fZnJhbWVzWzBdLm1faGF2ZU1ldGFkYXRhID0gdHJ1ZTsKKyAgICBtX2Zy
YW1lc1swXS5tX2lzQ29tcGxldGUgPSB0cnVlOwogCiAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
U291cmNlQ0cuY3BwCmluZGV4IGZiMGUzMTE1MmEyOWM1ZWJiYWUyOGVmNTRlOTdlN2JjYWI5YTAw
YTEuLmI0NDU0OTkzYjUyODdjNTRmZjc0YjI5YjBkZTAzMDYyNzZhZmI0MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3Bw
CkBAIC0zMzgsNyArMzM4LDYgQEAgSW1hZ2VGcmFtZURhdGEgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZy
YW1lQXRJbmRleChzaXplX3QgaW5kZXgpCiAgICAgaW1hZ2VGcmFtZURhdGEubV9mcmFtZSA9IG1h
c2tlZEltYWdlLmxlYWtSZWYoKTsKIAogICAgIGltYWdlRnJhbWVEYXRhLm1fb3JpZW50YXRpb24g
PSBvcmllbnRhdGlvbkF0SW5kZXgoaW5kZXgpOwotICAgIGltYWdlRnJhbWVEYXRhLm1faGF2ZU1l
dGFkYXRhID0gdHJ1ZTsKICAgICBpbWFnZUZyYW1lRGF0YS5tX2lzQ29tcGxldGUgPSBmcmFtZUlz
Q29tcGxldGVBdEluZGV4KGluZGV4KTsKICAgICBpZiAocmVwZXRpdGlvbkNvdW50KCkgIT0gY0Fu
aW1hdGlvbk5vbmUpCiAgICAgICAgIGltYWdlRnJhbWVEYXRhLm1fZHVyYXRpb24gPSBmcmFtZUR1
cmF0aW9uQXRJbmRleChpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAppbmRleCBlYjgwNjZjNDc0MDAzZWNh
ODFmMGUxNzJmN2FmZGE0OWQ2MDc0ZmEzLi5jZDg3OTRlNTM5Y2ZkNTBlZTg4YTc3ZTA3YzQ1Zjgy
YWI5Y2Q3MzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVudmcvSW1hZ2VPcGVuVkcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKQEAgLTM3LDExICszNyw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkK
K2Jvb2wgRnJhbWVEYXRhOjpjbGVhckZyYW1lKCkKIHsKLSAgICBpZiAoY2xlYXJNZXRhZGF0YSkK
LSAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKLQogICAgIGlmIChtX2ZyYW1lKSB7CiAg
ICAgICAgIGRlbGV0ZSBtX2ZyYW1lOwogICAgICAgICBtX2ZyYW1lID0gMDsKQEAgLTc5LDcgKzc2
LDYgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFRpbGVkSW1hZ2VPcGVuVkcqIHRpbGVkSW1h
Z2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIG1fZnJhbWVzWzBdLm1fZnJhbWUgPSB0
aWxlZEltYWdlOwogICAgIG1fZnJhbWVzWzBdLm1faGFzQWxwaGEgPSB0cnVlOwogICAgIG1fZnJh
bWVzWzBdLm1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9mcmFtZXNbMF0ubV9oYXZlTWV0YWRh
dGEgPSB0cnVlOwogICAgIGNoZWNrRm9yU29saWRDb2xvcigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCmluZGV4IDIzNjQyOGI1NGU2
OTdlYjJjZGI4MGYxYjNmMzVjOWUzNzA3YWViMzIuLmU2NzVjZDQyYmYzMTA5NGVhYWJlZDE4MTA4
NDBlNzhmMGExNjQxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0ltYWdlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0ltYWdlUXQuY3BwCkBAIC05OCwxMSArOTgsOCBAQCBzdGF0aWMgUUltYWdlIGxvYWRSZXNv
dXJjZUltYWdlKGNvbnN0IGNoYXIgKm5hbWUpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9v
bCBGcmFtZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKK2Jvb2wgRnJhbWVEYXRhOjpj
bGVhckZyYW1lKCkKIHsKLSAgICBpZiAoY2xlYXJNZXRhZGF0YSkKLSAgICAgICAgbV9oYXZlTWV0
YWRhdGEgPSBmYWxzZTsKLQogICAgIGlmIChtX2ZyYW1lKSB7CiAgICAgICAgIGRlbGV0ZSBtX2Zy
YW1lOwogICAgICAgICBtX2ZyYW1lID0gMDsKQEAgLTIyNiw3ICsyMjMsNyBAQCBCaXRtYXBJbWFn
ZTo6Qml0bWFwSW1hZ2UoUUltYWdlKiBpbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAg
ICAgbV9mcmFtZXMuZ3JvdygxKTsKICAgICBtX2ZyYW1lc1swXS5tX2ZyYW1lID0gaW1hZ2U7CiAg
ICAgbV9mcmFtZXNbMF0ubV9oYXNBbHBoYSA9IGltYWdlLT5oYXNBbHBoYUNoYW5uZWwoKTsKLSAg
ICBtX2ZyYW1lc1swXS5tX2hhdmVNZXRhZGF0YSA9IHRydWU7CisgICAgbV9mcmFtZXNbMF0ubV9p
c0NvbXBsZXRlID0gdHJ1ZTsKICAgICBjaGVja0ZvclNvbGlkQ29sb3IoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwCmlu
ZGV4IDZhNGJjYjBhMzAyMWQ4MjkwNTA3NzU4NDE5M2RkOThhOGY0Mzk2ZDguLjA0ZGRjMzQxZDMz
OTE5YjUxNGZhYzA1YzRkODRhYzk5NTMxYjZkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKQEAgLTMxOCwxMSArMzE4LDgg
QEAgRmxvYXRSZWN0IG5vcm1hbGl6ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIHJl
dHVybiBub3JtOwogfQogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9vbCBjbGVhck1ldGFkYXRh
KQorYm9vbCBGcmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlmIChjbGVhck1ldGFkYXRh
KQotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZnJhbWUpIHsK
ICAgICAgICAgLy8gSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lQXRJbmRleCgpIGFsbG9jYXRlZCB8
bV9mcmFtZXwgYW5kIHBhc3NlZAogICAgICAgICAvLyBvd25lcnNoaXAgdG8gQml0bWFwSW1hZ2U7
IHdlIG11c3QgZGVsZXRlIGl0IGhlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlV2luQ0UuY3BwCmluZGV4IDIzZDNiM2EyY2E1YTBkMGM4
NTNiNzBiZGRhODJhYmQ0NmRhNGYxZjMuLjRlNzM2MWY0MTFmYTQ5ZGI1ZGJjOGEzZGM5Y2E3M2Vj
MWQ2M2ExNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ltYWdlV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0ltYWdlV2luQ0UuY3BwCkBAIC00NiwxMSArNDYsOCBAQCBOYXRpdmVJbWFnZVB0ciBJ
bWFnZUZyYW1lOjphc05ld05hdGl2ZUltYWdlKCkgY29uc3QKICAgICByZXR1cm4gU2hhcmVkQml0
bWFwOjpjcmVhdGUobV9iYWNraW5nU3RvcmUsIG1fc2l6ZSwgaGFzQWxwaGEoKSk7CiB9CiAKLWJv
b2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YURhdGEpCitib29sIEZyYW1lRGF0YTo6
Y2xlYXJGcmFtZSgpCiB7Ci0gICAgaWYgKGNsZWFyTWV0YURhdGEpCi0gICAgICAgIG1faGF2ZU1l
dGFkYXRhID0gZmFsc2U7Ci0KICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBtX2ZyYW1lID0g
MDsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93eC9JbWFnZVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlV3guY3BwCmluZGV4IDc0NjU1ZjM4ZmU3OTYzY2QzYzI4ZWMxM2E2NTIy
MmJmNGJkN2YwMWIuLmI3YzI0OTZjNzNiNTI2NWYxZDg1MzRlMzM3ZWU4YzIwZmUzMDI5ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlV3guY3BwCkBA
IC01MiwxMSArNTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyB0aGlzIGlzIGluIEdyYXBo
aWNzQ29udGV4dFd4LmNwcAogaW50IGdldFd4Q29tcG9zaXRpbmdPcGVyYXRpb24oQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIGJvb2wgaGFzQWxwaGEpOwogCi1ib29sIEZyYW1lRGF0YTo6Y2xlYXIoYm9v
bCBjbGVhck1ldGFkYXRhKQorYm9vbCBGcmFtZURhdGE6OmNsZWFyRnJhbWUoKQogewotICAgIGlm
IChjbGVhck1ldGFkYXRhKQotICAgICAgICBtX2hhdmVNZXRhZGF0YSA9IGZhbHNlOwotCiAgICAg
aWYgKG1fZnJhbWUpIHsKICAgICAgICAgZGVsZXRlIG1fZnJhbWU7CiAgICAgICAgIG1fZnJhbWUg
PSAwOwpAQCAtMTE0LDcgKzExMSw3IEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShjb25zdCB3
eEJpdG1hcCYgYml0bWFwKQogICAgIAogICAgICAgICBtX2ZyYW1lcy5ncm93KDEpOwogICAgICAg
ICBtX2ZyYW1lc1swXS5tX2ZyYW1lID0gZ2JtcDsKLSAgICAgICAgbV9mcmFtZXNbMF0ubV9oYXZl
TWV0YWRhdGEgPSB0cnVlOworICAgICAgICBtX2ZyYW1lc1swXS5tX2lzQ29tcGxldGUgPSB0cnVl
OwogICAgICAgICBjaGVja0ZvclNvbGlkQ29sb3IoKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>