From b21f1874b94562af594bb4b65bc79a7f66d602a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 31 Aug 2015 10:53:31 -0700 Subject: [PATCH] Updated docs. --- bgfx.html | 483 ++++++++++++++++++++++++++++++++++++++++++++++--- genindex.html | 324 ++++++++++++++++++++++++++++++++- objects.inv | Bin 8245 -> 10692 bytes searchindex.js | 2 +- 4 files changed, 785 insertions(+), 24 deletions(-) diff --git a/bgfx.html b/bgfx.html index 853b64cf4..d42099800 100644 --- a/bgfx.html +++ b/bgfx.html @@ -498,7 +498,7 @@
-virtual void captureBegin(uint32_t _width, uint32_t _height, uint32_t _pitch, TextureFormat::Enum _format, bool _yflip) = 0
+virtual void captureBegin(uint32_t _width, uint32_t _height, uint32_t _pitch, TextureFormat::Enum _format, bool _yflip) = 0

Called when capture begins.

Attention
@@ -819,7 +819,7 @@
enum Enum
-

Renderer type enumeration.

+

Renderer types:

Values:

@@ -2352,7 +2352,7 @@ otherwise prefer bgfx::setViewScissor.

Images

-void bgfx::setImage(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint8_t _mip, Access::Enum _access, TextureFormat::Enum _format)
+void bgfx::setImage(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint8_t _mip, Access::Enum _access, TextureFormat::Enum _format)

Set compute image from texture.

Attention
@@ -2369,7 +2369,7 @@ otherwise prefer bgfx::setViewScissor.

  • _access -

    Texture access. See Access::Enum.

  • -
  • _format -

    Texture format. See: TextureFormat::Enum.

    +
  • _format -

    Texture format. See: TextureFormat::Enum.

  • @@ -2379,7 +2379,7 @@ otherwise prefer bgfx::setViewScissor.

    -void bgfx::setImage(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, Access::Enum _access, TextureFormat::Enum _format)
    +void bgfx::setImage(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, Access::Enum _access, TextureFormat::Enum _format)

    Set compute image from frame buffer texture.

    Attention
    @@ -2396,7 +2396,7 @@ otherwise prefer bgfx::setViewScissor.

  • _access -

    Texture access. See Access::Enum.

  • -
  • _format -

    Texture format. See: TextureFormat::Enum.

    +
  • _format -

    Texture format. See: TextureFormat::Enum.

  • @@ -2626,7 +2626,7 @@ otherwise prefer bgfx::setViewScissor.

    Uniforms

    -UniformHandle bgfx::createUniform(const char *_name, UniformType::Enum _type, uint16_t _num)
    +UniformHandle bgfx::createUniform(const char *_name, UniformType::Enum _type, uint16_t _num)

    Create shader uniform parameter.

    Return
    @@ -2689,6 +2689,46 @@ otherwise prefer bgfx::setViewScissor.

    C99 equivalent is bgfx_uniform_type_t.

    +
    +

    Public Types

    +
    +
    +enum Enum
    +

    Uniform types:

    +

    Values:

    +
    +
    +Int1
    +
    + +
    +
    +End
    +
    + +
    +
    +Vec4
    +
    + +
    +
    +Mat3
    +
    + +
    +
    +Mat4
    +
    + +
    +
    +Count
    +
    + +
    + +
    @@ -2865,7 +2905,7 @@ otherwise prefer bgfx::setViewScissor.

    enum Enum
    -

    Corresponds to vertex shader attribute.

    +

    Corresponds to vertex shader attribute. Attributes:

    Values:

    @@ -3287,16 +3327,417 @@ otherwise prefer bgfx::setViewScissor.

    struct bgfx::TextureFormat

    Texture format enum.

    +

    Notation:

      RGBA16S
    +  ^   ^ ^
    +  |   | +-- [ ]Unorm
    +  |   |     [F]loat
    +  |   |     [S]norm
    +  |   |     [I]nt
    +  |   |     [U]int
    +  |   +---- Number of bits per component
    +  +-------- Components
    +
    +
    +

    Attention
    -
    C99 equivalent is bgfx_texture_format_t.
    +

    Availability depends on Caps (see: formats).

    +

    C99 equivalent is bgfx_texture_format_t.

    +

    +
    +

    Public Types

    +
    +
    +enum Enum
    +

    Texture formats:

    +

    Values:

    +
    +
    +BC1
    +

    DXT1.

    +
    + +
    +
    +BC2
    +

    DXT3.

    +
    + +
    +
    +BC3
    +

    DXT5.

    +
    + +
    +
    +BC4
    +

    LATC1/ATI1.

    +
    + +
    +
    +BC5
    +

    LATC2/ATI2.

    +
    + +
    +
    +BC6H
    +

    BC6H.

    +
    + +
    +
    +BC7
    +

    BC7.

    +
    + +
    +
    +ETC1
    +

    ETC1 RGB8.

    +
    + +
    +
    +ETC2
    +

    ETC2 RGB8.

    +
    + +
    +
    +ETC2A
    +

    ETC2 RGBA8.

    +
    + +
    +
    +ETC2A1
    +

    ETC2 RGB8A1.

    +
    + +
    +
    +PTC12
    +

    PVRTC1 RGB 2BPP.

    +
    + +
    +
    +PTC14
    +

    PVRTC1 RGB 4BPP.

    +
    + +
    +
    +PTC12A
    +

    PVRTC1 RGBA 2BPP.

    +
    + +
    +
    +PTC14A
    +

    PVRTC1 RGBA 4BPP.

    +
    + +
    +
    +PTC22
    +

    PVRTC2 RGBA 2BPP.

    +
    + +
    +
    +PTC24
    +

    PVRTC2 RGBA 4BPP.

    +
    + +
    +
    +Unknown
    +
    + +
    +
    +R1
    +
    + +
    +
    +A8
    +
    + +
    +
    +R8
    +
    + +
    +
    +R8I
    +
    + +
    +
    +R8U
    +
    + +
    +
    +R8S
    +
    + +
    +
    +R16
    +
    + +
    +
    +R16I
    +
    + +
    +
    +R16U
    +
    + +
    +
    +R16F
    +
    + +
    +
    +R16S
    +
    + +
    +
    +R32I
    +
    + +
    +
    +R32U
    +
    + +
    +
    +R32F
    +
    + +
    +
    +RG8
    +
    + +
    +
    +RG8I
    +
    + +
    +
    +RG8U
    +
    + +
    +
    +RG8S
    +
    + +
    +
    +RG16
    +
    + +
    +
    +RG16I
    +
    + +
    +
    +RG16U
    +
    + +
    +
    +RG16F
    +
    + +
    +
    +RG16S
    +
    + +
    +
    +RG32I
    +
    + +
    +
    +RG32U
    +
    + +
    +
    +RG32F
    +
    + +
    +
    +BGRA8
    +
    + +
    +
    +RGBA8
    +
    + +
    +
    +RGBA8I
    +
    + +
    +
    +RGBA8U
    +
    + +
    +
    +RGBA8S
    +
    + +
    +
    +RGBA16
    +
    + +
    +
    +RGBA16I
    +
    + +
    +
    +RGBA16U
    +
    + +
    +
    +RGBA16F
    +
    + +
    +
    +RGBA16S
    +
    + +
    +
    +RGBA32I
    +
    + +
    +
    +RGBA32U
    +
    + +
    +
    +RGBA32F
    +
    + +
    +
    +R5G6B5
    +
    + +
    +
    +RGBA4
    +
    + +
    +
    +RGB5A1
    +
    + +
    +
    +RGB10A2
    +
    + +
    +
    +R11G11B10F
    +
    + +
    +
    +UnknownDepth
    +
    + +
    +
    +D16
    +
    + +
    +
    +D24
    +
    + +
    +
    +D24S8
    +
    + +
    +
    +D32
    +
    + +
    +
    +D16F
    +
    + +
    +
    +D24F
    +
    + +
    +
    +D32F
    +
    + +
    +
    +D0S8
    +
    + +
    +
    +Count
    +
    + +
    + +
    -void bgfx::calcTextureSize(TextureInfo &_info, uint16_t _width, uint16_t _height, uint16_t _depth, bool _cubeMap, uint8_t _numMips, TextureFormat::Enum _format)
    +void bgfx::calcTextureSize(TextureInfo &_info, uint16_t _width, uint16_t _height, uint16_t _depth, bool _cubeMap, uint8_t _numMips, TextureFormat::Enum _format)

    Calculate amount of memory required for texture.

    Attention
    @@ -3336,7 +3777,7 @@ otherwise prefer bgfx::setViewScissor.

    -TextureHandle bgfx::createTexture2D(uint16_t _width, uint16_t _height, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags, const Memory *_mem)
    +TextureHandle bgfx::createTexture2D(uint16_t _width, uint16_t _height, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags, const Memory *_mem)

    Create 2D texture.

    Attention
    @@ -3349,7 +3790,7 @@ otherwise prefer bgfx::setViewScissor.

  • _numMips -

    Number of mip-maps.

  • -
  • _format -

    Texture format. See: TextureFormat::Enum.

    +
  • _format -

    Texture format. See: TextureFormat::Enum.

  • _flags -

    Default texture sampling mode is linear, and wrap mode is repeat.

    • BGFX_TEXTURE_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
    • @@ -3367,7 +3808,7 @@ otherwise prefer bgfx::setViewScissor.

      -TextureHandle bgfx::createTexture2D(BackbufferRatio::Enum _ratio, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags)
      +TextureHandle bgfx::createTexture2D(BackbufferRatio::Enum _ratio, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags)

      Create frame buffer with size based on backbuffer ratio. Frame buffer will maintain ratio if back buffer resolution changes.

      Attention
      @@ -3378,7 +3819,7 @@ otherwise prefer bgfx::setViewScissor.

    • _numMips -

      Number of mip-maps.

    • -
    • _format -

      Texture format. See: TextureFormat::Enum.

      +
    • _format -

      Texture format. See: TextureFormat::Enum.

    • _flags -

      Default texture sampling mode is linear, and wrap mode is repeat.

      • BGFX_TEXTURE_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
      • @@ -3425,7 +3866,7 @@ otherwise prefer bgfx::setViewScissor.

        -TextureHandle bgfx::createTexture3D(uint16_t _width, uint16_t _height, uint16_t _depth, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags, const Memory *_mem)
        +TextureHandle bgfx::createTexture3D(uint16_t _width, uint16_t _height, uint16_t _depth, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags, const Memory *_mem)

        Create 3D texture.

        Attention
        @@ -3440,7 +3881,7 @@ otherwise prefer bgfx::setViewScissor.

      • _numMips -

        Number of mip-maps.

      • -
      • _format -

        Texture format. See: TextureFormat::Enum.

        +
      • _format -

        Texture format. See: TextureFormat::Enum.

      • _flags -

        Default texture sampling mode is linear, and wrap mode is repeat.

        • BGFX_TEXTURE_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
        • @@ -3491,7 +3932,7 @@ otherwise prefer bgfx::setViewScissor.

          -TextureHandle bgfx::createTextureCube(uint16_t _size, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags, const Memory *_mem)
          +TextureHandle bgfx::createTextureCube(uint16_t _size, uint8_t _numMips, TextureFormat::Enum _format, uint32_t _flags, const Memory *_mem)

          Create Cube texture.

          Attention
          @@ -3502,7 +3943,7 @@ otherwise prefer bgfx::setViewScissor.

        • _numMips -

          Number of mip-maps.

        • -
        • _format -

          Texture format. See: TextureFormat::Enum.

          +
        • _format -

          Texture format. See: TextureFormat::Enum.

        • _flags -

          Default texture sampling mode is linear, and wrap mode is repeat.

          • BGFX_TEXTURE_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
          • @@ -3585,7 +4026,7 @@ otherwise prefer bgfx::setViewScissor.

            Frame Buffers

            -FrameBufferHandle bgfx::createFrameBuffer(BackbufferRatio::Enum _ratio, TextureFormat::Enum _format, uint32_t _textureFlags)
            +FrameBufferHandle bgfx::createFrameBuffer(BackbufferRatio::Enum _ratio, TextureFormat::Enum _format, uint32_t _textureFlags)

            Create frame buffer with size based on backbuffer ratio. Frame buffer will maintain ratio if back buffer resolution changes.

            Attention
            @@ -3594,7 +4035,7 @@ otherwise prefer bgfx::setViewScissor.

            • _ratio -

              Frame buffer size in respect to back-buffer size. See: BackbufferRatio::Enum.

            • -
            • _format -

              Texture format. See: TextureFormat::Enum.

              +
            • _format -

              Texture format. See: TextureFormat::Enum.

            • _textureFlags -

              Default texture sampling mode is linear, and wrap mode is repeat.

              • BGFX_TEXTURE_[U/V/W]_[MIRROR/CLAMP] - Mirror or clamp to edge wrap mode.
              • @@ -3631,7 +4072,7 @@ otherwise prefer bgfx::setViewScissor.

                -FrameBufferHandle bgfx::createFrameBuffer(void *_nwh, uint16_t _width, uint16_t _height, TextureFormat::Enum _depthFormat)
                +FrameBufferHandle bgfx::createFrameBuffer(void *_nwh, uint16_t _width, uint16_t _height, TextureFormat::Enum _depthFormat)

                Create frame buffer for multiple window rendering.

                Return
                diff --git a/genindex.html b/genindex.html index 3cca8193e..d3bb62eb8 100644 --- a/genindex.html +++ b/genindex.html @@ -717,8 +717,6 @@
                bgfx::RendererType::Direct3D11 (C++ class)
                -
                -
                bgfx::RendererType::Direct3D12 (C++ class)
                @@ -879,6 +877,8 @@
                bgfx::Stats::gpuTimerFreq (C++ member)
                +
                +
                bgfx::submit (C++ function), [1]
                @@ -888,6 +888,298 @@ +
                bgfx::TextureFormat::A8 (C++ class) +
                + + +
                bgfx::TextureFormat::BC1 (C++ class) +
                + + +
                bgfx::TextureFormat::BC2 (C++ class) +
                + + +
                bgfx::TextureFormat::BC3 (C++ class) +
                + + +
                bgfx::TextureFormat::BC4 (C++ class) +
                + + +
                bgfx::TextureFormat::BC5 (C++ class) +
                + + +
                bgfx::TextureFormat::BC6H (C++ class) +
                + + +
                bgfx::TextureFormat::BC7 (C++ class) +
                + + +
                bgfx::TextureFormat::BGRA8 (C++ class) +
                + + +
                bgfx::TextureFormat::Count (C++ class) +
                + + +
                bgfx::TextureFormat::D0S8 (C++ class) +
                + + +
                bgfx::TextureFormat::D16 (C++ class) +
                + + +
                bgfx::TextureFormat::D16F (C++ class) +
                + + +
                bgfx::TextureFormat::D24 (C++ class) +
                + + +
                bgfx::TextureFormat::D24F (C++ class) +
                + + +
                bgfx::TextureFormat::D24S8 (C++ class) +
                + + +
                bgfx::TextureFormat::D32 (C++ class) +
                + + +
                bgfx::TextureFormat::D32F (C++ class) +
                + + +
                bgfx::TextureFormat::Enum (C++ type) +
                + + +
                bgfx::TextureFormat::ETC1 (C++ class) +
                + + +
                bgfx::TextureFormat::ETC2 (C++ class) +
                + + +
                bgfx::TextureFormat::ETC2A (C++ class) +
                + + +
                bgfx::TextureFormat::ETC2A1 (C++ class) +
                + + +
                bgfx::TextureFormat::PTC12 (C++ class) +
                + + +
                bgfx::TextureFormat::PTC12A (C++ class) +
                + + +
                bgfx::TextureFormat::PTC14 (C++ class) +
                + + +
                bgfx::TextureFormat::PTC14A (C++ class) +
                + + +
                bgfx::TextureFormat::PTC22 (C++ class) +
                + + +
                bgfx::TextureFormat::PTC24 (C++ class) +
                + + +
                bgfx::TextureFormat::R1 (C++ class) +
                + + +
                bgfx::TextureFormat::R11G11B10F (C++ class) +
                + + +
                bgfx::TextureFormat::R16 (C++ class) +
                + + +
                bgfx::TextureFormat::R16F (C++ class) +
                + + +
                bgfx::TextureFormat::R16I (C++ class) +
                + + +
                bgfx::TextureFormat::R16S (C++ class) +
                + + +
                bgfx::TextureFormat::R16U (C++ class) +
                + + +
                bgfx::TextureFormat::R32F (C++ class) +
                + + +
                bgfx::TextureFormat::R32I (C++ class) +
                + + +
                bgfx::TextureFormat::R32U (C++ class) +
                + + +
                bgfx::TextureFormat::R5G6B5 (C++ class) +
                + + +
                bgfx::TextureFormat::R8 (C++ class) +
                + + +
                bgfx::TextureFormat::R8I (C++ class) +
                + + +
                bgfx::TextureFormat::R8S (C++ class) +
                + + +
                bgfx::TextureFormat::R8U (C++ class) +
                + + +
                bgfx::TextureFormat::RG16 (C++ class) +
                + + +
                bgfx::TextureFormat::RG16F (C++ class) +
                + + +
                bgfx::TextureFormat::RG16I (C++ class) +
                + + +
                bgfx::TextureFormat::RG16S (C++ class) +
                + + +
                bgfx::TextureFormat::RG16U (C++ class) +
                + + +
                bgfx::TextureFormat::RG32F (C++ class) +
                + + +
                bgfx::TextureFormat::RG32I (C++ class) +
                + + +
                bgfx::TextureFormat::RG32U (C++ class) +
                + + +
                bgfx::TextureFormat::RG8 (C++ class) +
                + + +
                bgfx::TextureFormat::RG8I (C++ class) +
                + + +
                bgfx::TextureFormat::RG8S (C++ class) +
                + + +
                bgfx::TextureFormat::RG8U (C++ class) +
                + + +
                bgfx::TextureFormat::RGB10A2 (C++ class) +
                + + +
                bgfx::TextureFormat::RGB5A1 (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA16 (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA16F (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA16I (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA16S (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA16U (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA32F (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA32I (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA32U (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA4 (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA8 (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA8I (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA8S (C++ class) +
                + + +
                bgfx::TextureFormat::RGBA8U (C++ class) +
                + + +
                bgfx::TextureFormat::Unknown (C++ class) +
                + + +
                bgfx::TextureFormat::UnknownDepth (C++ class) +
                + +
                bgfx::touch (C++ function)
                @@ -896,6 +1188,34 @@ +
                bgfx::UniformType::Count (C++ class) +
                + + +
                bgfx::UniformType::End (C++ class) +
                + + +
                bgfx::UniformType::Enum (C++ type) +
                + + +
                bgfx::UniformType::Int1 (C++ class) +
                + + +
                bgfx::UniformType::Mat3 (C++ class) +
                + + +
                bgfx::UniformType::Mat4 (C++ class) +
                + + +
                bgfx::UniformType::Vec4 (C++ class) +
                + +
                bgfx::updateDynamicIndexBuffer (C++ function)
                diff --git a/objects.inv b/objects.inv index 46303a4fd14f54454ee568332b277501b9cc4ad3..254714aafb9fd351775dfe9f38440321498ff6f0 100644 GIT binary patch delta 10664 zcmV;ZDOc9DK*Up!c7J_YbDPJK<$M1MN6ft5j@lQ!Q6eNEu0*l9*zS2@)RHA}OpzQC zlnm#_Dq{^z&J z_ly7a%b0)ukMCD?MbYcO|Ml>T`_iAU>fHt13tit_{a-2*k$=Cozbdu!OS(M^-_B$b zGC8kQQdMSIWHccgBcsf!*4j*1tcAsA@c;Xle{BG*(O8v9q*8(^HD(c&%)&_k3E{gy zrO?i1A2d0mZB!zuWJn5Mb!j5CK2WJ$%#8{fSX`o#tu5LZ7hP#B^>trr>AY0d%jiT_ zq)V)+N#&ImMt|1M?z>>KZo-7vN-)kgjgDhLgi(fcXG>!;F?!5>X+aBXbE`VHpuEX8 z>f8mYLUUR~irThXb%at0m9&GFVwIB6Mv;GQ7p#07;KBOs6zO?3nUxH z*ij#75)l*aopL-9TH~LpFj+qPRzvCpEzV<5OMzZSj~|7y5xV4Zwx;Pm(CUN05I_%n zDxyjiNEu72MyF$^ML89MF}egFRfNGet7CBjxX}Gn`t;PBAT?ZEh8tzyiU~9DtpXNi zYf^nG<$s}`Is{R(Nv(MJJkpMmleNGn2G3@R}twjsH@-;LY9gH-P#UNy(`al(h znu9D=WN)FUkT0!zPyp|sw<|YqDV^i z0zOzDoD-d98Y!ogZShTKleG#l!$G+W<)vt4U-x0{QZ~eo7Mjdj%GwIXAp2P0VML#k zPJcmFS26_;t#?|I7}BDiAzlDiw!+!KGLUSL!tEpwFRHhxtL~l%Q9zf8i9>bSE6rB2^mC@sx?r2$Hdx&TC>Q_E94TfZ}!RQra9Vc zTXo7&VRk|Vidg2k7@cJhs(E-n%zbN_a~>4Jc;vnijqW02gz9Gz611QhSu!)J zB4M(+&!SpQ5_zKyrD}wd016bCUVk)@Kv#U9?YAaiK**dd=)RC(Rwic^Fw97W+pyWc zOyBADIu+tyb7qcgTnM;71Wp?(NPiVNd$e40b6Xdt;e1(yXyHe^%b=#kl7;W`rMYN3 zF_G?Ahg7#95qB|WffP6iE2_;&c41;HNeV;JSg558pr@5Hs~AK|HFaTvhJP2WOn@Un z&XaP+C_s~7@m@67hZ$qgsvsGXwU4NK9N1Z~}NykK53WUB=D`~J52{+hwOLd!^4jpX z3SFw;CKytsx-j8HjDe-w1_}y0)dtxPSXHi|>bdk_LSZD;id?yPLK@+{1;Z6kPY0f_ zy5>lgR52~pM#EG>cnL&gJ5jZQQSF)|GMP;_4D$zidM1R0vx-coCIniK_ zOiH{MMX*zlCWUme_O(+(nMmpc?+*TnS*cCI3IYkr5k##IGZRb@(G4jg^i&muQFNXV zQ<0(OE=>4&I8iMc|M75m;HFhI72rSyuIoL+w7Mz;4(Oq&K1uGb*KZi3Pz;YvlQ=6#O=!@9@rY1|ZSrLM3Ay8;SDPAbT=Q<}- z`!G{Wv4J6at&rHYV5p|-C?d^QefnvH$sWE=7hgC@Kt3kD(0>Fk1)DNm;|U6a#2`B9 zF-1@;(0o&ZMH0pVHFx=BQxh^HYNk<6%}ZYcFJ~yIe1@0m@=KQ8n*@>bm>flv0z8~I zoXb}eb5}gFFdPeo6inhWC>f{|B@fb|3j%ZO!z^$avcS1#gV_&oD8WaN5NWFRUGr`; z)DU69M>Dl2jeod=k&udQHT$l3WJ|SzELaU01UZM1R7ggYiODPE9$lDKz!_Pj#L;-< zbQ*e;q3cvV>5}`#6NBl%Y+A^kw->-~piN{*lF81CK1^Q2&iFsL0;fmK6p1KYm5)N2 zF3x~N6Mcmt6=ZYBzTxG3%Z2a}xe&WzoWr#E97GXWT7RREC?T|?^I$wOhAjIqscNK# zO`?Gj2_l+}pf6(;q-yCJPX|gPNnlvLf+I2TC{i~hqCUf1ZC5-(P(#87XQYKdzeUZt zBIAlM)dcm5otRk(6F@nIS3)SSg@;`gTgcfyKJT0mF%|F-klEIX37R}FVLBgS@m+T0 z;6cF@Jb&-07!i0gK&a>w?^s4bz6-N8DXWUfwCIc@a)gvlAe@+%6?OR#uOyNp<8{t3 zbdUK84#}tG{cBxJm(Fu9Ng%y8n!xK_wVZ<{Z*Af|x2_n6)CGwpXk7{#V3NBo6B13I zS`2-BJ}8$FI|3{TG!{v>Q6kN1`e*`Bb@e)CieVFi^ zr6KRgaHWwsx4>Urgxa^>@pPdSgCrQqV8dv-!uero#QeKbmu-S=73*{>Ex>!A@7`$# zzvr_96{paJSrI4EMCA}Yi)*|H=8z?zp#qG&i!*>6Vla_(W?oa#;5ZGu7JNSID7EO) zrGF@rL2_I&;+x@6*(BU^2-Bq|n0^Hxy4*G+2C) zJ}EDQanM&Z8JU9W^4d2M5A08_iJ^&oFcG+eY1uPpG zEad`bjP#=j$w%B$!Y6%el^N+)n%bdF6{b&w;e?A0$ZA2wy7UvIu4Jndj0@GrUDTC#cSt+C{S&iZUiQLsiN3&l2FfElfqM)l1R?8Q52GYE;7 zh?V3KHl=IIR6gX_gITnLNoJ8Kl!OGq)K*oC3h@M9urKE-j?Z-Cr4ojXWRcg9cUCsDaY+PDttFv;|3r za@DDjp!MFui3;c`roBXo_}PVtEWt>N3Ac=vG(4&R$0LthRQxg~qL5FqfiZw{DuuK?xGX@TS_xUXu68!- zZBnrX(02>=nPrx+0@)ClDeJEI-jEEo9uK`Cl9hb>;&FKecjW426KfhpT{Z z69^c^`yi^8g_mxAYULI@yzm8xh(sBFADjf%DzX$A6m=LI@2^}Tr4*H#5n#VA!2clY zmm+vCtQxk>-d#CrMz}APkC^j@B$%_eV3L}D;myzOxqmD0G9g>&H?PygTojyRGPQbZ zQvA8v4kkwMq&WqvDyTj2u_o;@5_#UY__+#~v<`esI7{SxPBu*y`F;kGLt0*Y`w-Fe@v(SKjI9OaqxKyuvSjZsp#)mY~+!B9L*O)Jl_xuQGX` zYER`QU0mc;{x~~-mGJb)Z`OwR_GENH2ELP2_KHK(Me2q~KGAHY_gkc#})! z7T?-jNg{2AMi>lIK?LCQhgAeEO---GZ@ej_5nyvNA|RnIq9Cu(DVQjW$*;#RErPG> zLVvMZ_-{^NOBJOeYZqOvd=Vc8TfjvevP|B1ho=slb6e|$v+4EY14Bjbu04WpL(GTP zi{_{ym9qv+unYhCwo`2S!`HLxv%78pFnATcMa~Z=V=>PSfrbb=OJEhki+*GsvvV%n zh9D+VwG@>%A!peNCZ@E0WWyP+Y*NX_DSx}KE%LfNtV0Ln0#{GMTVMr2nr$WWk(g9 z6VWzgk1*ST{O#=fS?!gZ{zQM%YvpHWAK@2~D+P2!+ENIfrB-Pzd98H)2dZ!`kaa0& z;)(H%G6;!9knsW)r0|baQJ_tY^M8DVk)Sa9A;K>3iy8->8hN1#lDf$V&&ZE)NRKed zCsLpS9*MnFuD=QxTjWiLL`_L!tMoxfsICSPt$cOq70{`{sX16Ic&+1e=T$lcN5}Uf zBx-mCbQMlpn-r1`Et-ODIK&U@6wCwJPkt421l8uHD+eOtoAOFwQhgR?dVi+l70~>m z0&|amRw7@=q_$8Z>IMx>T7@pw*ZcvdLFu)JSOx zNJ@+OAE<(4#hiN?QZ~V0uzwPCD`=!|#1D7;6IC=g1ta-(iUdzDgrRF*VIr#J>qI>R zbwihxZqC|G`cB>A0GRxJ{c3r>9i^+XfkNcN!_`-6$Q-733{BLj%e8DmOA=` z{C*d0NWw=XZApMN<6|RyL*>2-Umb7Z?W7G^=-d$D5RM&aE5=1mFIX2o-O=nW+K?4l z9eMXFtA^i%%ui;-B7b=c#C0*t?c2bQN2uC7n5~em8QzGdC@LQk$<#9rx05uv?UkFZ zpgGn@Cy}#8!3598hL4aOdqko73TO#W!;|=mqc=gZuXoxrKvUNQR_V+&{HyDz3k+L?j?WPfYV^vlW zT$FrkH)DFaZ9gVPFBq$}HLTthbuc@?xG=bfJZfQ4-2)qId+l|HOnp2Bf zv2hy=4Oq9_QGX*`g+JjXbBdu>XRPKE>KfS@l3%f#MquzG-%`*qS|qbg)|L^Bvw;!g zS37Bh6pC+#A;j|Y4-MSgn?MF`Hh~LSv!h11?47BVe4g&Rivk+v_?k)L8>KsHgvUq1 ziiW`#G6dOjEM#gcH6>Sf(+J6Lx3GiSs`(3frx2<;9JeD zoh#ZPc4MM4YTuv~g5Q`mswr?&A5`G0Vw(JJoE5(mU^sG03YfsTt8PbkMf`3psxTWChq#^Qy*Hu4jv7(D_8}1&cnihPuwYyaSPt8)uVz<`@VsztOF~xZ zM1+MzBS@B5YAw4_OoMnue7i|&6;&!RgkqvW_6)I1JDLvgmrTfl4I-$AzY5k?Wp$$H zynofZ@tD@}?Fj@XrtZGI~$Tk#MDqq)(7G(ZVhgcL$=1s-6$ry zEs^|DgFe=(O)Ld0!lFn>S%}@l4rfI)){$x%&azmgQ?5}V3pLI8vYSxu__1tEh;95Z zDKa06Ow^)D;QM;u72;Pn!aKwbkO!~P^M7W&R3@XiL2mAHu)B#JK1ldUe%7Pa6sNC- zBcvlm&B#XcjslqHQy4|^tz*h6gI*z?3z4%grM9@6=?E@sYxpZ3T!nc$!B62vU&D|(wL>iu$!f2$y zijP_fB*uK6J@Db`-GuVk6f$!!Du3@*fza?vA%ry43cg9vb=qS4MkLO06rvVy*zhy6 z6sC(ME+V}9yc<5juU^JT8oic$p-?p94HXlrhoeZl(TN0AG$u=-r0@vqNmj|nt`Sf? zzo@mFMl?jv3Ri)oSTOC?O$iMxjl}OU?Per0|63T;-kRi7s#YqEKQ{4m>wi0%j;v%1 zt{?}MymuKY{#vA$O&hex?`F*^8*+Tgfj}ivl7g2@_;zw)?@ekq9y2GKLQx=;HBlxH zvvlMv$iEK8x!sT&Ubv0Md0#OUHA__@{Ixgm9{h~TZUR_F)UtfbzQIqm1|H!M$UGO~ z_g#16F%c>hA{a?{EWXNXqkpqGOIHI){Ja}dQzVhr_@yX;zh8v-Xcd3oLPjdo;%=;? z_z?Nq;dCv?h;xog$Cg3_t;#`(-4I=TOqxQJAytj|X=O{^m*$J+(HXus99`j|5j$GZr9}M3TUJ`M zU_IZ`l6Lz3cF?Y*-MH=PJyvg>*H$G{vk@V{kH;q2jfEXeN2#vzi?miKQF*-t{wt)+ zH?%~oyNMkH4ZuiL!S_e`IUO6Lg2nP?F|{2XX90guw(@uK@qYs%(t_><2d~Yqi0j(5 z>2h~@K0TP-dF**!obSts+_Vdpgy%0(D!CvL$cCSd)~5LQ^J_@bPjA{2A7yO(6>emu zEYr)Z%~+*&&;))VJ!;cHx_F%xx+)EC<2I_w`L>HD@Y!Zdd@&&USPKlrc+_tyBEGC$ z&#G+Ogc7`MY=1H!HmNq=sY9+Tr73Wv!S1372w;XEF!F3eH6a(P!O3coH={(YJ7_`^ zS~0V$kss;J1zO?wDF*(Ii)gwIfBm2vxQ??*<>GbH(=QqFQXvhUKfD!0*q;bp?T6*^+P$S%R0x%wHGjn&qeGB|jAM>Ix!U zA2KfOomDod>2e7naHvrEl`Q+}3Q8oOrSkkjF$e;GgN+URT9#?#ZP&{(ixp7fZ)8^d zeQHdNwSNeTzvzN@2CNrdfp4h-LIQ|T%W*zTJyp=jYt6^z(V>m|Vz-oT%D2T5v(N6o ze*Sn?;4poq|9Jc1{qJY*_70EF-hLV#?4OMf_D6^KVRUfvOL_A>m7A+y<|`=w$yGc_ zz5DX{@bqLfsOg3~gB43X7M@Qp>4}+vWj`t78 z!%BYMA5@M9@^`HUmOVb%J9sy=u}3^VN28;&&!?YG#wQ<-Mtl3CVXZp;ZSU~x-N(K0 z!Jy(Nqu)4&rN`;Ws49(*|%4J(N`JUJd#lsi1E3t7gOkyxfn|rZ_Mzyn-VQ82Lgf4emwJ4Hz;V3E1M}bCyxE(*P+G39-;|4Vd%IBZ?A_tv4|QPp z6E`b4T9SP8=I!|;U4Es@$#9VPDDxcd-POg_jTnyQW&&$~h^qceswt|}{C{ZM`lMbEf2wqCO~2ioPqwc{Jju>=?B6f- z?3(ui-qP3e%dKlv^U|ZodY=DqAoa;?)8YMe&tVn<@`eVDE^E&KJjjlIY`}g$eX6Cm zvs3BOOXJ$ov9Sr2}1(tEXUf&JI&?vkt|2_S+e}9wyddQseByrtAf=j@S_$~ud7XS4j3?)Wmf+e&`g%JQ$WBWyA$;4aZ|>Ww zPW`z}ckG{w{rEh4uy6pmo|Sx(JiLG9Zl514d|6(qd4bh1Z-3r!n0|ZL8hSCHLyMSF zJW0Qdzkl3OgPNCLS4X+J&{$64o5JlSZ zLfsd~9ZfYXwjNWujuC~_CdBtWt%TTmOx2_BklKXU)k=tM!t9wKJC$3Hs(btqq&6XT z^&MhsF@HxVJ&xG0*d|QXhp9GV?sd%3RBkhBNB`YSa6RrYs=I3QVIAZlM!aKG?Nn|v zYR9;`nczlT)7e_H8MU{yW@Bqr=h&)^W2-vHV1olZ>QGm8Bsbv64^qCBqQkXF@g%*W zf}Tiqv>{R*^+l?qO_2(}9QR?4H(?(4VIFV7Jb&%OJYA337gvrp#TEQ=+=n^dgn8PB zxuNg&gL~USq1{YyJ#J6FbQCt=jeD#pY#7aO+=aM7H^XTc;)dDz(BnJ|i*3a0P+HLJ?=z3-iUhIiMna7y4;AJ%56j)ccP9rqMml5ZW@8mqyHbmCd4i;`eBpZ ze}4$aeVCgxDxCIVZW>L{ioFh6=IJB-lyyPg9O_pifUf|sgl##*KZdPA5MI3fv5ST=Q^}OD?{^WOY1@laO2B~+_rUwh1TGG1|iuR zkA>FbnI1f|2JcrY+vBm&6W*`Wd(Qj(Sik@v@l<>j#G5y%4m=P%52YbBI#{@O;(z&| zY2YKtV)pUV)aSgi<~;mt^nBfRDmOaVxY0gePo;8IY5R)YOmL~6M-Lr6TG7*^e6+f+ zblEe?v~b{h9`7qn=8mClg&H4amwL9YqTy%r=d1DelB4IxxtH07$( z7<5Pt8JOEY&abyeH!SvOE04hG;(y|*3`4WivMWY)`uX_sc9Jd&@hPUcLuN0cD!oR0 z>GlDiBwwuYgbz%zs~R{MW>IQ%7$1M$RKq!4PR20zzqaa?T?;TeRASZVYsU4l=xi#t zYJ^*lfL6$rzj$oM(ZA=_=dn>GU6keX+b@s3T@o7|NqPU*@nySu9RKG(%WK9Ww_|-i#Fwk z(uDT^zD(cG%l77G*2!<2wt1Nj^RjCJ){WV^HcXFfZd14P&jd%$ZD+N~tQ-8TNByA@ z3(oD|_h*^cb(OF9@^QzlMt@qYl3m-8!<(zG7?**a&J@N6pJTjnfk3{d{fL_IshF!RL{AaGr+??sj#ZYJadZUld!Rd7GW~+;y~#qoDg* zq*t}*A8y*ayG+|z$(-QmpK8o~uC|@F+zas?y@M6$@;bxa-a*RnTz~ROM_=-cHGkzH zd3Ql+u!+sfJaXN<40(8iU$mivwji`Y)iIp^^HdYvPHwLL?v7`6Ex<^b=O518)0*0Q zh~s*Mk+Lg3UEP4~!&-PQIg)uZXK6HiWlBnp#A?=D@a;5M{iNz0A*SK9UGmBCq zsqcSU4Zc+X(+fgNfq!xtdAm4f7Ntgy-f%Vec5crsN&)=-r`6ycelD&M9m%lCK+bPV zx*51Koh6fh5>|!;*UOYNiPP3%g3tQ@VoYQT6V74Uup7q^ZVs)-cLT4@jWmZCq7+ zEdS&Ro=3d{w|`d(-QF%Ou|Rgptfo&-4GkI#LXVZM7#W)EQ@;B;P@x}+k5(d$zo)M> z9BEp7&NnXD-cl@jWb6xL^upp4*ReH4F^f{G=*cEcW8uz)Fu76~dMCs4k5^XxIoB*m! zLwr1;%W{6PP2*=0qs>~g9di>;5(5orb){Rb<*Rv_$EdJ8>K#eH~`1_Yy1CM(%&Pts%N)xw&cofqzzx z*|)n%eK>40z#rZhpCf0tclrBJ_UdMZ*QGvw*&9u+?uO=7c3SrNrs~~webr{hI{6K2 zKO2?`7tngPIo1MfS_^uyL0hjnFNuxT5VIjhv>{=aVxbn@*Es#E#%*Zs>Q-*E7X3_c OT}xj*oc|xr@sF_{y_r}5 delta 8197 zcmV+gAo}0LQ?)>lc7I)2SDVL{eeYk9wYp#LT{RDW!$yu-u`vxe$?X?b4W}?2rUv08 z_t*D65`!cp_`Xt{>%4yNi>tb(>Ghxgc=*MA>rYqp?wsz8u5YgXm&#P+(|`6yrFM2nwHW7ETWQGI0+yjd>5z` z+S%-bCTFybN+gvGN#Uz5O{CTbDz%HbQNaLoydxG zi8VE;ywbwR+J8BH7i`u|m=IeD#@VJZaV&^1%8>3HX-pNzTiXSywNXKt7Im`T zNNF8F9bTFula;-ozL6v<6q2p*suIWu=PkBAnB2Ef+J6$oV!VsNwkV4#gx|YBvSE!K z^?@c4vC-Zs$19;V{;3L^<+E=!q)yP{JQlSS_+|8XDU^-yC6}``P4|IT9|V>Fe&ACP zRjNSBSW-1Q9Xlh+sSu3OCHSZ!0=`)tixa?w@2Aq|r``mqk>WDaDCbsem_cq8h%j4| z>T@X%_kYwOh?-4m#UtmDc9fi~1vxRePS7af4WI zkT6}KQB>qOqpVcL#%wflY7km#ZHqwo_JK+tjDKh?TKJW(q1osVq=76JAsf{PswmVP zWT_&13rB^0Y1M-Qc%Pl@12v6;lGy$1jdI4hCS@v3M`aOiu@5vPA&^vEF)bBEQgRmX z!TR8w=nT_HIi+liZ#tW-Rfri0%4Ik&MJxNJk7$>&p?>D`7^4sZ%HI0NcoDjY(8Q43nv4V>psv@TWyVOv5I_a8jch^wyGc@ zQtC_6nQRmoT~k#k34e7+D;61Lc(9SBQUTstV5)l;F7F0DrX$ zl!PqFhm0bUWb?TxZ9{eZ67ov)ttml46scMR#dl1sU8psS+`NL8h<&?HPB+cfUfZfu zjtaXIDp;h1?^CDZqhNHFL8#`D{jm3~W!5}sg!RaMB^uL(Vub5w5fZ$h8CfzjsUi`w zx-X(yO%l4%hEg?3NdN^3OfMQppnogAFZNp#2p}jY3%V~Pn3c&{1uQe9a2vM!m+69T zuTvrZH7j$daUqcYP&jR@ApKS7>@jl9!);xdhV`-t(ISs{mqAU7C5znUOLNh7VnXg% z2dP^i#9fS8KmsRWMYTD}E=;T?Nnt1&3%8U3^t7_Fib14QQx_&^c+tuPB!3cUo|H3I z0iJ}2_oBHz%ou}KwIv@htmwd;3~Fg}Udotb?ZPZZLz#f@aIu#pky2IG5YwcPRZSme z%nj7OdL+JDQ>B32%Al$)1XP$V%nH`r1okPT*2U^H7^whtl%g6Jy4DkN3GRc+DS5om zd|nx3!35oG6_`mErq5BQkbia3F_D%6rLWXV8f--(4R&EBq>p5678Q)VHvClKOBLJ% zOR7{CCX$FTh;-XPK@q3gK<$84wMWpjAPJJGeXB)fj-o0tK$S$m4_%lPF@KzButz2(K8zy7 zDM*uooUDE0)Nm$}Iw8A*e_~f^Q;32%+{15JYu@M1-HJf-;K96KX0HYVN{B zo<|bZqVXS(ga>X~RZ{^8WZ=2pGfbv95Zg19pQbs^ma$ ztmD(Ch}@yQguD@bn14|ztxGH@ZdyaZT@3wOJ8@Yavi*LMc8d!uvWWQ~NMeOR<3= zdaWSrS};^ob`&A=RiA$vVX{ZA)5RAS3D9HG3r)yUh$+*xo`0Yq5C+jnk1c{@f##bM zEJPR=)ZCSmO-)cn)J&tCnwP!?KF&~Z`HU>pm6t51Hwhx=u{nw;1!OpHSj$%vb5}jG z2pkKC6inhWC>f{|B@fb|3kq}W!z@S{vLLxC5j zjk<)Dkcwk9`+u%_WJ|SzELaU06gh{LR1hP|#N-vUM;B%lNJbWtI2sR4r{PB#zE0JX zF1c?#v6v3briJYJ@dEe_yon4+GTC|2hskHy8UKPSusmv}NL1mfd=%1jaRvxY%oTxD zpyr^yk>z~Lh42=+5W8xe!?ySwL=jn9qac(}+A(=B9)B4_mVKC1HKbva7+{1z#IRBH zWvqf!EnVyBKxrfiEUQ;YBnBBp>INa|Gs4w&)gu%&2sR`mEd=H*YR(mkD1yk_+OvQ-6 z4+DgXK7a8O%P7cqVYVh^RWX?sopD5tAn63kiD_9;R}S$?LKGRVb4H+h>{oCQpO&9r z>tecmo@Yq{^4e$uuXok522I}D#LwKiY8<2sge7QQ3L0RNr!EtOrcW(~K0Y6m%cvaz zkpvnG(e0Ea$YPSxTJO5{Jz%;e7iqnPlY)yD@PCisq$EBfD6$U|nX@$Lj*L_qnR5&L z=px*{^{%H2r5K1{h{1-{bcOX{X~g`yQdew(Z58WuD=i>&hrH*r0~M#xg;`N2 zF+}B1J&S962Dl*JubJVEVL_LA$}}m zTq%7zE(Q)EWDpO+=pkFdKTz{qg)>2mbmh7vQ8R6`5S&(6xMXowRS^h2O5S$)CxkHu zC=5~u1iRNpN&!CZDVri(?BaD8Xl@4L3J%nC)TqcF99%=*`0Dy}2TG3s+p@J(WPc+e zz(TO`D9JfyX|(ObEQm=35(c`d`H~l39xE9+035V-#by=-EE@`zase}j{3t^56}Ob| zPTyH&hTKZCIJBuE^og*XNYMeR7F4XuKSAnBwpxQGI7)mrjZk8Zq_xHzY9FQ*u0%Cn=ZhN)=Q)M_6YIfowON*#7opl@+h0qHDxMa^6SAY z+94#fNEAwfKrppc)uKW@K^E-OT*dLd4oG1AEzx49m-XwLW0+OizF)Gr`Yxq zCF*AvCRBov78`CEEoo#_0ggv1#p3&($Cc~?s#%L7A~Q#15b2$7kxUMdvt8q?T9q`v zc}A^)j3}if@-dhqUdS$8Tz~msvbq$a%~?gKD=G=1RXH1=yL2BW=FPX-Ko>G!!*K|G z=Tq=B_(AM5Oedic0<#-|sq#gvDzgv8Y0w?lH+SDMQZcqi)(Rre`G_j$6TqR7yW*&Z zij8`^{vK;zdfH`LVrVYcYnnZ@zd)Hegn3U zYUJZ44;kmY0apgO?ZWiIQWgQEu9*OumxHM)X^-7U0qx=;n7KF1I+2b-j0z<=N#@>G zwVF~_o~Ia-g*0?JGv7=KwWNZ7#jKE|P2b#eBIchcMNB{nUp_>PirH0k|`1~@;m5fvww(C-M5~ERLA!rDz+S2UXw^*$=RdO1ugp4vw_ZsY`{m9mLLg~ zeG(Ne1^*g&D}EIdRmi8xP>CIi4&H?c!O{X_!x!aH*j2Aeg%gN)9%(*h%@FruQ z8YJeh>%YC&NjNls?hXPGN=g;4KqOSuRcU9pSdl@UgT^3TWYV075Z_WFTqX{2AgY#yk8Zwe=N3G? z@CP6wgfj9zI0>RvWGONz>M%Cm-?@UM6qTA0V81RP|3LLi5xf^x4SUSq-8p(jxi6Kk znDYZkFlTSUBsKrSo9{bwSCC~ww(xI0r-`{JB*$cG^?%l+_YFeO9#R@)NN`*-b}O0Xa#QEK9&fAT^I3Y8Q~L}kBkRcrk5JrN?p z$_nq5cRD)LK;{ac@Qd%;x%aLmxV5$@WUP}~X%h8SCht@2>Aa-#^PI|WCudt3&#wGt zZHPZT8C{TpKa*7Wa!3p)1)v*Sut)_JfbSnx z5wtWlZHwRdp^!#_&B=%WL0v?FuFxr%D2vJ4**aF$|$4xTwFMl8Os93#5$w3-Ye6*(Z7RY=tN#q=z!fP^6 z3#obneOI8ey48MUUmOxyNYV3=XUxj;r$;m>i;6adyah5zZ`C! z1uUo^Ib`7_Kk6VBF(I;W0lPzwv1QDlAGuiBYE^s@jxVlxX##&}4uw`^B(Sm#GJmG; zBA77Ty6{Il`Cf{sP4G#xP5sD~zmcJ4UV=g>d)ZM1=R~y)*`v&MAb&l%IH|pMvsd&d zZEHWj`-r>^*2Bx*_; zTcr;=!gV!>XyuPCZ2_GclA1%rg4a5}cV4AKadiB-2#FrHfUd%6Ym|Nog_v1znJ=*mEyK$|e{rR)TK@ z4f#g=#T|b|7Y#|lNd9z+1b4Lh=0WkgZdTV?B zbd;{j1`3fc4_9BQK{?DmV`!pIU8!Yk7fFf&otu#|OKemKL_ff&s#GCW<=-*QWZ?g; zHZ24=O{hLvByrUsIV4})41dcQ0_e3$4Ga+DP)?d+lOa&g#@Als-+wU%?_&%mHC6dZ zyeC~jD8P9Mf)z^sZ}A6o*O;gBhXGvzTQhvWL}jU?Ptf;&#~70E5uz;#ux7k%gm38F zSK+JUM|gkB7_!j0p~9gYJJ43Fi=2JHy729eX8(>cWJOj-e)^SF!*4?7ugr)=@*@z} z#Vp5)D6oy_6I)e~$r?3ss3!YAxU@LG|h7wPn>DDeFw<&$TNcYBlQ}rmyEMHMJZw>uiDlf1imFA8`UhU zz+Ujz9l2)tqkmJ9A9QWqL6o*R%ikkpk)-G9!((aGD7ll|S3z5U(E0bWe@ zkAEm{E>gL<`eCty@=xyK$?DzbPX}L)CxhDV9`5|Y9qb)W-VH;4f4KAGCk*8TgF5~& z&gApq?&NT9|HnaAANF<+_J+0mv^%IBFXXS#1;g4N9q;VF8#>rS-k-zC;mM~jACLEr zKO9bWc7G?sMs@Vd&cVsM4?BDNgPI>tem(wjI62X~qnfi*?BKsUA3t{4eVqLFmz`mz zKTi%}eX?_We7N`a6m_{Y)bk6(`WKJO1P8Ztp{H-GoK0X};0ZtrAo_hjewK)G+Zw|_kO zII!)I(LOZ&d2e@bXJF%_&+m_aVc$F4IXcEP|7UXenkANba?D=HzB{b(`;U7ECp+)a z!ToX$HT!b(p~vpa$B#$v4kwfSVeJRxw#SBZ{~X>NIUiYh=*U0q{JOKhcl7!A@bkgH z27j6y?d+WVD&3gYYD{A@rg0e7c!)dCTOJ+$`1a)O&by!9etG|X=raC%^soJQuQlbo z#ku<6!_LVshkLIV^SQz91Vrpr^hoDK(xk2cTY-d&wv-H72> zZf>vvNR9=P>wxaYOwP{QKZluI-d)U4X3Fvv5W}sXW9(hlvqHDS2jlN8o#$D17KnErTob#+rm_)>hd*$gK;;N)gF)qeq} zHpA%-IK3IpbikR-aJB=^ZiaImaBef4?|}2q;eMgB)2|~u*v$=|fZpBTYT6rs5g!|` zv48WXr1F&xDb*QNySps2NPQhGK3Yz~-Pz^TnUm?kx7karPNpyRb#(S`8rz@LOXg3V zZtUroo3rWoZp4%A!o+@hZD!YerhoXBPR}k!_ox=FCy)I+f3Yw1@%-@e{p{>=UIOw9 z1Dagco&|WYoqT%%`~B=uWA9{V)|1!PwWaBO1sc(Zomoxx?R)<3e31@*D(moX%MH=x z(buc#_+@&sW%L)eZE=!oH*0#63jLgJPH)GL;>q@L6w+~@#eYjD=V!Nz>wkJZgclfY zH(9cJ^XA8cFGEc=+OC>c`UZ}%H+RMhy2y0%GDvu^SVfwj+TRWa^7jU-IH%WlgE2H3 zui9UvKXz}@@4OSk2P4&@*&4|AZ;|nle=fjRM!>pN(>2idnd33_4gxmIhHGGdKBM1< zk2E}3tRf*s;Wi_-_1<6==YQcL;4w4k;oGukwhDQBcYS?zGo|6q8y`(pvA&_7tD7-# z@L=(TG&^;8H54_PE!jX`{7C~1HJUy*=HUA_WaJMJ8tvD?++0o5qaGND6&{S%0U`-r z-ky)flybpv9qu={>gU#OX*vp4JlUKwC;m48QmRF(wSd2z)qm;N!FY1PXa%mF zr_x(cxw)_FCiVN6>Db?w=kaNN;cfuAp0|9mJh;E5waXXoUbmNO(O^By zn>Sph-`=%`SqzxaGNu$y*01C59(DAf7VS6nQLZleq4{`te{Z=7__B6@YFKRq{QYYW z;O`6mb2uvnPvrI$Cx4I&?N>n-%Ft`Bbhx$vExtSalxZ1l^{{CfbNB3q%2XpMj0TqC z$@o=xwGF&_4L*)WkB_FCu!kMSEu*fS$t?qZqUoU1w3Y3fnQg+{zdIifY1nEL;^%9+ z{PE*xOgFcC8Fg|r8aF&xZbJU~?)A6>4U0x8Gpvk8m`zOMPA<>pIr>1 zoO1+!Z?Opp8HN6DI2?5Kg55LF)6v5_-7vh<&f%S|9p2J$#*j^1J^*H{DDi22)3sV3*OJ?G)) zP>X%rncZan#ebx>*iWT$RcU-jZf>|T&%=j_9p{+ zg&H4iS7x@Uqv7YEi{1Ep%gOVjvsHWyp=W>MqwR)8`kHP#79CbY7UuT1v+MEbhRq&h zXm-|i&8p7c-@Ck>rprRi7#9frtEftEFn?b;>E%C?d^)$|h8*Q2@U#DPcIclZF zI@^sCIk>qx#kvffgkCb5NOklzf!uvam-U>Me}Bp=9nF6?uphN(^R!MYkoWsFZtV9) zD~r!7^N>6bmeTF|KGp8vWWH>+#`9iI+6#~VUR(v;HzK`mM1S$n-rZ#y7bOdZlfP;( z_cCpqx7-`?^U(bzrMJ-On!p{OAZ2)N`Q)RoWyYFMc}d=#QyLs%i#Cs3H?Kk-+~5~& z=zpRu8NJ}@Sk8Yx^+dPRo2x&&>zUmMFj40DoAdOvq4yr*xEW!h?3#Di4`6&*3(qYl z(l7k9zN7J_D?GPEN3SkvSM`!>jVDShzp=i@amCCmTTP_Cf3+TbQ~}dVMk|GK6?t48 zGs{+!$85MBd|cWy%T@rtf3+UGBhSS(rhgL|UJ8)2+mdbup3M0B)(eLXc;`Az%hzE5 z;i36sPF(Se0p;?s>o)velby9)81^YmA8*;bKJEL~%k~eC_g^)4^Tx~8&mKGt;1(-p z%YgG3xOb?bhd%z9;Yu_etoZ2j>Nq=rdN`7Q-2on&FAVWgvqtW@H-ivzrD8WPwD2jF+MqOzv|h~Zk!Cr)+=Tc$c&}i z42$?jnI_(+px;N|)RnILK zvj1jrb#JymqLwb0OcsRkD&!$V&qzo%*|1!%hu<9FB3+N%q?yfQuTK;DwhBHjlbB_z zt)_K!f6ri8sNP$wIUBkE<$l;ebgOm?+x`vztX;FOchh?H`{mGlc;9@1oZa5#i=ph* z%^Po$K7KVDO|R~T>MA>H`~0Em-F4mSVa6u=7tVfOI4WF1>v_zv5#Xh>pjQVp`qX*F rY_frv4GE$bo>DCJqWcD?w;J3F!(BhhF=x@w3^$E*>*f4^Ad79%RL