Thanks Tobi, that was exactly the type of response I was looking for.
On Tuesday, August 19, 2014 1:22:45 PM UTC-7, Tobias Knopp wrote:
>
> Hi Spencer,
>
> yes the ScalarOrArray type will work and be fast. In that case you could
> have also not specified the types at all.
> We call this "duck typing" which is a term that comes from the python
> world.
>
> I think there is no "preferred" way to do this in Julia and there are
> people that favor the one while others favor the other.
>
> From my perspective the most important aspect of specifying types is to
> "leave out" specific types. This is kind of a predicate that the right
> types are passed. This will give the user a clear error message when the
> wrong type is passed. Otherwise one will get an error at a deeper level,
> which might be less clear (or even no error but a non-expected result)
>
> On the other hand, making the type to strict will make library code less
> generic for reuse by others ("don't overtype" is a phrase you might find
> when searching the forum or the github project pages).
>
> Cheers,
>
> Tobi
>
>
>
> Am Dienstag, 19. August 2014 21:54:37 UTC+2 schrieb Spencer Lyon:
>
> I just read Tobais’ comment more closely:
>
> Specifying types is not done for performance reasons but to allow for
> dispatching on the type
>
> It seems that if that is true it shouldn’t make any performance difference
> for how I define bar
>
> I still wonder which of the foos and which of the bars is the best
> example of “idomatic” (or proper/preferred) Julia. Does anyone have any
> comments on that?
>
> On Tuesday, August 19, 2014 12:51:29 PM UTC-7, Spencer Lyon wrote:
>
> Excellent, thank you for the quick and helpful responses.
>
> One more related question.
>
> If I were to define a function that could either on an Array{T} where T
> <: Number or on T itself, is there any reason not to do this:
>
> typealias ScalarOrArray{T} Union(T, Array{T})
>
> function bar{T}(x::ScalarOrArray{T}, y::ScalarOrArray{T}) = x+y
>
> My real question is would there be performance penalties for using Union
> in this way?
>
> Would it help the compiler at all to define this as
>
> function bar{T}(x::Array{T}, y::Array{T}) = x+y
>
> function bar{T}(x::Array{T}, y::T) = x+y
>
> function bar{T}(x::T, y::Array{T}) = x+y
>
> function bar{T}(x::T, y::T) = x+y
>
> ?
>
> On Tuesday, August 19, 2014 11:45:10 AM UTC-7, Johan Sigfrids wrote:
>
> Performance wise it makes no difference. The JIT will produce the same
> code for all three:
>
> foo1(x::Real, y::Real) = x + y
>
> foo2{ T<: Real}(x::T, y::T) = x + y
>
> foo3{T <: Real, S <: Real}(x::T, y::S) = x + y
>
> You can verify it by running @code_native on all of them. They will all
> result in the same machine code for the same input types.
>
> @code_native foo1(1, 1)
>
> .text
> Filename: none
> Source line: 1
> push RBP
> mov RBP, RSP
> Source line: 1
> add RCX, RDX
> mov RAX, RCX
> pop RBP
> ret
>
>
> The one difference is that foo2 requires both x and y to be of the same
> type:
>
> foo2(1, 1.0)
>
> `foo2` has no method matching foo2(::Int64, ::Float64)
>
>
> You can mix and match Real types with foo1 and foo3.
>
> On Tuesday, August 19, 2014 9:30:42 PM UTC+3, Spencer Lyon wrote:
>
> Suppose I am defining a function that operates on any two real numbers.
> Which of the following ways of specifying types is preferred (in terms of
> idomatic Julia and performance considerations) and why?
>
> ```julia
>
> function foo1(x::Real, y::Real) = ...
>
> function foo2{ T<: Real}(x::T, y::T) = ...
>
> function foo3{T <: Real, S <: Real}(x::T, y::S) = ...
> ```
>
>
>
>
>
>
>
>
>
> <div
> title="MDH:PGRpdiBjbGFzcz0ibWFya2Rvd24taGVyZS13cmFwcGVyIiBkYXRhLW1kLXVybD0iZ3JvdXBzLmdv
>
> b2dsZS5jb20iIHN0eWxlPSIiIG1hcmtkb3duLWhlcmUtd3JhcHBlci1jb250ZW50LW1vZGlmaWVk
> PSJ0cnVlIj48cCBzdHlsZT0ibWFyZ2luOiAxLjJlbSAwcHggIWltcG9ydGFudDsiPkkganVzdCBy
> ZWFkIFRvYmFpc+KAmSBjb21tZW50IG1vcmUgY2xvc2VseTogPC9wPgo8cCBzdHlsZT0ibWFyZ2lu
> OiAxLjJlbSAwcHggIWltcG9ydGFudDsiPjwvcD48ZGl2IGNsYXNzPSJtYXJrZG93bi1oZXJlLWV4
> Y2x1ZGUiPjxwPjwvcD48YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luOiAxLjJlbSAwcHg7Ym9yZGVy
> LWxlZnQtd2lkdGg6IDRweDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1j
> b2xvcjogcmdiKDIyMSwgMjIxLCAyMjEpOyBwYWRkaW5nOiAwcHggMWVtOyBjb2xvcjogcmdiKDEx
> OSwgMTE5LCAxMTkpOyBxdW90ZXM6IG5vbmU7Ij4KPHAgc3R5bGU9Im1hcmdpbjogMS4yZW0gMHB4
> ICFpbXBvcnRhbnQ7Ij5TcGVjaWZ5aW5nIHR5cGVzIGlzIG5vdCBkb25lIGZvciBwZXJmb3JtYW5j
> ZSByZWFzb25zIGJ1dCB0byBhbGxvdyBmb3IgZGlzcGF0Y2hpbmcgb24gdGhlIHR5cGU8L3A+Cjwv
> YmxvY2txdW90ZT48cD48L3A+PC9kaXY+PHAgc3R5bGU9Im1hcmdpbjogMS4yZW0gMHB4ICFpbXBv
> cnRhbnQ7Ij48L3A+CjxwIHN0eWxlPSJtYXJnaW46IDEuMmVtIDBweCAhaW1wb3J0YW50OyI+SXQg
> c2VlbXMgdGhhdCBpZiB0aGF0IGlzIHRydWUgaXQgc2hvdWxkbuKAmXQgbWFrZSBhbnkgcGVyZm9y
> bWFuY2UgZGlmZmVyZW5jZSBmb3IgaG93IEkgZGVmaW5lIGBiYXJgPC9wPjxwIHN0eWxlPSJtYXJn
> aW46IDEuMmVtIDBweCAhaW1wb3J0YW50OyI+PGJyPkkgIHN0aWxsIHdvbmRlciB3aGljaCBvZiB0
> aGUgYGZvb2BzIGFuZCB3aGljaCBvZiB0aGUgYGJhcmBzIGlzIHRoZSBiZXN0IGV4YW1wbGUgb2Yg
> 4oCcaWRvbWF0aWPigJ0gKG9yIHByb3Blci9wcmVmZXJyZWQpIEp1bGlhLiBEb2VzIGFueW9uZSBo
> YXZlIGFueSBjb21tZW50cyBvbiB0aGF0PzwvcD4KPHAgc3R5bGU9Im1hcmdpbjogMS4yZW0gMHB4
> ICFpbXBvcnRhbnQ7Ij5PbiBUdWVzZGF5LCBBdWd1c3QgMTksIDIwMTQgMTI6NTE6MjkgUE0gVVRD
> LTcsIFNwZW5jZXIgTHlvbiB3cm90ZTogPC9wPgo8cCBzdHlsZT0ibWFyZ2luOiAxLjJlbSAwcHgg
> IWltcG9ydGFudDsiPjwvcD48ZGl2IGNsYXNzPSJtYXJrZG93bi1oZXJlLWV4Y2x1ZGUiPjxwPjwv
> cD48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46IDA7bWFyZ2lu
> LWxlZnQ6IDAuOGV4O2JvcmRlci1sZWZ0OiAxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6IDFl
> eDsiPjxkaXY+PHAgc3R5bGU9Im1hcmdpbjoxLjJlbSAwcHghaW1wb3J0YW50Ij5FeGNlbGxlbnQs
> IHRoYW5rIHlvdSBmb3IgdGhlIHF1aWNrIGFuZCBoZWxwZnVsIHJlc3BvbnNlcy4gPC9wPgo8cCBz
> dHlsZT0ibWFyZ2luOjEuMmVtIDBweCFpbXBvcnRhbnQiPk9uZSBtb3JlIHJlbGF0ZWQgcXVlc3Rp
> b24uPC9wPgo8cCBzdHlsZT0ibWFyZ2luOjEuMmVtIDBweCFpbXBvcnRhbnQiPklmIEkgd2VyZSB0
> byBkZWZpbmUgYSBmdW5jdGlvbiB0aGF0IGNvdWxkIGVpdGhlciBvbiBhbiA8Y29kZSBzdHlsZT0i
> Zm9udC1zaXplOjAuODVlbTtmb250LWZhbWlseTpDb25zb2xhcyxJbmNvbnNvbGF0YSxDb3VyaWVy
> LG1vbm9zcGFjZTttYXJnaW46MHB4IDAuMTVlbTtwYWRkaW5nOjBweCAwLjNlbTt3aGl0ZS1zcGFj
> ZTpwcmUtd3JhcDtib3JkZXI6MXB4IHNvbGlkIHJnYigyMzQsMjM0LDIzNCk7Ym9yZGVyLXRvcC1s
> ZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20t
> cmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNwbGF5Omlu
> bGluZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDgsMjQ4LDI0OCkiPkFycmF5e1R9PC9jb2RlPiB3
> aGVyZSA8Y29kZSBzdHlsZT0iZm9udC1zaXplOjAuODVlbTtmb250LWZhbWlseTpDb25zb2xhcyxJ
> bmNvbnNvbGF0YSxDb3VyaWVyLG1vbm9zcGFjZTttYXJnaW46MHB4IDAuMTVlbTtwYWRkaW5nOjBw
> eCAwLjNlbTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtib3JkZXI6MXB4IHNvbGlkIHJnYigyMzQsMjM0
> LDIzNCk7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6
> M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFk
> aXVzOjNweDtkaXNwbGF5OmlubGluZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDgsMjQ4LDI0OCki
> PlQgJmx0OzogTnVtYmVyPC9jb2RlPiBvciBvbiA8Y29kZSBzdHlsZT0iZm9udC1zaXplOjAuODVl
> bTtmb250LWZhbWlseTpDb25zb2xhcyxJbmNvbnNvbGF0YSxDb3VyaWVyLG1vbm9zcGFjZTttYXJn
> aW46MHB4IDAuMTVlbTtwYWRkaW5nOjBweCAwLjNlbTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtib3Jk
> ZXI6MXB4IHNvbGlkIHJnYigyMzQsMjM0LDIzNCk7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7
> Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNw
> eDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNwbGF5OmlubGluZTtiYWNrZ3JvdW5k
> LWNvbG9yOnJnYigyNDgsMjQ4LDI0OCkiPlQ8L2NvZGU+IGl0c2VsZiwgaXMgdGhlcmUgYW55IHJl
> YXNvbiBub3QgdG8gZG8gdGhpczo8L3A+CjxwcmUgc3R5bGU9ImZvbnQtc2l6ZTowLjg1ZW07Zm9u
> dC1mYW1pbHk6Q29uc29sYXMsSW5jb25zb2xhdGEsQ291cmllcixtb25vc3BhY2U7Zm9udC1zaXpl
> OjFlbTtsaW5lLWhlaWdodDoxLjJlbTttYXJnaW46MS4yZW0gMHB4Ij48Y29kZSBzdHlsZT0iZm9u
> dC1zaXplOjAuODVlbTtmb250LWZhbWlseTpDb25zb2xhcyxJbmNvbnNvbGF0YSxDb3VyaWVyLG1v
> bm9zcGFjZTttYXJnaW46MHB4IDAuMTVlbTtwYWRkaW5nOjBweCAwLjNlbTt3aGl0ZS1zcGFjZTpw
> cmUtd3JhcDtib3JkZXI6MXB4IHNvbGlkIHJnYigyMzQsMjM0LDIzNCk7Ym9yZGVyLXRvcC1sZWZ0
> LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tcmln
> aHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNwbGF5OmlubGlu
> ZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDgsMjQ4LDI0OCk7d2hpdGUtc3BhY2U6cHJlO292ZXJm
> bG93OmF1dG87Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRp
> dXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQt
> cmFkaXVzOjNweDtib3JkZXI6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZzowLjVl
> bSAwLjdlbTtkaXNwbGF5OmJsb2NrO2NvbG9yOnJnYig3Nyw3Nyw3Nik7cGFkZGluZzowLjVlbTti
> YWNrZ3JvdW5kOndoaXRlIj50eXBlYWxpYXMgU2NhbGFyT3JBcnJheXtUfSBVbmlvbihULCBBcnJh
> eXtUfSkKCmZ1bmN0aW9uIGJhcntUfSh4OjpTY2FsYXJPckFycmF5e1R9LCB5OjpTY2FsYXJPckFy
> cmF5e1R9KSA9IHgreQo8L2NvZGU+PC9wcmU+CjxwIHN0eWxlPSJtYXJnaW46MS4yZW0gMHB4IWlt
> cG9ydGFudCI+TXkgcmVhbCBxdWVzdGlvbiBpcyB3b3VsZCB0aGVyZSBiZSBwZXJmb3JtYW5jZSBw
> ZW5hbHRpZXMgZm9yIHVzaW5nIDxjb2RlIHN0eWxlPSJmb250LXNpemU6MC44NWVtO2ZvbnQtZmFt
> aWx5OkNvbnNvbGFzLEluY29uc29sYXRhLENvdXJpZXIsbW9ub3NwYWNlO21hcmdpbjowcHggMC4x
> NWVtO3BhZGRpbmc6MHB4IDAuM2VtO3doaXRlLXNwYWNlOnByZS13cmFwO2JvcmRlcjoxcHggc29s
> aWQgcmdiKDIzNCwyMzQsMjM0KTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItdG9w
> LXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1i
> b3R0b20tbGVmdC1yYWRpdXM6M3B4O2Rpc3BsYXk6aW5saW5lO2JhY2tncm91bmQtY29sb3I6cmdi
> KDI0OCwyNDgsMjQ4KSI+VW5pb248L2NvZGU+IGluIHRoaXMgd2F5PzwvcD4KPHAgc3R5bGU9Im1h
> cmdpbjoxLjJlbSAwcHghaW1wb3J0YW50Ij5Xb3VsZCBpdCBoZWxwIHRoZSBjb21waWxlciBhdCBh
> bGwgdG8gZGVmaW5lIHRoaXMgYXM8L3A+CjxwcmUgc3R5bGU9ImZvbnQtc2l6ZTowLjg1ZW07Zm9u
> dC1mYW1pbHk6Q29uc29sYXMsSW5jb25zb2xhdGEsQ291cmllcixtb25vc3BhY2U7Zm9udC1zaXpl
> OjFlbTtsaW5lLWhlaWdodDoxLjJlbTttYXJnaW46MS4yZW0gMHB4Ij48Y29kZSBzdHlsZT0iZm9u
> dC1zaXplOjAuODVlbTtmb250LWZhbWlseTpDb25zb2xhcyxJbmNvbnNvbGF0YSxDb3VyaWVyLG1v
> bm9zcGFjZTttYXJnaW46MHB4IDAuMTVlbTtwYWRkaW5nOjBweCAwLjNlbTt3aGl0ZS1zcGFjZTpw
> cmUtd3JhcDtib3JkZXI6MXB4IHNvbGlkIHJnYigyMzQsMjM0LDIzNCk7Ym9yZGVyLXRvcC1sZWZ0
> LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tcmln
> aHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNwbGF5OmlubGlu
> ZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDgsMjQ4LDI0OCk7d2hpdGUtc3BhY2U6cHJlO292ZXJm
> bG93OmF1dG87Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRp
> dXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQt
> cmFkaXVzOjNweDtib3JkZXI6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZzowLjVl
> bSAwLjdlbTtkaXNwbGF5OmJsb2NrO2NvbG9yOnJnYig3Nyw3Nyw3Nik7cGFkZGluZzowLjVlbTti
> YWNrZ3JvdW5kOndoaXRlIj5mdW5jdGlvbiBiYXJ7VH0oeDo6QXJyYXl7VH0sIHk6OkFycmF5e1R9
> KSA9IHgreQoKZnVuY3Rpb24gYmFye1R9KHg6OkFycmF5e1R9LCB5OjpUKSA9IHgreQoKZnVuY3Rp
> b24gYmFye1R9KHg6OlQsIHk6OkFycmF5e1R9KSA9IHgreQoKZnVuY3Rpb24gYmFye1R9KHg6OlQs
> IHk6OlQpID0geCt5CjwvY29kZT48L3ByZT4KPHAgc3R5bGU9Im1hcmdpbjoxLjJlbSAwcHghaW1w
> b3J0YW50Ij4/PC9wPgo8cCBzdHlsZT0ibWFyZ2luOjEuMmVtIDBweCFpbXBvcnRhbnQiPk9uIFR1
> ZXNkYXksIEF1Z3VzdCAxOSwgMjAxNCAxMTo0NToxMCBBTSBVVEMtNywgSm9oYW4gU2lnZnJpZHMg
> d3JvdGU6PC9wPgo8cCBzdHlsZT0ibWFyZ2luOjEuMmVtIDBweCFpbXBvcnRhbnQiPjwvcD48ZGl2
> PjxwPjwvcD48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MDtt
> YXJnaW4tbGVmdDowLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6
> MWV4Ij5QZXJmb3JtYW5jZSB3aXNlIGl0IG1ha2VzIG5vIGRpZmZlcmVuY2UuIFRoZSBKSVQgd2ls
> bCBwcm9kdWNlIHRoZSBzYW1lIGNvZGUgZm9yIGFsbCB0aHJlZTo8YnI+PGJyPjxkaXY+PHByZT48
> c3Bhbj5mb28xPC9zcGFuPig8c3Bhbj54PC9zcGFuPjxzcGFuPjo6PC9zcGFuPjxzcGFuPlJlYWw8
> L3NwYW4+LCA8c3Bhbj55PC9zcGFuPjxzcGFuPjo6PC9zcGFuPjxzcGFuPlJlYWw8L3NwYW4+KSA8
> c3Bhbj49PC9zcGFuPiA8c3Bhbj54PC9zcGFuPiA8c3Bhbj4rPC9zcGFuPiA8c3Bhbj55PC9zcGFu
> PjwvcHJlPjxwcmU+PHNwYW4+Zm9vMjwvc3Bhbj57IDxzcGFuPlQ8L3NwYW4+PHNwYW4+Jmx0Ozo8
> L3NwYW4+IDxzcGFuPlJlYWw8L3NwYW4+fSg8c3Bhbj54PC9zcGFuPjxzcGFuPjo6PC9zcGFuPjxz
> cGFuPlQ8L3NwYW4+LCA8c3Bhbj55PC9zcGFuPjxzcGFuPjo6PC9zcGFuPjxzcGFuPlQ8L3NwYW4+
> KSA8c3Bhbj49PC9zcGFuPiA8c3Bhbj54PC9zcGFuPiA8c3Bhbj4rPC9zcGFuPiA8c3Bhbj55PC9z
> cGFuPjwvcHJlPjxwcmU+PHNwYW4+Zm9vMzwvc3Bhbj57PHNwYW4+VDwvc3Bhbj4gPHNwYW4+Jmx0
> Ozo8L3NwYW4+IDxzcGFuPlJlYWw8L3NwYW4+LCA8c3Bhbj5TPC9zcGFuPiA8c3Bhbj4mbHQ7Ojwv
> c3Bhbj4gPHNwYW4+UmVhbDwvc3Bhbj59KDxzcGFuPng8L3NwYW4+PHNwYW4+Ojo8L3NwYW4+PHNw
> YW4+VDwvc3Bhbj4sIDxzcGFuPnk8L3NwYW4+PHNwYW4+Ojo8L3NwYW4+PHNwYW4+Uzwvc3Bhbj4p
> IDxzcGFuPj08L3NwYW4+IDxzcGFuPng8L3NwYW4+IDxzcGFuPis8L3NwYW4+IDxzcGFuPnk8L3Nw
> YW4+PC9wcmU+PC9kaXY+PGRpdj48ZGl2PjxwcmU+PC9wcmU+PC9kaXY+PC9kaXY+WW91IGNhbiB2
> ZXJpZnkgaXQgYnkgcnVubmluZyA8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Y291cmllciBuZXcs
> bW9ub3NwYWNlIj5AY29kZV9uYXRpdmUgPC9zcGFuPm9uIGFsbCBvZiB0aGVtLiBUaGV5IHdpbGwg
> YWxsIHJlc3VsdCBpbiB0aGUgc2FtZSBtYWNoaW5lIGNvZGUgZm9yIHRoZSBzYW1lIGlucHV0IHR5
> cGVzLjxicj48YnI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OmNvdXJpZXIgbmV3LG1vbm9zcGFj
> ZSI+QGNvZGVfbmF0aXZlIGZvbzEoMSwgMSk8L3NwYW4+PGJyPjxicj48cHJlPgkudGV4dApGaWxl
> bmFtZTogbm9uZQpTb3VyY2UgbGluZTogMQoJcHVzaAlSQlAKCW1vdglSQlAsIFJTUApTb3VyY2Ug
> bGluZTogMQoJYWRkCVJDWCwgUkRYCgltb3YJUkFYLCBSQ1gKCXBvcAlSQlAKCXJldDwvcHJlPjxi
> cj5UaGUgb25lIGRpZmZlcmVuY2UgaXMgdGhhdCA8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Y291
> cmllciBuZXcsbW9ub3NwYWNlIj5mb28yIDwvc3Bhbj5yZXF1aXJlcyBib3RoIHggYW5kIHkgdG8g
> YmUgb2YgdGhlIHNhbWUgdHlwZTo8YnI+PGJyPjxkaXY+PHByZT48c3Bhbj5mb28yPC9zcGFuPig8
> c3Bhbj4xPC9zcGFuPiwgPHNwYW4+MS4wPC9zcGFuPik8L3ByZT48L2Rpdj48ZGl2PjxkaXY+PGRp
> dj48cHJlPmBmb28yYCBoYXMgbm8gbWV0aG9kIG1hdGNoaW5nIGZvbzIoOjpJbnQ2NCwgOjpGbG9h
> dDY0KQoKPC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+WW91IGNhbiBtaXggYW5kIG1hdGNoIFJlYWwg
> dHlwZXMgd2l0aCA8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Y291cmllciBuZXcsbW9ub3NwYWNl
> Ij5mb28xIDwvc3Bhbj5hbmQgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OmNvdXJpZXIgbmV3LG1v
> bm9zcGFjZSI+Zm9vMzwvc3Bhbj4uPGJyPjxicj5PbiBUdWVzZGF5LCBBdWd1c3QgMTksIDIwMTQg
> OTozMDo0MiBQTSBVVEMrMywgU3BlbmNlciBMeW9uIHdyb3RlOjxibG9ja3F1b3RlIGNsYXNzPSJn
> bWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowO21hcmdpbi1sZWZ0OjAuOGV4O2JvcmRlci1sZWZ0
> OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPlN1cHBvc2Ug
> SSBhbSBkZWZpbmluZyBhIGZ1bmN0aW9uIHRoYXQgb3BlcmF0ZXMgb24gYW55IHR3byByZWFsIG51
> bWJlcnMuIFdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgd2F5cyBvZiBzcGVjaWZ5aW5nIHR5cGVzIGlz
> IHByZWZlcnJlZCAoaW4gdGVybXMgb2YgaWRvbWF0aWMgSnVsaWEgYW5kIHBlcmZvcm1hbmNlIGNv
> bnNpZGVyYXRpb25zKSBhbmQgd2h5PzxkaXY+PGJyPjwvZGl2PjxkaXY+YGBganVsaWE8L2Rpdj48
> ZGl2Pjxicj48L2Rpdj48ZGl2PmZ1bmN0aW9uIGZvbzEoeDo6UmVhbCwgeTo6UmVhbCkgPSAuLi48
> L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PmZ1bmN0aW9uIGZvbzJ7IFQmbHQ7OiBSZWFsfSh4OjpU
> LCB5OjpUKSA9IC4uLjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PmZ1bmN0aW9uIGZvbzN7
> VCAmbHQ7OiBSZWFsLCBTICZsdDs6IFJlYWx9KHg6OlQsIHk6OlMpID0gLi4uPGJyPjwvZGl2Pjxk
> aXY+YGBgPC9kaXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90
> ZT48cD48L3A+PC9kaXY+PHAgc3R5bGU9Im1hcmdpbjoxLjJlbSAwcHghaW1wb3J0YW50Ij48L3A+
> CjxkaXYgdGl0bGU9Ik1ESDpSWGhqWld4c1pXNTBMQ0IwYUdGdWF5QjViM1VnWm05eUlIUm9aU0J4
> ZFdsamF5QmhibVFnYUdWc2NHWjFiQ0J5WlhOd2IyNXpaWE11CndxQThaR2wyUGp4aWNqNDhMMlJw
> ZGo0OFpHbDJQazl1WlNCdGIzSmxJSEpsYkdGMFpXUWdjWFZsYzNScGIyNHVQQzlrYVhZK1BHUnAK
> ZGo0OFluSStQQzlrYVhZK1BHUnBkajVKWmlCSklIZGxjbVVnZEc4Z1pHVm1hVzVsSUdFZ1puVnVZ
> M1JwYjI0Z2RHaGhkQ0JqYjNWcwpaQ0JsYVhSb1pYSWdiMjRnWVc0Z1lFRnljbUY1ZTFSOVlDQjNh
> R1Z5WlNCZ1ZDQW1iSFE3T2lCT2RXMWlaWEpnSUc5eUlHOXVJR0JVCllDQnBkSE5sYkdZc0lHbHpJ
> SFJvWlhKbElHRnVlU0J5WldGemIyNGdibTkwSUhSdklHUnZJSFJvYVhNNlBDOWthWFkrUEdScGRq
> NDgKWW5JK1BDOWthWFkrUEdScGRqNWdZR0JxZFd4cFlUd3ZaR2wyUGp4a2FYWStkSGx3WldGc2FX
> RnpJRk5qWVd4aGNrOXlRWEp5WVhsNwpWSDBnVlc1cGIyNG9WQ3dnUVhKeVlYbDdWSDBwUEM5a2FY
> WStQR1JwZGo0OFluSStQQzlrYVhZK1BHUnBkajVtZFc1amRHbHZiaUJpCllYSjdWSDBvZURvNlUy
> TmhiR0Z5VDNKQmNuSmhlWHRVZlN3Z2VUbzZVMk5oYkdGeVQzSkJjbkpoZVh0VWZTa2dQU0I0SzNr
> OEwyUnAKZGo0OFpHbDJQbUJnWUR3dlpHbDJQanhrYVhZK1BHSnlQand2WkdsMlBqeGthWFkrVFhr
> Z2NtVmhiQ0J4ZFdWemRHbHZiaUJwY3lCMwpiM1ZzWkNCMGFHVnlaU0JpWlNCd1pYSm1iM0p0WVc1
> alpTQndaVzVoYkhScFpYTWdabTl5SUhWemFXNW5JR0JWYm1sdmJtQWdhVzRnCmRHaHBjeUIzWVhr
> L1BDOWthWFkrUEdScGRqNDhZbkkrUEM5a2FYWStQR1JwZGo1WGIzVnNaQ0JwZENCb1pXeHdJSFJv
> WlNCamIyMXcKYVd4bGNpQmhkQ0JoYkd3Z2RHOGdaR1ZtYVc1bElIUm9hWE1nWVhNOEwyUnBkajQ4
> WkdsMlBqeGljajQ4TDJScGRqNDhaR2wyUG1CZwpZR3AxYkdsaFBDOWthWFkrUEdScGRqNW1kVzVq
> ZEdsdmJpQmlZWEo3Vkgwb2VEbzZRWEp5WVhsN1ZIMHNJSGs2T2tGeWNtRjVlMVI5CktTQTlJSGdy
> ZVR4aWNqNDhMMlJwZGo0OFpHbDJQbVoxYm1OMGFXOXVJR0poY250VWZTaDRPanBCY25KaGVYdFVm
> U3dnZVRvNlZDa2cKUFNCNEszazhZbkkrUEM5a2FYWStQR1JwZGo1bWRXNWpkR2x2YmlCaVlYSjdW
> SDBvZURvNlZDd2dlVG82UVhKeVlYbDdWSDBwSUQwZwplQ3Q1UEdKeVBqd3ZaR2wyUGp4a2FYWSta
> blZ1WTNScGIyNGdZbUZ5ZTFSOUtIZzZPbFFzSUhrNk9sUXBJRDBnZUN0NVBHSnlQand2ClpHbDJQ
> anhrYVhZK1lHQmdQQzlrYVhZK1BHUnBkajQ4WW5JK1BDOWthWFkrUEdScGRqNC9QQzlrYVhZK1BH
> UnBkajQ4WW5JK1QyNGcKVkhWbGMyUmhlU3dnUVhWbmRYTjBJREU1TENBeU1ERTBJREV4T2pRMU9q
> RXdJRUZOSUZWVVF5MDNMQ0JLYjJoaGJpQlRhV2RtY21sawpjeUIzY205MFpUbzhZbXh2WTJ0eGRX
> OTBaU0JqYkdGemN6MGlaMjFoYVd4ZmNYVnZkR1VpSUhOMGVXeGxQU0p0WVhKbmFXNDZJREE3CmJX
> RnlaMmx1TFd4bFpuUTZJREF1T0dWNE8ySnZjbVJsY2kxc1pXWjBPaUF4Y0hnZ0kyTmpZeUJ6YjJ4
> cFpEdHdZV1JrYVc1bkxXeGwKWm5RNklERmxlRHNpUGxCbGNtWnZjbTFoYm1ObElIZHBjMlVnYVhR
> Z2JXRnJaWE1nYm04Z1pHbG1abVZ5Wlc1alpTNGdWR2hsSUVwSgpWQ0IzYVd4c0lIQnliMlIxWTJV
> Z2RHaGxJSE5oYldVZ1kyOWtaU0JtYjNJZ1lXeHNJSFJvY21WbE9qeGljajQ4WW5JK1BHUnBkajQ4
> CmNISmxQanh6Y0dGdVBtWnZiekU4TDNOd1lXNCtLRHh6Y0dGdVBuZzhMM053WVc0K1BITndZVzQr
> T2pvOEwzTndZVzQrUEhOd1lXNCsKVW1WaGJEd3ZjM0JoYmo0c0lEeHpjR0Z1UG5rOEwzTndZVzQr
> UEhOd1lXNCtPam84TDNOd1lXNCtQSE53WVc0K1VtVmhiRHd2YzNCaApiajRwSUR4emNHRnVQajA4
> TDNOd1lXNCtJRHh6Y0dGdVBuZzhMM053WVc0K0lEeHpjR0Z1UGlzOEwzTndZVzQrSUR4emNHRnVQ
> bms4CkwzTndZVzQrUEM5d2NtVStQSEJ5WlQ0OGMzQmhiajVtYjI4eVBDOXpjR0Z1UG5zZ1BITndZ
> VzQrVkR3dmMzQmhiajQ4YzNCaGJqNG0KYkhRN09qd3ZjM0JoYmo0Z1BITndZVzQrVW1WaGJEd3Zj
> M0JoYmo1OUtEeHpjR0Z1UG5nOEwzTndZVzQrUEhOd1lXNCtPam84TDNOdwpZVzQrUEhOd1lXNCtW
> RHd2YzNCaGJqNHNJRHh6Y0dGdVBuazhMM053WVc0K1BITndZVzQrT2pvOEwzTndZVzQrUEhOd1lX
> NCtWRHd2CmMzQmhiajRwSUR4emNHRnVQajA4TDNOd1lXNCtJRHh6Y0dGdVBuZzhMM053WVc0K0lE
> eHpjR0Z1UGlzOEwzTndZVzQrSUR4emNHRnUKUG5rOEwzTndZVzQrUEM5d2NtVStQSEJ5WlQ0OGMz
> QmhiajVtYjI4elBDOXpjR0Z1UG5zOGMzQmhiajVVUEM5emNHRnVQaUE4YzNCaApiajRtYkhRN09q
> d3ZjM0JoYmo0Z1BITndZVzQrVW1WaGJEd3ZjM0JoYmo0c0lEeHpjR0Z1UGxNOEwzTndZVzQrSUR4
> emNHRnVQaVpzCmREczZQQzl6Y0dGdVBpQThjM0JoYmo1U1pXRnNQQzl6Y0dGdVBuMG9QSE53WVc0
> K2VEd3ZjM0JoYmo0OGMzQmhiajQ2T2p3dmMzQmgKYmo0OGMzQmhiajVVUEM5emNHRnVQaXdnUEhO
> d1lXNCtlVHd2YzNCaGJqNDhjM0JoYmo0Nk9qd3ZjM0JoYmo0OGMzQmhiajVUUEM5egpjR0Z1UGlr
> Z1BITndZVzQrUFR3dmMzQmhiajRnUEhOd1lXNCtlRHd2YzNCaGJqNGdQSE53WVc0K0t6d3ZjM0Jo
> Ymo0Z1BITndZVzQrCmVUd3ZjM0JoYmo0OEwzQnlaVDQ4TDJScGRqNDhaR2wyUGp4a2FYWStQSEJ5
> WlQ0OEwzQnlaVDQ4TDJScGRqNDhMMlJwZGo1WmIzVWcKWTJGdUlIWmxjbWxtZVNCcGRDQmllU0J5
> ZFc1dWFXNW5JRHh6Y0dGdUlITjBlV3hsUFNKbWIyNTBMV1poYldsc2VUcGpiM1Z5YVdWeQpJRzVs
> ZHl4dGIyNXZjM0JoWTJVaVBrQmpiMlJsWDI1aGRHbDJaU0E4TDNOd1lXNCtiMjRnWVd4c0lHOW1J
> SFJvWlcwdUlGUm9aWGtnCmQybHNiQ0JoYkd3Z2NtVnpkV3gwSUdsdUlIUm9aU0J6WVcxbElHMWhZ
> MmhwYm1VZ1kyOWtaU0JtYjNJZ2RHaGxJSE5oYldVZ2FXNXcKZFhRZ2RIbHdaWE11UEdKeVBqeGlj
> ajQ4YzNCaGJpQnpkSGxzWlQwaVptOXVkQzFtWVcxcGJIazZZMjkxY21sbGNpQnVaWGNzYlc5dQpi
> M053WVdObElqNUFZMjlrWlY5dVlYUnBkbVVnWm05dk1TZ3hMQ0F4S1R3dmMzQmhiajQ4WW5JK1BH
> SnlQanh3Y21VK0NTNTBaWGgwCkNrWnBiR1Z1WVcxbE9pQnViMjVsQ2xOdmRYSmpaU0JzYVc1bE9p
> QXhDZ2x3ZFhOb0NWSkNVQW9KYlc5MkNWSkNVQ3dnVWxOUUNsTnYKZFhKalpTQnNhVzVsT2lBeENn
> bGhaR1FKVWtOWUxDQlNSRmdLQ1cxdmRnbFNRVmdzSUZKRFdBb0pjRzl3Q1ZKQ1VBb0pjbVYwUEM5
> dwpjbVUrUEdKeVBsUm9aU0J2Ym1VZ1pHbG1abVZ5Wlc1alpTQnBjeUIwYUdGMElEeHpjR0Z1SUhO
> MGVXeGxQU0ptYjI1MExXWmhiV2xzCmVUcGpiM1Z5YVdWeUlHNWxkeXh0YjI1dmMzQmhZMlVpUG1a
> dmJ6SWdQQzl6Y0dGdVBuSmxjWFZwY21WeklHSnZkR2dnZUNCaGJtUWcKZVNCMGJ5QmlaU0J2WmlC
> MGFHVWdjMkZ0WlNCMGVYQmxPanhpY2o0OFluSStQR1JwZGo0OGNISmxQanh6Y0dGdVBtWnZiekk4
> TDNOdwpZVzQrS0R4emNHRnVQakU4TDNOd1lXNCtMQ0E4YzNCaGJqNHhMakE4TDNOd1lXNCtLVHd2
> Y0hKbFBqd3ZaR2wyUGp4a2FYWStQR1JwCmRqNDhaR2wyUGp4d2NtVStZR1p2YnpKZ0lHaGhjeUJ1
> YnlCdFpYUm9iMlFnYldGMFkyaHBibWNnWm05dk1pZzZPa2x1ZERZMExDQTYKT2tac2IyRjBOalFw
> Q2dvOEwzQnlaVDQ4TDJScGRqNDhMMlJwZGo0OEwyUnBkajVaYjNVZ1kyRnVJRzFwZUNCaGJtUWdi
> V0YwWTJnZwpVbVZoYkNCMGVYQmxjeUIzYVhSb0lEeHpjR0Z1SUhOMGVXeGxQU0ptYjI1MExXWmhi
> V2xzZVRwamIzVnlhV1Z5SUc1bGR5eHRiMjV2CmMzQmhZMlVpUG1admJ6RWdQQzl6Y0dGdVBtRnVa
> Q0E4YzNCaGJpQnpkSGxzWlQwaVptOXVkQzFtWVcxcGJIazZZMjkxY21sbGNpQnUKWlhjc2JXOXVi
> M053WVdObElqNW1iMjh6UEM5emNHRnVQaTQ4WW5JK1BHSnlQazl1SUZSMVpYTmtZWGtzSUVGMVoz
> VnpkQ0F4T1N3ZwpNakF4TkNBNU9qTXdPalF5SUZCTklGVlVReXN6TENCVGNHVnVZMlZ5SUV4NWIy
> NGdkM0p2ZEdVNlBHSnNiMk5yY1hWdmRHVWdZMnhoCmMzTTlJbWR0WVdsc1gzRjFiM1JsSWlCemRI
> bHNaVDBpYldGeVoybHVPakE3YldGeVoybHVMV3hsWm5RNk1DNDRaWGc3WW05eVpHVnkKTFd4bFpu
> UTZNWEI0SUNOalkyTWdjMjlzYVdRN2NHRmtaR2x1Wnkxc1pXWjBPakZsZUNJK1BHUnBkaUJrYVhJ
> OUlteDBjaUkrVTNWdwpjRzl6WlNCSklHRnRJR1JsWm1sdWFXNW5JR0VnWm5WdVkzUnBiMjRnZEdo
> aGRDQnZjR1Z5WVhSbGN5QnZiaUJoYm5rZ2RIZHZJSEpsCllXd2diblZ0WW1WeWN5NGdWMmhwWTJn
> Z2IyWWdkR2hsSUdadmJHeHZkMmx1WnlCM1lYbHpJRzltSUhOd1pXTnBabmxwYm1jZ2RIbHcKWlhN
> Z2FYTWdjSEpsWm1WeWNtVmtJQ2hwYmlCMFpYSnRjeUJ2WmlCcFpHOXRZWFJwWXlCS2RXeHBZU0Jo
> Ym1RZ2NHVnlabTl5YldGdQpZMlVnWTI5dWMybGtaWEpoZEdsdmJuTXBJR0Z1WkNCM2FIay9QR1Jw
> ZGo0OFluSStQQzlrYVhZK1BHUnBkajVnWUdCcWRXeHBZVHd2ClpHbDJQanhrYVhZK1BHSnlQand2
> WkdsMlBqeGthWFkrWm5WdVkzUnBiMjRnWm05dk1TaDRPanBTWldGc0xDQjVPanBTWldGc0tTQTkK
> SUM0dUxqd3ZaR2wyUGp4a2FYWStQR0p5UGp3dlpHbDJQanhrYVhZK1puVnVZM1JwYjI0Z1ptOXZN
> bnNnVkNac2REczZJRkpsWVd4OQpLSGc2T2xRc0lIazZPbFFwSUQwZ0xpNHVQR0p5UGp3dlpHbDJQ
> anhrYVhZK1BHSnlQand2WkdsMlBqeGthWFkrWm5WdVkzUnBiMjRnClptOXZNM3RVSUNac2REczZJ
> RkpsWVd3c0lGTWdKbXgwT3pvZ1VtVmhiSDBvZURvNlZDd2dlVG82VXlrZ1BTQXVMaTQ4WW5JK1BD
> OWsKYVhZK1BHUnBkajVnWUdBOEwyUnBkajQ4WkdsMlBqeGljajQ4TDJScGRqNDhMMlJwZGo0OEwy
> SnNiMk5yY1hWdmRHVStQQzlpYkc5agphM0YxYjNSbFBqd3ZaR2wyUGc9PSIgc3R5bGU9Im1pbi1o
> ZWlnaHQ6MDtmb250LXNpemU6MGVtO3BhZGRpbmc6MDttYXJnaW46MCI+4oCLPC9kaXY+PC9kaXY+
> PC9ibG9ja3F1b3RlPjxwPjwvcD48L2Rpdj48cCBzdHlsZT0ibWFyZ2luOiAxLjJlbSAwcHggIWlt
> cG9ydGFudDsiPjwvcD4KPHAgc3R5bGU9Im1hcmdpbjogMS4yZW0gMHB4ICFpbXBvcnRhbnQ7Ij7i
> gIs8YnI+4oCLPC9wPgo8cCBzdHlsZT0ibWFyZ2luOiAxLjJlbSAwcHggIWltcG9ydGFudDsiPuKA
> izwvcD4KPGRpdiB0aXRsZT0iTURIOlBHUnBkaUJqYkdGemN6MGliV0Z5YTJSdmQyNHRhR1Z5WlMx
> M2NtRndjR1Z5SWlCa1lYUmhMVzFrTFhWeWJEMGlaM0p2ZFhCekxtZHYKYjJkc1pTNWpiMjBpSUhO
> MGVXeGxQU0lpSUcxaGNtdGtiM2R1TFdobGNtVXRkM0poY0hCbGNpMWpiMjUwWlc1MExXMXZaR2xt
> YVdWawpQU0owY25WbElqNDhjQ0J6ZEhsc1pUMGliV0Z5WjJsdU9pQXhMakpsYlNBd2NIZ2dJV2x0
> Y0c5eWRHRnVkRHNpUGtrZ2FuVnpkQ0J5ClpXRmtJRlJ2WW1GcGMrS0FtU0JqYjIxdFpXNTBJRzF2
> Y21VZ1kyeHZjMlZzZVRvZ1BDOXdQZ284Y0NCemRIbHNaVDBpYldGeVoybHUKT2lBeExqSmxiU0F3
> Y0hnZ0lXbHRjRzl5ZEdGdWREc2lQand2Y0Q0OFpHbDJJR05zWVhOelBTSnRZWEpyWkc5M2JpMW9a
> WEpsTFdWNApZMngxWkdVaVBqeHdQand2Y0Q0OFlteHZZMnR4ZFc5MFpTQnpkSGxzWlQwaWJXRnla
> Mmx1T2lBeExqSmxiU0F3Y0hnN1ltOXlaR1Z5CkxXeGxablF0ZDJsa2RHZzZJRFJ3ZURzZ1ltOXla
> R1Z5TFd4bFpuUXRjM1I1YkdVNklITnZiR2xrT3lCaWIzSmtaWEl0YkdWbWRDMWoKYjJ4dmNqb2dj
> bWRpS0RJeU1Td2dNakl4TENBeU1qRXBPeUJ3WVdSa2FXNW5PaUF3Y0hnZ01XVnRPeUJqYjJ4dmNq
> b2djbWRpS0RFeApPU3dnTVRFNUxDQXhNVGtwT3lCeGRXOTBaWE02SUc1dmJtVTdJajRLUEhBZ2Mz
> UjViR1U5SW0xaGNtZHBiam9nTVM0eVpXMGdNSEI0CklDRnBiWEJ2Y25SaGJuUTdJajVUY0dWamFX
> WjVhVzVuSUhSNWNHVnpJR2x6SUc1dmRDQmtiMjVsSUdadmNpQndaWEptYjNKdFlXNWoKWlNCeVpX
> RnpiMjV6SUdKMWRDQjBieUJoYkd4dmR5Qm1iM0lnWkdsemNHRjBZMmhwYm1jZ2IyNGdkR2hsSUhS
> NWNHVThMM0ErQ2p3dgpZbXh2WTJ0eGRXOTBaVDQ4Y0Q0OEwzQStQQzlrYVhZK1BIQWdjM1I1YkdV
> OUltMWhjbWRwYmpvZ01TNHlaVzBnTUhCNElDRnBiWEJ2CmNuUmhiblE3SWo0OEwzQStDanh3SUhO
> MGVXeGxQU0p0WVhKbmFXNDZJREV1TW1WdElEQndlQ0FoYVcxd2IzSjBZVzUwT3lJK1NYUWcKYzJW
> bGJYTWdkR2hoZENCcFppQjBhR0YwSUdseklIUnlkV1VnYVhRZ2MyaHZkV3hrYnVLQW1YUWdiV0Zy
> WlNCaGJua2djR1Z5Wm05eQpiV0Z1WTJVZ1pHbG1abVZ5Wlc1alpTQm1iM0lnYUc5M0lFa2daR1Zt
> YVc1bElEeGpiMlJsSUhOMGVXeGxQU0ptYjI1MExYTnBlbVU2CklEQXVPRFZsYlRzZ1ptOXVkQzFt
> WVcxcGJIazZJRU52Ym5OdmJHRnpMQ0JKYm1OdmJuTnZiR0YwWVN3Z1EyOTFjbWxsY2l3Z2JXOXUK
> YjNOd1lXTmxPMjFoY21kcGJqb2dNSEI0SURBdU1UVmxiVHNnY0dGa1pHbHVaem9nTUhCNElEQXVN
> MlZ0T3lCM2FHbDBaUzF6Y0dGagpaVG9nY0hKbExYZHlZWEE3SUdKdmNtUmxjam9nTVhCNElITnZi
> R2xrSUhKbllpZ3lNelFzSURJek5Dd2dNak0wS1RzZ1ltOXlaR1Z5CkxYUnZjQzFzWldaMExYSmha
> R2wxY3pvZ00zQjRPeUJpYjNKa1pYSXRkRzl3TFhKcFoyaDBMWEpoWkdsMWN6b2dNM0I0T3lCaWIz
> SmsKWlhJdFltOTBkRzl0TFhKcFoyaDBMWEpoWkdsMWN6b2dNM0I0T3lCaWIzSmtaWEl0WW05MGRH
> OXRMV3hsWm5RdGNtRmthWFZ6T2lBegpjSGc3SUdScGMzQnNZWGs2SUdsdWJHbHVaVHNnWW1GamEy
> ZHliM1Z1WkMxamIyeHZjam9nY21kaUtESTBPQ3dnTWpRNExDQXlORGdwCk95SStZbUZ5UEM5amIy
> UmxQanhpY2o1SklDWnVZbk53TzNOMGFXeHNJSGR2Ym1SbGNpQjNhR2xqYUNCdlppQjBhR1VnWm05
> dmN5QmgKYm1RZ2QyaHBZMmdnYjJZZ2RHaGxJR0poY25NZ2FYTWdkR2hsSUdKbGMzUWdaWGhoYlhC
> c1pTQnZaaURpZ0p4cFpHOXRZWFJwWStLQQpuU0FvYjNJZ2NISnZjR1Z5TDNCeVpXWmxjbkpsWkNr
> Z1NuVnNhV0V1SUVSdlpYTWdZVzU1YjI1bElHaGhkbVVnWVc1NUlHTnZiVzFsCmJuUnpJRzl1SUhS
> b1lYUS9QR0p5UGp4aWNqNDhMM0ErUEhBZ2MzUjViR1U5SW0xaGNtZHBiam9nTVM0eVpXMGdNSEI0
> SUNGcGJYQnYKY25SaGJuUTdJajQ4WW5JK1BDOXdQanh3SUhOMGVXeGxQU0p0WVhKbmFXNDZJREV1
> TW1WdElEQndlQ0FoYVcxd2IzSjBZVzUwT3lJKwpUMjRnVkhWbGMyUmhlU3dnUVhWbmRYTjBJREU1
> TENBeU1ERTBJREV5T2pVeE9qSTVJRkJOSUZWVVF5MDNMQ0JUY0dWdVkyVnlJRXg1CmIyNGdkM0p2
> ZEdVNklEd3ZjRDRLUEhBZ2MzUjViR1U5SW0xaGNtZHBiam9nTVM0eVpXMGdNSEI0SUNGcGJYQnZj
> blJoYm5RN0lqNDgKTDNBK1BHUnBkaUJqYkdGemN6MGliV0Z5YTJSdmQyNHRhR1Z5WlMxbGVHTnNk
> V1JsSWo0OGNENDhMM0ErUEdKc2IyTnJjWFZ2ZEdVZwpZMnhoYzNNOUltZHRZV2xzWDNGMWIzUmxJ
> aUJ6ZEhsc1pUMGliV0Z5WjJsdU9pQXdPMjFoY21kcGJpMXNaV1owT2lBd0xqaGxlRHRpCmIzSmta
> WEl0YkdWbWREb2dNWEI0SUNOalkyTWdjMjlzYVdRN2NHRmtaR2x1Wnkxc1pXWjBPaUF4WlhnN0lq
> NDhaR2wyUGp4d0lITjAKZVd4bFBTSnRZWEpuYVc0Nk1TNHlaVzBnTUhCNElXbHRjRzl5ZEdGdWRD
> SStSWGhqWld4c1pXNTBMQ0IwYUdGdWF5QjViM1VnWm05eQpJSFJvWlNCeGRXbGpheUJoYm1RZ2FH
> VnNjR1oxYkNCeVpYTndiMjV6WlhNdUlEd3ZjRDRLUEhBZ2MzUjViR1U5SW0xaGNtZHBiam94Ckxq
> SmxiU0F3Y0hnaGFXMXdiM0owWVc1MElqNVBibVVnYlc5eVpTQnlaV3hoZEdWa0lIRjFaWE4wYVc5
> dUxqd3ZjRDRLUEhBZ2MzUjUKYkdVOUltMWhjbWRwYmpveExqSmxiU0F3Y0hnaGFXMXdiM0owWVc1
> MElqNUpaaUJKSUhkbGNtVWdkRzhnWkdWbWFXNWxJR0VnWm5WdQpZM1JwYjI0Z2RHaGhkQ0JqYjNW
> c1pDQmxhWFJvWlhJZ2IyNGdZVzRnUEdOdlpHVWdjM1I1YkdVOUltWnZiblF0YzJsNlpUb3dMamcx
> Clp
>
> ...