internal/templates/PSFCimFunction-1.0.0.0.xml

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>PSModuleDevelopment.Template.Template</T>
      <T>System.Object</T>
    </TN>
    <ToString>PSModuleDevelopment.Template.Template</ToString>
    <Props>
      <S N="Name">PSFCimFunction</S>
      <Obj N="Type" RefId="1">
        <TN RefId="1">
          <T>PSModuleDevelopment.Template.TemplateType</T>
          <T>System.Enum</T>
          <T>System.ValueType</T>
          <T>System.Object</T>
        </TN>
        <ToString>File</ToString>
        <I32>0</I32>
      </Obj>
      <Version N="Version">1.0.0.0</Version>
      <S N="Description">PSFramework: Create function that connects via CIM</S>
      <S N="Author">Friedrich Weinmann</S>
      <DT N="CreatedOn">2021-07-21T00:00:00+00:00</DT>
      <Obj N="Tags" RefId="2">
        <TN RefId="2">
          <T>System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]</T>
          <T>System.Object</T>
        </TN>
        <LST>
          <S>function</S>
          <S>file</S>
        </LST>
      </Obj>
      <Obj N="Parameters" RefId="3">
        <TNRef RefId="2" />
        <LST>
          <S>name</S>
        </LST>
      </Obj>
      <Obj N="Scripts" RefId="4">
        <TN RefId="3">
          <T>System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[PSModuleDevelopment.Template.ParameterScript, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <DCT />
      </Obj>
      <Obj N="Parameters2" RefId="5">
        <TN RefId="4">
          <T>System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[PSModuleDevelopment.Template.Parameter.ParameterBase, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <DCT />
      </Obj>
      <Obj N="Children" RefId="6">
        <TN RefId="5">
          <T>System.Collections.Generic.List`1[[PSModuleDevelopment.Template.TemplateItemBase, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <LST>
          <Obj RefId="7">
            <TN RefId="6">
              <T>PSModuleDevelopment.Template.TemplateItemFile</T>
              <T>PSModuleDevelopment.Template.TemplateItemBase</T>
              <T>System.Object</T>
            </TN>
            <ToString>PSModuleDevelopment.Template.TemplateItemFile</ToString>
            <Props>
              <S N="Value">function þnameþ_x000D__x000A_{_x000D__x000A_&lt;#_x000D__x000A__x0009_.SYNOPSIS_x000D__x000A__x0009__x0009_&lt;Insert Synopsis here&gt;._x000D__x000A__x0009__x000D__x000A__x0009_.DESCRIPTION_x000D__x000A__x0009__x0009_&lt;Insert Description here&gt;._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER ComputerName_x000D__x000A__x0009__x0009_The computer(s) to connect to._x000D__x000A__x0009__x0009_Can be an established CimSession, which will then be reused._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER Credential_x000D__x000A__x0009__x0009_The credentials to use to connect to remote computer(s) with._x000D__x000A__x0009__x0009_This parameter is ignored for local queries._x000D__x000A__x0009__x0009_This parameter is ignored if passing an established Cim Session for ComputerName._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER Authentication_x000D__x000A__x0009__x0009_The authentication method to use to when authenticating to remote computer(s)._x000D__x000A__x0009__x0009_Uses the system default settings by default._x000D__x000A__x0009__x0009_This parameter is ignored for local queries._x000D__x000A__x0009__x0009_This parameter is ignored if passing an established Cim Session for ComputerName._x000D__x000A__x0009__x000D__x000A__x0009_.PARAMETER EnableException_x000D__x000A__x0009__x0009_This parameters disables user-friendly warnings and enables the throwing of exceptions._x000D__x000A__x0009__x0009_This is less user friendly, but allows catching exceptions in calling scripts._x000D__x000A__x0009__x000D__x000A__x0009_.EXAMPLE_x000D__x000A__x0009__x0009_PS C:\&gt; þnameþ_x000D__x000A__x0009__x000D__x000A__x0009__x0009_&lt;insert description for local execution&gt;._x000D__x000A__x0009__x000D__x000A__x0009_.EXAMPLE_x000D__x000A__x0009__x0009_PS C:\&gt; Get-Content servers.txt | þnameþ_x000D__x000A__x0009__x000D__x000A__x0009__x0009_&lt;insert description for remote execution from file&gt;_x000D__x000A__x0009__x000D__x000A__x0009_.EXAMPLE_x000D__x000A__x0009__x0009_PS C:\&gt; Get-ADComputer -Filter "name -like 'Desktop*'" | þnameþ_x000D__x000A__x0009__x000D__x000A__x0009__x0009_&lt;insert description for remote execution from AD Computer&gt;_x000D__x000A_#&gt;_x000D__x000A__x0009_[CmdletBinding()]_x000D__x000A__x0009_Param (_x000D__x000A__x0009__x0009_[Parameter(ValueFromPipeline = $true)]_x000D__x000A__x0009__x0009_[PSFComputer[]]_x000D__x000A__x0009__x0009_$ComputerName = $env:COMPUTERNAME,_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_[System.Management.Automation.CredentialAttribute()]_x000D__x000A__x0009__x0009_[System.Management.Automation.PSCredential]_x000D__x000A__x0009__x0009_$Credential,_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_[Microsoft.Management.Infrastructure.Options.PasswordAuthenticationMechanism]_x000D__x000A__x0009__x0009_$Authentication = [Microsoft.Management.Infrastructure.Options.PasswordAuthenticationMechanism]::Default,_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_[switch]_x000D__x000A__x0009__x0009_$EnableException_x000D__x000A__x0009_)_x000D__x000A__x0009__x000D__x000A__x0009_begin_x000D__x000A__x0009_{_x000D__x000A__x0009__x0009_Write-PSFMessage -Level InternalComment -Message "Bound parameters: $($PSBoundParameters.Keys -join ", ")" -Tag 'debug','start','param'_x000D__x000A__x0009_}_x000D__x000A__x0009_process_x000D__x000A__x0009_{_x000D__x000A__x0009__x0009_#region Process by Computer Name_x000D__x000A__x0009__x0009_foreach ($Computer in $ComputerName)_x000D__x000A__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009_#region Remote Connection_x000D__x000A__x0009__x0009__x0009_Write-PSFMessage -Level VeryVerbose -Message "[$Computer] Establishing connection" -Target $Computer -Tag 'connect', 'start'_x000D__x000A__x0009__x0009__x0009_try_x000D__x000A__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009_if (-not $Computer.IsLocalhost)_x000D__x000A__x0009__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009__x0009_if ($Computer.Type -like "CimSession") { $session = $Computer.InputObject }_x000D__x000A__x0009__x0009__x0009__x0009__x0009_else { $session = New-CimSession -ComputerName $Computer -Credential $Credential -Authentication $Authentication -ErrorAction Stop }_x000D__x000A__x0009__x0009__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009__x0009__x0009_# Some dummy code, replace with actual logic_x000D__x000A__x0009__x0009__x0009__x0009__x0009_Write-PSFMessage -Level SomewhatVerbose -Message "[$Computer] Retrieving OS information" -Target $Computer -Tag 'os', 'get'_x000D__x000A__x0009__x0009__x0009__x0009__x0009_$operatingSystem = Get-CimInstance -ClassName Win32_OperatingSystem -CimSession $session -ErrorAction Stop_x000D__x000A__x0009__x0009__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009__x0009__x0009_if ($Computer.Type -notlike "CimSession") { Remove-CimSession -CimSession $session }_x000D__x000A__x0009__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009__x0009_else_x000D__x000A__x0009__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009__x0009_# Some dummy code, replace with actual logic_x000D__x000A__x0009__x0009__x0009__x0009__x0009_# No point in establishing a session to localhost, custom credentials also not supported_x000D__x000A__x0009__x0009__x0009__x0009__x0009_Write-PSFMessage -Level SomewhatVerbose -Message "[$Computer] Retrieving OS information" -Target $Computer -Tag 'os', 'get'_x000D__x000A__x0009__x0009__x0009__x0009__x0009_$operatingSystem = Get-CimInstance -ClassName Win32_OperatingSystem -ErrorAction Stop_x000D__x000A__x0009__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009_catch_x000D__x000A__x0009__x0009__x0009_{_x000D__x000A__x0009__x0009__x0009__x0009_Stop-PSFFunction -Message "[$Computer] Failed to connect to target computer" -Target $Computer -Tag 'connect', 'fail' -ErrorRecord $_ -EnableException $EnableException -Continue_x000D__x000A__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009_#endregion Remote Connection_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# Dummy data, replace with actual data object to build_x000D__x000A__x0009__x0009__x0009_#region Process Data_x000D__x000A__x0009__x0009__x0009_$systemInfo = New-Object Fred.IronScripter2018.SystemInformation -Property @{_x000D__x000A__x0009__x0009__x0009__x0009_ComputerName = $Computer.ComputerName_x000D__x000A__x0009__x0009__x0009__x0009_Name_x0009__x0009_ = $operatingSystem.Caption_x000D__x000A__x0009__x0009__x0009__x0009_Version_x0009_ = $operatingSystem.Version_x000D__x000A__x0009__x0009__x0009__x0009_ServicePack = "{0}.{1}" -f $operatingSystem.ServicePackMajorVersion, $operatingSystem.ServicePackMinorVersion_x000D__x000A__x0009__x0009__x0009__x0009_Manufacturer = $operatingSystem.Manufacturer_x000D__x000A__x0009__x0009__x0009__x0009_WindowsDirectory = $operatingSystem.WindowsDirectory_x000D__x000A__x0009__x0009__x0009__x0009_Locale_x0009__x0009_ = $operatingSystem.Locale_x000D__x000A__x0009__x0009__x0009__x0009_FreePhysicalMemory = $operatingSystem.FreePhysicalMemory * 1024 # Comes in KB_x000D__x000A__x0009__x0009__x0009__x0009_VirtualMemory = $operatingSystem.TotalVirtualMemorySize * 1024 # Comes in KB_x000D__x000A__x0009__x0009__x0009__x0009_FreeVirtualMemory = $operatingSystem.FreeVirtualMemory * 1024 # Comes in KB_x000D__x000A__x0009__x0009__x0009_}_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_Write-PSFMessage -Level Verbose -Message "[$Computer] Finished gathering information" -Target $Computer -Tag 'success', 'finished'_x000D__x000A__x0009__x0009__x0009_$systemInfo_x000D__x000A__x0009__x0009__x0009_#endregion Process Data_x000D__x000A__x0009__x0009_}_x000D__x000A__x0009__x0009_#endregion Process by Computer Name_x000D__x000A__x0009_}_x000D__x000A_}</S>
              <B N="PlainText">true</B>
              <Obj N="ContentParameterFlat" RefId="8">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="ContentParameterScript" RefId="9">
                <TNRef RefId="2" />
                <LST />
              </Obj>
              <S N="Name">þnameþ.ps1</S>
              <S N="RelativePath"></S>
              <S N="Identifier">þ</S>
              <Obj N="FileSystemParameterFlat" RefId="10">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="FileSystemParameterScript" RefId="11">
                <TNRef RefId="2" />
                <LST />
              </Obj>
            </Props>
            <MS>
              <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAALVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtRmlsZQkAAAAFVmFsdWUJUGxhaW5UZXh0FENvbnRlbnRQYXJhbWV0ZXJGbGF0FkNvbnRlbnRQYXJhbWV0ZXJTY3JpcHQETmFtZQxSZWxhdGl2ZVBhdGgKSWRlbnRpZmllchdGaWxlU3lzdGVtUGFyYW1ldGVyRmxhdBlGaWxlU3lzdGVtUGFyYW1ldGVyU2NyaXB0AQADAwEBAQMDAX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAgAAAAYDAAAAkiRmdW5jdGlvbiDDvm5hbWXDvg0Kew0KPCMNCgkuU1lOT1BTSVMNCgkJPEluc2VydCBTeW5vcHNpcyBoZXJlPi4NCgkNCgkuREVTQ1JJUFRJT04NCgkJPEluc2VydCBEZXNjcmlwdGlvbiBoZXJlPi4NCgkNCgkuUEFSQU1FVEVSIENvbXB1dGVyTmFtZQ0KCQlUaGUgY29tcHV0ZXIocykgdG8gY29ubmVjdCB0by4NCgkJQ2FuIGJlIGFuIGVzdGFibGlzaGVkIENpbVNlc3Npb24sIHdoaWNoIHdpbGwgdGhlbiBiZSByZXVzZWQuDQoJDQoJLlBBUkFNRVRFUiBDcmVkZW50aWFsDQoJCVRoZSBjcmVkZW50aWFscyB0byB1c2UgdG8gY29ubmVjdCB0byByZW1vdGUgY29tcHV0ZXIocykgd2l0aC4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBmb3IgbG9jYWwgcXVlcmllcy4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBwYXNzaW5nIGFuIGVzdGFibGlzaGVkIENpbSBTZXNzaW9uIGZvciBDb21wdXRlck5hbWUuDQoJDQoJLlBBUkFNRVRFUiBBdXRoZW50aWNhdGlvbg0KCQlUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kIHRvIHVzZSB0byB3aGVuIGF1dGhlbnRpY2F0aW5nIHRvIHJlbW90ZSBjb21wdXRlcihzKS4NCgkJVXNlcyB0aGUgc3lzdGVtIGRlZmF1bHQgc2V0dGluZ3MgYnkgZGVmYXVsdC4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBmb3IgbG9jYWwgcXVlcmllcy4NCgkJVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBwYXNzaW5nIGFuIGVzdGFibGlzaGVkIENpbSBTZXNzaW9uIGZvciBDb21wdXRlck5hbWUuDQoJDQoJLlBBUkFNRVRFUiBFbmFibGVFeGNlcHRpb24NCgkJVGhpcyBwYXJhbWV0ZXJzIGRpc2FibGVzIHVzZXItZnJpZW5kbHkgd2FybmluZ3MgYW5kIGVuYWJsZXMgdGhlIHRocm93aW5nIG9mIGV4Y2VwdGlvbnMuDQoJCVRoaXMgaXMgbGVzcyB1c2VyIGZyaWVuZGx5LCBidXQgYWxsb3dzIGNhdGNoaW5nIGV4Y2VwdGlvbnMgaW4gY2FsbGluZyBzY3JpcHRzLg0KCQ0KCS5FWEFNUExFDQoJCVBTIEM6XD4gw75uYW1lw74NCgkNCgkJPGluc2VydCBkZXNjcmlwdGlvbiBmb3IgbG9jYWwgZXhlY3V0aW9uPi4NCgkNCgkuRVhBTVBMRQ0KCQlQUyBDOlw+IEdldC1Db250ZW50IHNlcnZlcnMudHh0IHwgw75uYW1lw74NCgkNCgkJPGluc2VydCBkZXNjcmlwdGlvbiBmb3IgcmVtb3RlIGV4ZWN1dGlvbiBmcm9tIGZpbGU+DQoJDQoJLkVYQU1QTEUNCgkJUFMgQzpcPiBHZXQtQURDb21wdXRlciAtRmlsdGVyICJuYW1lIC1saWtlICdEZXNrdG9wKiciIHwgw75uYW1lw74NCgkNCgkJPGluc2VydCBkZXNjcmlwdGlvbiBmb3IgcmVtb3RlIGV4ZWN1dGlvbiBmcm9tIEFEIENvbXB1dGVyPg0KIz4NCglbQ21kbGV0QmluZGluZygpXQ0KCVBhcmFtICgNCgkJW1BhcmFtZXRlcihWYWx1ZUZyb21QaXBlbGluZSA9ICR0cnVlKV0NCgkJW1BTRkNvbXB1dGVyW11dDQoJCSRDb21wdXRlck5hbWUgPSAkZW52OkNPTVBVVEVSTkFNRSwNCgkJDQoJCVtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLkNyZWRlbnRpYWxBdHRyaWJ1dGUoKV0NCgkJW1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uUFNDcmVkZW50aWFsXQ0KCQkkQ3JlZGVudGlhbCwNCgkJDQoJCVtNaWNyb3NvZnQuTWFuYWdlbWVudC5JbmZyYXN0cnVjdHVyZS5PcHRpb25zLlBhc3N3b3JkQXV0aGVudGljYXRpb25NZWNoYW5pc21dDQoJCSRBdXRoZW50aWNhdGlvbiA9IFtNaWNyb3NvZnQuTWFuYWdlbWVudC5JbmZyYXN0cnVjdHVyZS5PcHRpb25zLlBhc3N3b3JkQXV0aGVudGljYXRpb25NZWNoYW5pc21dOjpEZWZhdWx0LA0KCQkNCgkJW3N3aXRjaF0NCgkJJEVuYWJsZUV4Y2VwdGlvbg0KCSkNCgkNCgliZWdpbg0KCXsNCgkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgSW50ZXJuYWxDb21tZW50IC1NZXNzYWdlICJCb3VuZCBwYXJhbWV0ZXJzOiAkKCRQU0JvdW5kUGFyYW1ldGVycy5LZXlzIC1qb2luICIsICIpIiAtVGFnICdkZWJ1ZycsJ3N0YXJ0JywncGFyYW0nDQoJfQ0KCXByb2Nlc3MNCgl7DQoJCSNyZWdpb24gUHJvY2VzcyBieSBDb21wdXRlciBOYW1lDQoJCWZvcmVhY2ggKCRDb21wdXRlciBpbiAkQ29tcHV0ZXJOYW1lKQ0KCQl7DQoJCQkjcmVnaW9uIFJlbW90ZSBDb25uZWN0aW9uDQoJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBWZXJ5VmVyYm9zZSAtTWVzc2FnZSAiWyRDb21wdXRlcl0gRXN0YWJsaXNoaW5nIGNvbm5lY3Rpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ2Nvbm5lY3QnLCAnc3RhcnQnDQoJCQl0cnkNCgkJCXsNCgkJCQlpZiAoLW5vdCAkQ29tcHV0ZXIuSXNMb2NhbGhvc3QpDQoJCQkJew0KCQkJCQlpZiAoJENvbXB1dGVyLlR5cGUgLWxpa2UgIkNpbVNlc3Npb24iKSB7ICRzZXNzaW9uID0gJENvbXB1dGVyLklucHV0T2JqZWN0IH0NCgkJCQkJZWxzZSB7ICRzZXNzaW9uID0gTmV3LUNpbVNlc3Npb24gLUNvbXB1dGVyTmFtZSAkQ29tcHV0ZXIgLUNyZWRlbnRpYWwgJENyZWRlbnRpYWwgLUF1dGhlbnRpY2F0aW9uICRBdXRoZW50aWNhdGlvbiAtRXJyb3JBY3Rpb24gU3RvcCB9DQoJCQkJCQ0KCQkJCQkjIFNvbWUgZHVtbXkgY29kZSwgcmVwbGFjZSB3aXRoIGFjdHVhbCBsb2dpYw0KCQkJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBTb21ld2hhdFZlcmJvc2UgLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIFJldHJpZXZpbmcgT1MgaW5mb3JtYXRpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ29zJywgJ2dldCcNCgkJCQkJJG9wZXJhdGluZ1N5c3RlbSA9IEdldC1DaW1JbnN0YW5jZSAtQ2xhc3NOYW1lIFdpbjMyX09wZXJhdGluZ1N5c3RlbSAtQ2ltU2Vzc2lvbiAkc2Vzc2lvbiAtRXJyb3JBY3Rpb24gU3RvcA0KCQkJCQkNCgkJCQkJaWYgKCRDb21wdXRlci5UeXBlIC1ub3RsaWtlICJDaW1TZXNzaW9uIikgeyBSZW1vdmUtQ2ltU2Vzc2lvbiAtQ2ltU2Vzc2lvbiAkc2Vzc2lvbiB9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSMgU29tZSBkdW1teSBjb2RlLCByZXBsYWNlIHdpdGggYWN0dWFsIGxvZ2ljDQoJCQkJCSMgTm8gcG9pbnQgaW4gZXN0YWJsaXNoaW5nIGEgc2Vzc2lvbiB0byBsb2NhbGhvc3QsIGN1c3RvbSBjcmVkZW50aWFscyBhbHNvIG5vdCBzdXBwb3J0ZWQNCgkJCQkJV3JpdGUtUFNGTWVzc2FnZSAtTGV2ZWwgU29tZXdoYXRWZXJib3NlIC1NZXNzYWdlICJbJENvbXB1dGVyXSBSZXRyaWV2aW5nIE9TIGluZm9ybWF0aW9uIiAtVGFyZ2V0ICRDb21wdXRlciAtVGFnICdvcycsICdnZXQnDQoJCQkJCSRvcGVyYXRpbmdTeXN0ZW0gPSBHZXQtQ2ltSW5zdGFuY2UgLUNsYXNzTmFtZSBXaW4zMl9PcGVyYXRpbmdTeXN0ZW0gLUVycm9yQWN0aW9uIFN0b3ANCgkJCQl9DQoJCQl9DQoJCQljYXRjaA0KCQkJew0KCQkJCVN0b3AtUFNGRnVuY3Rpb24gLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIEZhaWxlZCB0byBjb25uZWN0IHRvIHRhcmdldCBjb21wdXRlciIgLVRhcmdldCAkQ29tcHV0ZXIgLVRhZyAnY29ubmVjdCcsICdmYWlsJyAtRXJyb3JSZWNvcmQgJF8gLUVuYWJsZUV4Y2VwdGlvbiAkRW5hYmxlRXhjZXB0aW9uIC1Db250aW51ZQ0KCQkJfQ0KCQkJI2VuZHJlZ2lvbiBSZW1vdGUgQ29ubmVjdGlvbg0KCQkJDQoJCQkjIER1bW15IGRhdGEsIHJlcGxhY2Ugd2l0aCBhY3R1YWwgZGF0YSBvYmplY3QgdG8gYnVpbGQNCgkJCSNyZWdpb24gUHJvY2VzcyBEYXRhDQoJCQkkc3lzdGVtSW5mbyA9IE5ldy1PYmplY3QgRnJlZC5Jcm9uU2NyaXB0ZXIyMDE4LlN5c3RlbUluZm9ybWF0aW9uIC1Qcm9wZXJ0eSBAew0KCQkJCUNvbXB1dGVyTmFtZSAgICAgICA9ICRDb21wdXRlci5Db21wdXRlck5hbWUNCgkJCQlOYW1lCQkgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLkNhcHRpb24NCgkJCQlWZXJzaW9uCSAgICAgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLlZlcnNpb24NCgkJCQlTZXJ2aWNlUGFjayAgICAgICAgPSAiezB9LnsxfSIgLWYgJG9wZXJhdGluZ1N5c3RlbS5TZXJ2aWNlUGFja01ham9yVmVyc2lvbiwgJG9wZXJhdGluZ1N5c3RlbS5TZXJ2aWNlUGFja01pbm9yVmVyc2lvbg0KCQkJCU1hbnVmYWN0dXJlciAgICAgICA9ICRvcGVyYXRpbmdTeXN0ZW0uTWFudWZhY3R1cmVyDQoJCQkJV2luZG93c0RpcmVjdG9yeSAgID0gJG9wZXJhdGluZ1N5c3RlbS5XaW5kb3dzRGlyZWN0b3J5DQoJCQkJTG9jYWxlCQkgICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLkxvY2FsZQ0KCQkJCUZyZWVQaHlzaWNhbE1lbW9yeSA9ICRvcGVyYXRpbmdTeXN0ZW0uRnJlZVBoeXNpY2FsTWVtb3J5ICogMTAyNCAjIENvbWVzIGluIEtCDQoJCQkJVmlydHVhbE1lbW9yeSAgICAgID0gJG9wZXJhdGluZ1N5c3RlbS5Ub3RhbFZpcnR1YWxNZW1vcnlTaXplICogMTAyNCAjIENvbWVzIGluIEtCDQoJCQkJRnJlZVZpcnR1YWxNZW1vcnkgID0gJG9wZXJhdGluZ1N5c3RlbS5GcmVlVmlydHVhbE1lbW9yeSAqIDEwMjQgIyBDb21lcyBpbiBLQg0KCQkJfQ0KCQkJDQoJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBWZXJib3NlIC1NZXNzYWdlICJbJENvbXB1dGVyXSBGaW5pc2hlZCBnYXRoZXJpbmcgaW5mb3JtYXRpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ3N1Y2Nlc3MnLCAnZmluaXNoZWQnDQoJCQkkc3lzdGVtSW5mbw0KCQkJI2VuZHJlZ2lvbiBQcm9jZXNzIERhdGENCgkJfQ0KCQkjZW5kcmVnaW9uIFByb2Nlc3MgYnkgQ29tcHV0ZXIgTmFtZQ0KCX0NCn0BCQQAAAAJBQAAAAYGAAAADMO+bmFtZcO+LnBzMQYHAAAAAAYIAAAAAsO+CQkAAAAJCgAAAAQEAAAAf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgYAAAgICQsAAAABAAAAAQAAAAEFAAAABAAAAAkMAAAAAAAAAAAAAAABCQAAAAQAAAAJDQAAAAEAAAABAAAAAQoAAAAEAAAACQwAAAAAAAAAAAAAABELAAAABAAAAAYPAAAABG5hbWUNAxEMAAAAAAAAABENAAAABAAAAAYQAAAABG5hbWUNAws=</BA>
            </MS>
          </Obj>
        </LST>
      </Obj>
      <I32 N="Generation">1</I32>
    </Props>
    <MS>
      <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGUMAAAABE5hbWUEVHlwZQdWZXJzaW9uC0Rlc2NyaXB0aW9uBkF1dGhvcglDcmVhdGVkT24EVGFncwpQYXJhbWV0ZXJzB1NjcmlwdHMLUGFyYW1ldGVyczIIQ2hpbGRyZW4KR2VuZXJhdGlvbgEEAwEBAAMDAwMDAClQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlRlbXBsYXRlVHlwZQIAAAAOU3lzdGVtLlZlcnNpb24Nf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXYACU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdCwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXYgCU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlci5QYXJhbWV0ZXJCYXNlLCBQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dngFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtQmFzZSwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQgCAAAABgMAAAAOUFNGQ2ltRnVuY3Rpb24F/P///ylQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlRlbXBsYXRlVHlwZQEAAAAHdmFsdWVfXwAIAgAAAAAAAAAJBQAAAAYGAAAAMlBTRnJhbWV3b3JrOiBDcmVhdGUgZnVuY3Rpb24gdGhhdCBjb25uZWN0cyB2aWEgQ0lNBgcAAAASRnJpZWRyaWNoIFdlaW5tYW5uAEC0e9pL2YgJCAAAAAkJAAAACQoAAAAJCwAAAAkMAAAAAQAAAAQFAAAADlN5c3RlbS5WZXJzaW9uBAAAAAZfTWFqb3IGX01pbm9yBl9CdWlsZAlfUmV2aXNpb24AAAAACAgICAEAAAAAAAAAAAAAAAAAAAAECAAAAH9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24GAAAICAkNAAAAAgAAAAAAAAABCQAAAAgAAAAJDgAAAAEAAAABAAAABAoAAACAAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkRpY3Rpb25hcnlgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5QYXJhbWV0ZXJTY3JpcHQsIFBTTW9kdWxlRGV2ZWxvcG1lbnQsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAAB1ZlcnNpb24IQ29tcGFyZXIISGFzaFNpemUAAwAIFlN5c3RlbS5PcmRpbmFsQ29tcGFyZXIIAAAAAAkPAAAAAAAAAAQLAAAAiAJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5EaWN0aW9uYXJ5YDJbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV0sW1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuUGFyYW1ldGVyLlBhcmFtZXRlckJhc2UsIFBTTW9kdWxlRGV2ZWxvcG1lbnQsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAAB1ZlcnNpb24IQ29tcGFyZXIISGFzaFNpemUAAwAIFlN5c3RlbS5PcmRpbmFsQ29tcGFyZXIIAAAAAAkPAAAAAAAAAAQMAAAAngFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtQmFzZSwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAL1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtQmFzZVtdAgAAAAgICRAAAAABAAAAAQAAABENAAAAAgAAAAYRAAAACGZ1bmN0aW9uBhIAAAAEZmlsZREOAAAABAAAAAYTAAAABG5hbWUNAwQPAAAAFlN5c3RlbS5PcmRpbmFsQ29tcGFyZXIBAAAAC19pZ25vcmVDYXNlAAEBBxAAAAAAAQAAAAQAAAAELVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtQmFzZQIAAAAJFAAAAA0DBRQAAAAtUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5UZW1wbGF0ZUl0ZW1GaWxlCQAAAAVWYWx1ZQlQbGFpblRleHQUQ29udGVudFBhcmFtZXRlckZsYXQWQ29udGVudFBhcmFtZXRlclNjcmlwdAROYW1lDFJlbGF0aXZlUGF0aApJZGVudGlmaWVyF0ZpbGVTeXN0ZW1QYXJhbWV0ZXJGbGF0GUZpbGVTeXN0ZW1QYXJhbWV0ZXJTY3JpcHQBAAMDAQEBAwMBf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0CAAAABhUAAACSJGZ1bmN0aW9uIMO+bmFtZcO+DQp7DQo8Iw0KCS5TWU5PUFNJUw0KCQk8SW5zZXJ0IFN5bm9wc2lzIGhlcmU+Lg0KCQ0KCS5ERVNDUklQVElPTg0KCQk8SW5zZXJ0IERlc2NyaXB0aW9uIGhlcmU+Lg0KCQ0KCS5QQVJBTUVURVIgQ29tcHV0ZXJOYW1lDQoJCVRoZSBjb21wdXRlcihzKSB0byBjb25uZWN0IHRvLg0KCQlDYW4gYmUgYW4gZXN0YWJsaXNoZWQgQ2ltU2Vzc2lvbiwgd2hpY2ggd2lsbCB0aGVuIGJlIHJldXNlZC4NCgkNCgkuUEFSQU1FVEVSIENyZWRlbnRpYWwNCgkJVGhlIGNyZWRlbnRpYWxzIHRvIHVzZSB0byBjb25uZWN0IHRvIHJlbW90ZSBjb21wdXRlcihzKSB3aXRoLg0KCQlUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGZvciBsb2NhbCBxdWVyaWVzLg0KCQlUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIHBhc3NpbmcgYW4gZXN0YWJsaXNoZWQgQ2ltIFNlc3Npb24gZm9yIENvbXB1dGVyTmFtZS4NCgkNCgkuUEFSQU1FVEVSIEF1dGhlbnRpY2F0aW9uDQoJCVRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgdG8gdXNlIHRvIHdoZW4gYXV0aGVudGljYXRpbmcgdG8gcmVtb3RlIGNvbXB1dGVyKHMpLg0KCQlVc2VzIHRoZSBzeXN0ZW0gZGVmYXVsdCBzZXR0aW5ncyBieSBkZWZhdWx0Lg0KCQlUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGZvciBsb2NhbCBxdWVyaWVzLg0KCQlUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIHBhc3NpbmcgYW4gZXN0YWJsaXNoZWQgQ2ltIFNlc3Npb24gZm9yIENvbXB1dGVyTmFtZS4NCgkNCgkuUEFSQU1FVEVSIEVuYWJsZUV4Y2VwdGlvbg0KCQlUaGlzIHBhcmFtZXRlcnMgZGlzYWJsZXMgdXNlci1mcmllbmRseSB3YXJuaW5ncyBhbmQgZW5hYmxlcyB0aGUgdGhyb3dpbmcgb2YgZXhjZXB0aW9ucy4NCgkJVGhpcyBpcyBsZXNzIHVzZXIgZnJpZW5kbHksIGJ1dCBhbGxvd3MgY2F0Y2hpbmcgZXhjZXB0aW9ucyBpbiBjYWxsaW5nIHNjcmlwdHMuDQoJDQoJLkVYQU1QTEUNCgkJUFMgQzpcPiDDvm5hbWXDvg0KCQ0KCQk8aW5zZXJ0IGRlc2NyaXB0aW9uIGZvciBsb2NhbCBleGVjdXRpb24+Lg0KCQ0KCS5FWEFNUExFDQoJCVBTIEM6XD4gR2V0LUNvbnRlbnQgc2VydmVycy50eHQgfCDDvm5hbWXDvg0KCQ0KCQk8aW5zZXJ0IGRlc2NyaXB0aW9uIGZvciByZW1vdGUgZXhlY3V0aW9uIGZyb20gZmlsZT4NCgkNCgkuRVhBTVBMRQ0KCQlQUyBDOlw+IEdldC1BRENvbXB1dGVyIC1GaWx0ZXIgIm5hbWUgLWxpa2UgJ0Rlc2t0b3AqJyIgfCDDvm5hbWXDvg0KCQ0KCQk8aW5zZXJ0IGRlc2NyaXB0aW9uIGZvciByZW1vdGUgZXhlY3V0aW9uIGZyb20gQUQgQ29tcHV0ZXI+DQojPg0KCVtDbWRsZXRCaW5kaW5nKCldDQoJUGFyYW0gKA0KCQlbUGFyYW1ldGVyKFZhbHVlRnJvbVBpcGVsaW5lID0gJHRydWUpXQ0KCQlbUFNGQ29tcHV0ZXJbXV0NCgkJJENvbXB1dGVyTmFtZSA9ICRlbnY6Q09NUFVURVJOQU1FLA0KCQkNCgkJW1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uQ3JlZGVudGlhbEF0dHJpYnV0ZSgpXQ0KCQlbU3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5QU0NyZWRlbnRpYWxdDQoJCSRDcmVkZW50aWFsLA0KCQkNCgkJW01pY3Jvc29mdC5NYW5hZ2VtZW50LkluZnJhc3RydWN0dXJlLk9wdGlvbnMuUGFzc3dvcmRBdXRoZW50aWNhdGlvbk1lY2hhbmlzbV0NCgkJJEF1dGhlbnRpY2F0aW9uID0gW01pY3Jvc29mdC5NYW5hZ2VtZW50LkluZnJhc3RydWN0dXJlLk9wdGlvbnMuUGFzc3dvcmRBdXRoZW50aWNhdGlvbk1lY2hhbmlzbV06OkRlZmF1bHQsDQoJCQ0KCQlbc3dpdGNoXQ0KCQkkRW5hYmxlRXhjZXB0aW9uDQoJKQ0KCQ0KCWJlZ2luDQoJew0KCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBJbnRlcm5hbENvbW1lbnQgLU1lc3NhZ2UgIkJvdW5kIHBhcmFtZXRlcnM6ICQoJFBTQm91bmRQYXJhbWV0ZXJzLktleXMgLWpvaW4gIiwgIikiIC1UYWcgJ2RlYnVnJywnc3RhcnQnLCdwYXJhbScNCgl9DQoJcHJvY2Vzcw0KCXsNCgkJI3JlZ2lvbiBQcm9jZXNzIGJ5IENvbXB1dGVyIE5hbWUNCgkJZm9yZWFjaCAoJENvbXB1dGVyIGluICRDb21wdXRlck5hbWUpDQoJCXsNCgkJCSNyZWdpb24gUmVtb3RlIENvbm5lY3Rpb24NCgkJCVdyaXRlLVBTRk1lc3NhZ2UgLUxldmVsIFZlcnlWZXJib3NlIC1NZXNzYWdlICJbJENvbXB1dGVyXSBFc3RhYmxpc2hpbmcgY29ubmVjdGlvbiIgLVRhcmdldCAkQ29tcHV0ZXIgLVRhZyAnY29ubmVjdCcsICdzdGFydCcNCgkJCXRyeQ0KCQkJew0KCQkJCWlmICgtbm90ICRDb21wdXRlci5Jc0xvY2FsaG9zdCkNCgkJCQl7DQoJCQkJCWlmICgkQ29tcHV0ZXIuVHlwZSAtbGlrZSAiQ2ltU2Vzc2lvbiIpIHsgJHNlc3Npb24gPSAkQ29tcHV0ZXIuSW5wdXRPYmplY3QgfQ0KCQkJCQllbHNlIHsgJHNlc3Npb24gPSBOZXctQ2ltU2Vzc2lvbiAtQ29tcHV0ZXJOYW1lICRDb21wdXRlciAtQ3JlZGVudGlhbCAkQ3JlZGVudGlhbCAtQXV0aGVudGljYXRpb24gJEF1dGhlbnRpY2F0aW9uIC1FcnJvckFjdGlvbiBTdG9wIH0NCgkJCQkJDQoJCQkJCSMgU29tZSBkdW1teSBjb2RlLCByZXBsYWNlIHdpdGggYWN0dWFsIGxvZ2ljDQoJCQkJCVdyaXRlLVBTRk1lc3NhZ2UgLUxldmVsIFNvbWV3aGF0VmVyYm9zZSAtTWVzc2FnZSAiWyRDb21wdXRlcl0gUmV0cmlldmluZyBPUyBpbmZvcm1hdGlvbiIgLVRhcmdldCAkQ29tcHV0ZXIgLVRhZyAnb3MnLCAnZ2V0Jw0KCQkJCQkkb3BlcmF0aW5nU3lzdGVtID0gR2V0LUNpbUluc3RhbmNlIC1DbGFzc05hbWUgV2luMzJfT3BlcmF0aW5nU3lzdGVtIC1DaW1TZXNzaW9uICRzZXNzaW9uIC1FcnJvckFjdGlvbiBTdG9wDQoJCQkJCQ0KCQkJCQlpZiAoJENvbXB1dGVyLlR5cGUgLW5vdGxpa2UgIkNpbVNlc3Npb24iKSB7IFJlbW92ZS1DaW1TZXNzaW9uIC1DaW1TZXNzaW9uICRzZXNzaW9uIH0NCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJIyBTb21lIGR1bW15IGNvZGUsIHJlcGxhY2Ugd2l0aCBhY3R1YWwgbG9naWMNCgkJCQkJIyBObyBwb2ludCBpbiBlc3RhYmxpc2hpbmcgYSBzZXNzaW9uIHRvIGxvY2FsaG9zdCwgY3VzdG9tIGNyZWRlbnRpYWxzIGFsc28gbm90IHN1cHBvcnRlZA0KCQkJCQlXcml0ZS1QU0ZNZXNzYWdlIC1MZXZlbCBTb21ld2hhdFZlcmJvc2UgLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIFJldHJpZXZpbmcgT1MgaW5mb3JtYXRpb24iIC1UYXJnZXQgJENvbXB1dGVyIC1UYWcgJ29zJywgJ2dldCcNCgkJCQkJJG9wZXJhdGluZ1N5c3RlbSA9IEdldC1DaW1JbnN0YW5jZSAtQ2xhc3NOYW1lIFdpbjMyX09wZXJhdGluZ1N5c3RlbSAtRXJyb3JBY3Rpb24gU3RvcA0KCQkJCX0NCgkJCX0NCgkJCWNhdGNoDQoJCQl7DQoJCQkJU3RvcC1QU0ZGdW5jdGlvbiAtTWVzc2FnZSAiWyRDb21wdXRlcl0gRmFpbGVkIHRvIGNvbm5lY3QgdG8gdGFyZ2V0IGNvbXB1dGVyIiAtVGFyZ2V0ICRDb21wdXRlciAtVGFnICdjb25uZWN0JywgJ2ZhaWwnIC1FcnJvclJlY29yZCAkXyAtRW5hYmxlRXhjZXB0aW9uICRFbmFibGVFeGNlcHRpb24gLUNvbnRpbnVlDQoJCQl9DQoJCQkjZW5kcmVnaW9uIFJlbW90ZSBDb25uZWN0aW9uDQoJCQkNCgkJCSMgRHVtbXkgZGF0YSwgcmVwbGFjZSB3aXRoIGFjdHVhbCBkYXRhIG9iamVjdCB0byBidWlsZA0KCQkJI3JlZ2lvbiBQcm9jZXNzIERhdGENCgkJCSRzeXN0ZW1JbmZvID0gTmV3LU9iamVjdCBGcmVkLklyb25TY3JpcHRlcjIwMTguU3lzdGVtSW5mb3JtYXRpb24gLVByb3BlcnR5IEB7DQoJCQkJQ29tcHV0ZXJOYW1lICAgICAgID0gJENvbXB1dGVyLkNvbXB1dGVyTmFtZQ0KCQkJCU5hbWUJCSAgICAgICA9ICRvcGVyYXRpbmdTeXN0ZW0uQ2FwdGlvbg0KCQkJCVZlcnNpb24JICAgICAgICAgICA9ICRvcGVyYXRpbmdTeXN0ZW0uVmVyc2lvbg0KCQkJCVNlcnZpY2VQYWNrICAgICAgICA9ICJ7MH0uezF9IiAtZiAkb3BlcmF0aW5nU3lzdGVtLlNlcnZpY2VQYWNrTWFqb3JWZXJzaW9uLCAkb3BlcmF0aW5nU3lzdGVtLlNlcnZpY2VQYWNrTWlub3JWZXJzaW9uDQoJCQkJTWFudWZhY3R1cmVyICAgICAgID0gJG9wZXJhdGluZ1N5c3RlbS5NYW51ZmFjdHVyZXINCgkJCQlXaW5kb3dzRGlyZWN0b3J5ICAgPSAkb3BlcmF0aW5nU3lzdGVtLldpbmRvd3NEaXJlY3RvcnkNCgkJCQlMb2NhbGUJCSAgICAgICA9ICRvcGVyYXRpbmdTeXN0ZW0uTG9jYWxlDQoJCQkJRnJlZVBoeXNpY2FsTWVtb3J5ID0gJG9wZXJhdGluZ1N5c3RlbS5GcmVlUGh5c2ljYWxNZW1vcnkgKiAxMDI0ICMgQ29tZXMgaW4gS0INCgkJCQlWaXJ0dWFsTWVtb3J5ICAgICAgPSAkb3BlcmF0aW5nU3lzdGVtLlRvdGFsVmlydHVhbE1lbW9yeVNpemUgKiAxMDI0ICMgQ29tZXMgaW4gS0INCgkJCQlGcmVlVmlydHVhbE1lbW9yeSAgPSAkb3BlcmF0aW5nU3lzdGVtLkZyZWVWaXJ0dWFsTWVtb3J5ICogMTAyNCAjIENvbWVzIGluIEtCDQoJCQl9DQoJCQkNCgkJCVdyaXRlLVBTRk1lc3NhZ2UgLUxldmVsIFZlcmJvc2UgLU1lc3NhZ2UgIlskQ29tcHV0ZXJdIEZpbmlzaGVkIGdhdGhlcmluZyBpbmZvcm1hdGlvbiIgLVRhcmdldCAkQ29tcHV0ZXIgLVRhZyAnc3VjY2VzcycsICdmaW5pc2hlZCcNCgkJCSRzeXN0ZW1JbmZvDQoJCQkjZW5kcmVnaW9uIFByb2Nlc3MgRGF0YQ0KCQl9DQoJCSNlbmRyZWdpb24gUHJvY2VzcyBieSBDb21wdXRlciBOYW1lDQoJfQ0KfQEJFgAAAAkXAAAABhgAAAAMw75uYW1lw74ucHMxBhkAAAAABhoAAAACw74JGwAAAAkcAAAAARYAAAAIAAAACR0AAAABAAAAAQAAAAEXAAAACAAAAAkeAAAAAAAAAAAAAAABGwAAAAgAAAAJHwAAAAEAAAABAAAAARwAAAAIAAAACR4AAAAAAAAAAAAAABEdAAAABAAAAAYhAAAABG5hbWUNAxEeAAAAAAAAABEfAAAABAAAAAYiAAAABG5hbWUNAws=</BA>
    </MS>
  </Obj>
</Objs>