From aec235a1f5110ae9eac6c0d0ea106cdd40d6b024 Mon Sep 17 00:00:00 2001 From: David Oran Date: Mon, 25 Oct 2021 10:40:15 -0400 Subject: [PATCH] Refresh to version 06 - no changes --- draft-oran-icnrg-flowbalance-06.html | 1722 ++++++++++++++++++ draft-oran-icnrg-flowbalance-06.pdf | 2426 ++++++++++++++++++++++++++ draft-oran-icnrg-flowbalance-06.txt | 896 ++++++++++ draft-oran-icnrg-flowbalance-06.xml | 477 +++++ 4 files changed, 5521 insertions(+) create mode 100644 draft-oran-icnrg-flowbalance-06.html create mode 100644 draft-oran-icnrg-flowbalance-06.pdf create mode 100644 draft-oran-icnrg-flowbalance-06.txt create mode 100644 draft-oran-icnrg-flowbalance-06.xml diff --git a/draft-oran-icnrg-flowbalance-06.html b/draft-oran-icnrg-flowbalance-06.html new file mode 100644 index 0000000..78299b8 --- /dev/null +++ b/draft-oran-icnrg-flowbalance-06.html @@ -0,0 +1,1722 @@ + + + + + + +Maintaining CCNx or NDN flow balance with highly variable data object sizes + + + + + + + + + + + + + + + + + + + + + + + + +
Internet-DraftMaintaining Flow BalanceOctober 2021
OranExpires 28 April 2022[Page]
+
+
+
+
Workgroup:
+
ICNRG
+
Internet-Draft:
+
draft-oran-icnrg-flowbalance-06
+
Published:
+
+ +
+
Intended Status:
+
Experimental
+
Expires:
+
+
Author:
+
+
+
D. Oran
+
Network Systems Research and Design
+
+
+
+
+

Maintaining CCNx or NDN flow balance with highly variable data object sizes

+
+

Abstract

+

Deeply embedded in some ICN architectures, especially Named Data Networking (NDN) and Content-Centric Networking (CCNx) is the notion of flow balance. This captures the idea that there is a one-to-one correspondence between requests for data, carried in Interest messages, and the responses with the requested data object, carried in Data messages. This has a number of highly beneficial properties for flow and congestion control in networks, as well as some desirable security properties. For example, neither legitimate users nor attackers are able to inject large amounts of un-requested data into the network.¶

+

Existing congestion control approaches however have a difficult time dealing effectively with a widely varying MTU of ICN data messages, because the protocols allow a dynamic range of 1-64K bytes. Since Interest messages are used to allocate the reverse link bandwidth for returning Data, there is large uncertainty in how to allocate that bandwidth. Unfortunately, most current congestion control schemes in CCNx and NDN only count Interest messages and have no idea how much data is involved that could congest the inverse link. This document proposes a method to maintain flow balance by accommodating the wide dynamic range in Data message size.¶

+
+
+
+

+Status of This Memo +

+

+ This Internet-Draft is submitted in full conformance with the + provisions of BCP 78 and BCP 79.¶

+

+ Internet-Drafts are working documents of the Internet Engineering Task + Force (IETF). Note that other groups may also distribute working + documents as Internet-Drafts. The list of current Internet-Drafts is + at https://datatracker.ietf.org/drafts/current/.¶

+

+ Internet-Drafts are draft documents valid for a maximum of six months + and may be updated, replaced, or obsoleted by other documents at any + time. It is inappropriate to use Internet-Drafts as reference + material or to cite them other than as "work in progress."¶

+

+ This Internet-Draft will expire on 28 April 2022.¶

+
+
+ +
+
+ â–²

+Table of Contents +

+ +
+
+
+
+

+1. Introduction +

+

Deeply embedded in some ICN architectures, especially Named Data Networking ([NDN]) and Content-Centric Networking (CCNx [RFC8569],[RFC8609]) is the notion of flow balance. This captures the idea that there is a one-to-one correspondence between requests for data, carried in Interest messages, and the responses with the requested data object, carried in Data messages. This has a number of highly beneficial properties for flow and congestion control in networks, as well as some desirable security properties. For example, neither legitimate users nor attackers are able to inject large amounts of un-requested data into the network.¶

+

This approach leads to a desire to make the size of the objects carried in Data messages small and near constant, because flow balance can then be kept using simple bookkeeping of how many Interest messages are outstanding. While simple, constraining Data messages to be quite small - usually on the order of a link Maximum Transmission Unit (MTU) - has some constraints and deleterious effects, among which are:¶

+
    +
  • Such small data objects are inconvenient for many applications; their natural data object sizes can be considerably larger than a link MTU.¶ +
  • +
  • Applications with truly small data objects (e.g. voice packets in an Internet telephony applications) have no way to communicate that to the network, causing resources to still be allocated for MTU-sized data objects¶ +
  • +
  • When chunking a larger data object into multiple Data messages, each message has to be individually cryptographically hashed and signed, increasing both computational overhead and overall message header size. The signature can be elided when Manifests are used (by signing the Manifest instead), but the overhead of hashing multiple small messages rather than fewer larger ones remains.¶ +
  • +
+

One approach which helps with the last of these is to employ fragmentation for Data messages larger than the Path MTU (PMTU). Such messages are carved into smaller pieces for transmission over the link(s). There are three flavors of fragmentation: end-to-end, hop-by-hop with reassembly at every hop, and hop-by-hop with cut-through of individual fragments. A number of ICN protocol architectures incorporate fragmentation and schemes have been proposed for both NDN and CCNx, for example in [Ghali2013]. Fragmentation alone does not ameliorate the flow balance problem however, since from a resource allocation standpoint both memory and link bandwidth must be set aside for maximum-sized data objects to avoid congestion collapse under overload.¶

+

The design space considered in this document does not however extend to arbitrarily large objects (e.g. 100's of kilobytes or larger). As the dynamic range of data object sizes gets very large, finding the right tradeoff between handling a large number of small data objects versus a single very large data object when allocating link and buffer resources becomes intractable. Further, the semantics of Interest-Data exchanges means that any error in the exchange results in a re-issue of an Interest for the entire Data object. Very large data objects represent a performance problem because the cost of retransmission when Interests are retransmitted (or re-issued) becomes unsustainably high. Therefore, the method we propose deals with a dynamic range of object sizes from very small (a fraction of a link MTU) to moderately large - about 64 kilobytes or equivalently about 40 Ethernet packets, and assumes an associated fragmentation scheme to handle link MTUs that cannot carry the Data message in a single link-layer packet.¶

+

The approach described in the rest of this document maintains flow balance under the conditions outlined above by allocating resources accurately based on expected Data message size, rather than employing simple interest counting.¶

+
+
+
+

+2. Requirements Language +

+

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [RFC2119].¶

+
+
+
+

+3. Method to enhance congestion control with signaled size information in Interest Messages +

+

Before diving into the specifics of the design, it is useful to consider how congestion control works in NDN/CCNx. Unlike the IP protocol family, which relies on end-to-end congestion control (e.g. TCP[RFC0793], DCCP[RFC4340], SCTP[RFC4960], QUIC[I-D.ietf-quic-transport]), CCNx and NDN employ hop-by-hop congestion control. There is per-Interest/Data state at every hop of the path and therefore for each outstanding Interest, bandwidth for data returning on the inverse path can be allocated. In many current designs, this allocation is done using simple Interest counting - by queueing and subsequently forwarding one Interest message from a downstream node, implicitly this provides a guarantee (either hard or soft) that there is sufficient bandwidth on the inverse direction of the link to send back one Data message. A number of congestion control schemes have been developed that operate in this fashion, for example [Wang2013],[Mahdian2016],[Song2018],[Carofiglio2012]. Other schemes, like [Schneider2016] neither count nor police interests, but instead monitor queues using AQM (active queue management) to mark or drop returning Data packets that have experienced congestion. It is worth noting that every congestion control algorithm has an explicit fairness goal and associated objective function (usually either [minmaxfairness] or [proportionalfairness]). If your fairness is to be based on resource usage, pure interest counting doesn't do the trick, since a consumer asking for large thing can saturate a link and shift loss to consumers asking for small things.¶

+

In order to deal with a larger dynamic range of Data message size, some means is required to allocate link bandwidth for Data messages in bytes with an upper bound larger than a Path MTU and a lower bound lower than a single link MTU. Since resources are allocated for returning Data based on arriving Interests, this information must be available in Interest messages.¶

+

Therefore, one key idea is the inclusion of an expected data size TLV in each Interest message. This allows each forwarder on the path taken by the Interest to more accurately allocate bandwidth on the inverse path for the returning Data message. Also, by including the expected data size, large objects will have a corresponding weight in resource allocation, maintaining link and forwarder buffering fairness. The simpler Interest counting scheme was nominally "fair" on a per-exchange basis within the variations of data that fit in a single PMTU packet because all Interests produced similar amounts of data in return. In the absence of such a field, it is not feasible to allow a large dynamic range in object size. While schemes like [Schneider2016] would not employ the expected data size to allocate reverse link bandwidth, they can still benefit from the information to affect the AQM congestion marking algorithm, preferentially marking data packets that exceed the expected data size from the corresponding Interest.¶

+

It is natural to ask whether the additional complexity introduced into an ICN forwarder, and the additional computational cost for the congestion control operations is worthwhile. For congestion control schemes like [Schneider2016] the additional overhead is not trivial, since no Interest counting is happening. However, if a congestion control is already counting Interests, the additional overhead is minimal, only reading one extra TLV from the Interest and incrementing the outstanding data amount for the corresponding queue by that number rather than a constant of 1. The overhead on returning data is simply reducing the amount by the actual Data message size, rather than by 1.¶

+
+
+

+3.1. How to predict the size of returning Data messages +

+

This of course raises the question "How does the requester know how big the corresponding Data message coming back will be?". For a number of important applications, the size is known a priori due to the characteristics of the application. Here are some examples:¶

+
    +
  • For many sensor and other Internet-of-Things applications, the data is instrument readings which have fixed known size.¶ +
  • +
  • In video streaming, the data is output of a video encoder which produces variable sized frames. This information is typically made available ahead of time to the streaming clients in the form of a Manifest (e.g [DASH], FLIC [I-D.irtf-icnrg-flic]), which contains the names of the corresponding segments (or individual frames) of video and audio and their sizes.¶ +
  • +
  • Internet telephony applications use vocoders that typically employ fixed-size audio frames. Therefore, their size is known either a priori, or via an initialization exchange at the start of an audio session.¶ +
  • +
+

The more complex cases arise where the data size is not known at the time the Interest must be sent. Much of the nuance of the proposed scheme is in how mismatches between the expected data size and the actual Data message returned are handled. The consumer can either under- or over-estimate the data size. In the former case, the under-estimate can lead to congestion and possible loss of data. In the latter case, bandwidth that could have been used by data objects requested by other consumers might be wasted. We first consider "honest" mis-estimates due to imperfect knowledge by the ICN application; later we consider malicious applications that are using the machinery to mount some form of attack. We also consider the effects of Interest aggregation if the aggregated Interests have differing expected data sizes. Also, it should be obvious that if the Data message arrives, the application learns its actual size, which may or may not be useful in adjusting the expected data size estimate for future Interests.¶

+

In all cases, the expected data size from the Interest can be incorporated in the corresponding Pending Interest Table (PIT) entry of each CCNx/NDN forwarder on the path and hence when a (possibly fragmented) Data object comes back, its total size is known and can be compared to the expected size in the PIT for a mismatch. Aside: In the case of fragmentation, we assume a fragmentation scheme in which the total Data message size can be known as soon as any one fragment is received (a reasonable assumption for most any well-designed fragmentation method, such as that in [Ghali2013]).¶

+
+
+
+
+

+3.2. Handling 'too big' cases +

+

If the returning Data message is larger than the expected data size, the extra data could result in either unfair bandwidth allocation or possibly data loss under congestion conditions. When this is detected, the forwarder has three choices:¶

+
    +
  1. It could forward the Data message anyway, which is safe under non-congestion conditions, but unfair and possibly unstable when the output link is congested¶ +
  2. +
  3. It could forward the data when un-congested (e.g. by assessing output queue depth) but drop it when congested¶ +
  4. +
  5. It could always drop the data, as a way of "punishing" the requester for the mis-estimate.¶ +
  6. +
+

Either of the latter two strategies is acceptable from a congestion control point of view. However, it is not a good idea to simply drop the Data message with no feedback to the issuer of the Interest because the application has no way to learn the actual data size and retry. Further, recovery would be delayed until the failing Interest timed out. Therefore, an additional element needed in protocol semantics is the incorporation of a "Data too big" error message (achieved via the use of an "Interest Return" packet in CCNx).¶

+

Upon dropping data as above, the CCNx/NDN forwarder converts the normal Data message into an Interest Return packet containing the existing [RFC8609] T_MTU_TOO_LARGE error code and the actual size of the Data message instead of the original content. It propagates that back toward the client identically to how the original Data message would have been handled. Subsequent nodes upon receiving the T_MTU_TOO_LARGE error treat identically to other Interest Return errors. When the Interest Return eventually arrives back to the issuer of the Interest, the user MAY reissue the Interest with the correct expected data size.¶

+

One detail to note is that an Interest Return carrying T_MTU_TOO_LARGE must be deterministically smaller than the expected data size in all cases. This is clearly the case for large data objects, but there is a corner case with small data objects. There has to be a minimum expected data size that a client can specify in their Interests, and that minimum cannot be smaller than the size of a T_MTU_TOO_LARGE Interest Return packet.¶

+
+
+
+
+

+3.3. Handling 'too small' cases +

+

Next we consider the case where the returning data is smaller than the expected data size. While this case does not result in congestion, it can cause resources to be inefficiently allocated because not all of the set-aside bandwidth for the returning data object gets used. The simplest and most straightforward way to deal with this case is to essentially ignore it. The motivation for not worrying about the smaller data mismatch is that in many situations that employ usage-based resource measurement (and possibly charging), it is trivial to just account for the usage according to the larger expected data size rather than actual returned data size. Properly adjusting congestion control parameters to somehow penalize users for over-estimating their resource usage requires fairly heavyweight machinery, which in most cases is not warranted. If desired, any of the following mechanisms could be considered:¶

+
    +
  • Attempt to identify future Interests for the same object or closely related objects and allocate resources based on some retained state about the actual size of prior objects¶ +
  • +
  • Police consumer behavior and decrease the expected data size in one or more future Interests to compensate¶ +
  • +
  • For small objects, do more optimistic resource allocation on the links on the presumption that there will be some "slack" due to clients overestimating data object size.¶ +
  • +
+
+
+
+
+

+3.4. Interactions with Interest Aggregation +

+

One protocol detail of CCNx/NDN that needs to be dealt with is Interest Aggregation. Interest Aggregation, while a powerful feature for maintaining flow balance when multiple consumers send Interests for the same Named object, introduces subtle complications. Whenever a second or subsequent Interest arrives at a forwarder with an active PIT entry it is possible that those Interests carry different parameters, for example hop limit, payload, etc. It is therefore necessary to specify the exact behavior of the forwarder for each of the parameters that might differ. In the case of the expected data size parameter defined here, the value is associated with the ingress face on which the Interest creating the PIT entry arrived, as opposed to being global to the PIT entry as a whole. Interest aggregation interacts with expected data size if Interests from different clients contain different values of the expected data size. As above in Section 3.3, the simplest solution to this problem is to ignore it, as most error cases are benign. However, there is one problematic error case where one client provides an accurate expected data size, but another who issued the Interest first underestimates, causing both to receive a T_MTU_TOO_LARGE error. This introduces a denial of service vulnerability, which we discuss below together with the other malicious actor cases.¶

+

There are two cases to consider:¶

+
    +
  1. The arriving Interest carries an expected data size smaller than any of the values associated with the PIT entry.¶ +
  2. +
  3. The arriving Interest carries an expected data size larger than any of the values associated with the PIT entry.¶ +
  4. +
+

For Case (1) the Interest can be safely aggregated since the upstream links will have sufficient bandwidth allocated based on the larger expected data size (assuming the original Interest's expected data size was itself sufficiently large to accommodate the actual size of the returning Data). On the other hand, should the incoming face have bandwidth allocated based on the larger existing Interest's expected data size, or on the smaller value in the arriving interest? Here there are two possible approaches:¶

+
    +
  1. Allocate based on the data size already in the PIT. In this case the consumer sending the earlier Interest can cause over-allocation of link bandwidth for other incoming faces, but there will not be a T_MTU_TOO_LARGE error generated for that Interest¶ +
  2. +
  3. Allocate based on the value in the arriving Interest. If the returning Data is in fact larger, generate a T_MTU_TOO_LARGE Interest Return on that ingress face, while successfully returning the Data message on any faces that do not exhibit a too small expected data size¶ +
  4. +
+

It is RECOMMENDED that the second policy be followed. The reasons behind this recommendation are as follows:¶

+
    +
  1. The link can be congested quite quickly after the queuing decision is made, especially if the data has a long link-occupancy time, so this is a safer alternative.¶ +
  2. +
  3. The cost of returning the error is only one link RTT, since the consumer (or downstream forwarder) can immediately re-issue the Interest with the correct size and perhaps pick up the cached object from the upstream forwarder's Content Store.¶ +
  4. +
  5. Being optimistic and returning the data interacts with the behavior of aggregate resource control and resource accounting, which in turn raises the messy issue of whether to "charge" the consumer for the actual bandwidth used or only for the requested bandwidth in the expected data.¶ +
  6. +
  7. The rabbit hole goes deeper if you add differential QoS to the equation or consumers "playing games" and intentionally underestimating so their interests get satisfied when links aren't congested. This makes handling malicious actors (Section 4) more difficult.¶ +
  8. +
+

For Case (2) above, the Interest MUST be forwarded rather than aggregated to prevent a consumer from mounting a denial of service attack by sending intentionally too small expected data size (see Section 4 for additional detail on this and other attacks). As above for Case (1) it is RECOMMENDED that policy (b) above be followed.¶

+
+
+
+
+

+3.5. Operation when some Interests lack the expected data size option and some have it +

+

Since the expected data size is an optional hop-by-hop packet field, forwarders need to be prepared to handle an arbitrary mix of packets containing or lacking this option. There are two general things to address.¶

+

First, we assume that any forwarder supporting expected data size is running a more sophisticated congestion control algorithm that one employing simple interest counting. The link bandwidth resource allocation is therefore based directly, or indirectly, on the expected Data size in bytes. Therefore, the forwarder has to assign a value to use in the resource allocation for the reverse link. This specification does not mandate any particular approach or a default value to use. However, in the absence on other guidance, it makes sense to do one of two things:¶

+
    +
  1. Pick a default based on the link MTU of the face on which the Interest arrived and use that for all Interests lacking an expected data size. This is likely to be most compatible with simple interest counting which would rate limit all incoming interests equally.¶ +
  2. +
  3. +

    Configure some values for given Name prefixes that have known sizes. This may be appropriate for dedicated forwarders supporting single use cases, such as:¶

    +
      +
    • A forwarder handling IoT sensors sending very small Data messages¶ +
    • +
    • A forwarder handling real-time video with large average Data packets that exceed link MTU and are routinely fragmented¶ +
    • +
    • A forwarder doing voice trunking where the vocoders produce moderate sized packets, still much smaller than the link MTU¶ +
    • +
    +
  4. +
+

The second area to address is what to do if an interest lacking an expected Data size is responded to by a Data message whose size exceeds the default discussed above. It would be inappropriate to issue a T_MTU_TOO_LARGE error, since the consumer is unlikely to understand or deal correctly with that new error case. Instead, it is RECOMMENDED that the forwarder:¶

+
    +
  • Ignore the mismatch if the reverse link is not congested and return the requested Data message anyway.¶ +
  • +
  • If the reverse link is congested, issue an Interest Return with the T_NO_RESOURCES error code¶ +
  • +
+

This specification does not define or recommend any particular algorithm for assessing the congestion state of the link(s) to carry the Data message downstream to the requesting consumers. It is assumed that a reasonable algorithm is in use, because otherwise even basic Interest counting forms of congestion control would not be effective.¶

+
+
+
+
+
+
+

+4. Dealing with malicious actors +

+

First we note that various known attacks in CCNx or NDN can also be mounted by users employing this method. Attacks that involve interest flooding, cache pollution, cache poisoning, etc. are neither worsened nor ameliorated by the introduction of the congestion control capabilities described here. However, there are two new vulnerabilities that need to be dealt with. These two new vulnerabilities involve intentional mis-estimation of data size.¶

+

The first is a consumer who intentionally over-estimates data size with the goal of preventing other users from using the bandwidth. This is at most a minor additional concern given the discussion of how to handle over-estimation by honest clients in Section 3.2. If one of the amelioration techniques described there is used, the case of malicious over-estimation is also dealt with adequately.¶

+

The second is a user who intentionally under-estimates the data size with the goal having its Interest processed while the other aggregated interests are not processed, thereby causing T_MTU_TOO_LARGE errors and denying service to the other users with overlapping requests. There are a number of possible mitigation techniques for this attack vector, ranging in complexity. We outline two below; there may be others as or more effective with acceptable complexity and overhead:¶

+
    +
  • (Simplest) A user sending Interests resulting in a T_MTU_TOO_LARGE error is treated similarly to users mounting interest flooding attacks; the a router aggregating Interests with differing expected data sizes rate limits the face(s) exhibiting these errors, thus decreasing the ability of a user to issue enough mis-estimated Interests to collide and generate Interest aggregation.¶ +
  • +
  • An ICN forwarder aggregating Interests remembers in the PIT entry not only the expected data size of the Interest it forwarded, but the maximum of the expected data size of the other Interests it aggregated. If a T_MTU_TOO_LARGE error comes back, instead of propagating it, the forwarder MAY treat this as a transient error, drop the Interest Return, and re-forward the Interest using the maximum expected data size in the PIT (assuming it is is bigger). This recovers from the error, but the attacker can still cause an extra round trip to the producer or to an upstream forwarder with a copy of the data in its Content Store.¶ +
  • +
+
+
+
+
+

+5. Mapping to CCNx and NDN packet encodings +

+

The only actual protocol needed is a TLV in Interest messages that states the size in bytes of the expected Data Message coming back, and in the Interest Return on a "too big" error to carry the actual data size. In the case of CCNx, this covers the encapsulated Data Object, but not the hop-by-hop headers.¶

+
+
+

+5.1. Packet encoding for CCNx +

+

For CCNx[RFC8569] there is a new hop-by-hop header TLV, and a new value of the Interest Return "Return Type".¶

+

Expected Data Size (for Interest messages), or Actual Data Size (for Interest Return messages) TLV¶

+
+ + + + + + + + + + + + + + + + +
+Table 1: +Data Size TLV +
AbbrevNameDescription
T_DATASIZEData SizeExpected (Section 3) or Actual (Section 3.2) Data Size
+
+
+
+
+
+

+5.2. Packet encoding for NDN +

+

TBD based on [NDNTLV]. Suggestions from the NDN team greatly appreciated.¶

+
+
+
+
+
+
+

+6. IANA Considerations +

+

Please Add the T_DATASIZE TLV to the Hop-by-Hop TLV types registry of RFC8609, with fixed length of 2, and data type numeric¶

+

Expected/Actual Data Size TLV encoding. The range has an upper bound of 64K bytes, since that is the largest MTU supported by CCNx.¶

+
+
+
+
+                     1                   2                   3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++---------------+---------------+---------------+---------------+
+|             T_DATASIZE        |               2               |
++---------------+---------------+---------------+---------------+
+|   Expected/Actual Data Size   |
++---------------+---------------+
+
+
+
Figure 1: +Expected/Actual Datazize using RFC8609 encoding +
+
+
+
+
+
+

+7. Security Considerations +

+

Section 4 addresses the major security considerations for this specification.¶

+
+
+
+
+

+8. Acknowledgements +

+

Klaus Schneider and Ken Calvert have contributed a number of useful comments which have substantially improved the document.¶

+
+
+
+

+9. References +

+
+

+9.1. Normative References +

+
+
[RFC2119]
+
+Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
+
+
[RFC8569]
+
+Mosko, M., Solis, I., and C. Wood, "Content-Centric Networking (CCNx) Semantics", RFC 8569, DOI 10.17487/RFC8569, , <https://www.rfc-editor.org/info/rfc8569>.
+
+
[RFC8609]
+
+Mosko, M., Solis, I., and C. Wood, "Content-Centric Networking (CCNx) Messages in TLV Format", RFC 8609, DOI 10.17487/RFC8609, , <https://www.rfc-editor.org/info/rfc8609>.
+
+
+
+
+

+9.2. Informative References +

+
+
[Carofiglio2012]
+
+Carofiglio, G., Gallo, M., and L. Muscariello, "Joint hop-by-hop and receiver-driven interest control protocol for content-centric networks, in ICN Workshop at SIGcomm 2012", DOI 10.1145/2377677.2377772, , <http://conferences.sigcomm.org/sigcomm/2012/paper/icn/p37.pdf>.
+
+
[DASH]
+
+"Dynamic Adaptive Streaming over HTTP", various, <https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP>.
+
+
[Ghali2013]
+
+Ghali, C., Narayanan, A., Oran, D., Tsudik, G., and C. Wood, "Secure Fragmentation for Content-Centric Networks, in IEEE 14th International Symposium on Network Computing and Applications", DOI 10.1109/nca.2015.34, , <http://dx.doi.org/10.1109/NCA.2015.34>.
+
+
[I-D.ietf-quic-transport]
+
+Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed and Secure Transport", Work in Progress, Internet-Draft, draft-ietf-quic-transport-27, , <https://datatracker.ietf.org/doc/html/draft-ietf-quic-transport-27>.
+
+
[I-D.irtf-icnrg-flic]
+
+Tschudin, C., Wood, C., Mosko, M., and D. Oran, "File-Like ICN Collections (FLIC)", Work in Progress, Internet-Draft, draft-irtf-icnrg-flic-02, , <https://datatracker.ietf.org/doc/html/draft-irtf-icnrg-flic-02>.
+
+
[Mahdian2016]
+
+Mahdian, M., Arianfar, S., Gibson, J., and D. Oran, "MIRCC: Multipath-aware ICN Rate-based Congestion Control, in Proceedings of the 3rd ACM Conference on Information-Centric Networking", DOI 10.1145/2984356.2984365, , <http://conferences2.sigcomm.org/acm-icn/2016/proceedings/p1-mahdian.pdf>.
+
+
[minmaxfairness]
+
+"Max-min Fairness", various, <https://en.wikipedia.org/wiki/Max-min_fairness>.
+
+
[NDN]
+
+"Named Data Networking", various, <https://named-data.net/project/execsummary/>.
+
+
[NDNTLV]
+
+"NDN Packet Format Specification.", , <http://named-data.net/doc/ndn-tlv/>.
+
+
[proportionalfairness]
+
+"Proportionally Fair", various, <https://en.wikipedia.org/wiki/Proportionally_fair>.
+
+
[RFC0793]
+
+Postel, J., "Transmission Control Protocol", STD 7, RFC 793, DOI 10.17487/RFC0793, , <https://www.rfc-editor.org/info/rfc793>.
+
+
[RFC4340]
+
+Kohler, E., Handley, M., and S. Floyd, "Datagram Congestion Control Protocol (DCCP)", RFC 4340, DOI 10.17487/RFC4340, , <https://www.rfc-editor.org/info/rfc4340>.
+
+
[RFC4960]
+
+Stewart, R., Ed., "Stream Control Transmission Protocol", RFC 4960, DOI 10.17487/RFC4960, , <https://www.rfc-editor.org/info/rfc4960>.
+
+
[Schneider2016]
+
+Schneider, K., Yi, C., Zhang, B., and L. Zhang, "A Practical Congestion Control Scheme for Named Data Networking, in Proceedings of the 2016 conference on 3rd ACM Conference on Information-Centric Networking - ACM-ICN '16", DOI 10.1145/2984356.2984369, , <http://conferences2.sigcomm.org/acm-icn/2016/proceedings/p21-schneider.pdf>.
+
+
[Song2018]
+
+Song, J., Lee, M., and T. Kwon, "SMIC: Subflow-level Multi-path Interest Control for Information Centric Networking, in 5th ACM Conference on Information-Centric Networking", DOI 10.1145/3267955.3267971, , <https://conferences.sigcomm.org/acm-icn/2018/proceedings/icn18-final62.pdf>.
+
+
[Wang2013]
+
+Wang, Y., Rozhnova, N., Narayanan, A., Oran, D., and I. Rhee, "An Improved Hop-by-hop Interest Shaper for Congestion Control in Named Data Networking, in ACM SIGCOMM Workshop on Information-Centric Networking", DOI 10.1145/2534169.2491233, , <http://conferences.sigcomm.org/sigcomm/2013/papers/icn/p55.pdf>.
+
+
+
+
+
+
+

+Author's Address +

+
+
Dave Oran
+
Network Systems Research and Design
+
4 Shady Hill Square
+
+Cambridge, MA 02138 +
+
United States of America
+ +
+
+
+ + + diff --git a/draft-oran-icnrg-flowbalance-06.pdf b/draft-oran-icnrg-flowbalance-06.pdf new file mode 100644 index 0000000..92fc929 --- /dev/null +++ b/draft-oran-icnrg-flowbalance-06.pdf @@ -0,0 +1,2426 @@ +%PDF-1.3 +%âãÏÓ +1 0 obj +< /Producer + (WeasyPrint 0.42.3 \(http://weasyprint.org/\)) /Subject + ( + Deeply embedded in some ICN architectures, especially Named Data Networking \(NDN\) and Content-Centric Networking \(CCNx\) is the notion of flow balance. This captures the idea that there is a one-to-one correspondence between requests for data, carried in Interest messages, and the responses with the requested data object, carried in Data messages. This has a number of highly beneficial properties for flow and congestion control in networks, as well as some desirable security properties. For example, neither legitimate users nor attackers are able to inject large amounts of un-requested data into the network. + Existing congestion control approaches however have a difficult time dealing effectively with a widely varying MTU of ICN data messages, because the protocols allow a dynamic range of 1-64K bytes. Since Interest messages are used to allocate the reverse link bandwidth for returning Data, there is large uncertainty in how to allocate that bandwidth. Unfortunately, most current congestion control schemes in CCNx and NDN only count Interest messages and have no idea how much data is involved that could congest the inverse link. This document proposes a method to maintain flow balance by accommodating the wide dynamic range in Data message size. + + ) + /Title + (Maintaining CCNx or NDN flow balance with highly variable data object sizes)>> +endobj +2 0 obj +<> + /Pages 4 0 R /Type /Catalog>> +endobj +3 0 obj +<> + /Count 24 /First 179 0 R /Last 180 0 R /Title + (Maintaining CCNx or NDN flow balance with highly variable data object sizes)>> +endobj +4 0 obj +<> +endobj +5 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 588.238123155 128.155511811 569.518123155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 343.823591905 214.405511811 325.103591905] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [162.655511811 267.10476378 362.155511811 253.505154405] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 171 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 172 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +6 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 763.28976378 189.655511811 744.56976378] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [126.655511811 686.570935655 287.155511811 672.97132628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 626.92210753 194.155511811 608.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 600.70210753 71.155511811 587.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 600.70210753 139.405511811 587.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 580.20210753 71.155511811 567.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 580.20210753 193.405511811 567.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 559.70210753 71.155511811 546.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 559.70210753 508.405511811 546.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 539.20210753 90.655511811 526.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 539.20210753 338.155511811 526.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 518.70210753 90.655511811 505.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 518.70210753 209.155511811 505.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 498.20210753 90.655511811 485.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 498.20210753 221.155511811 485.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 477.70210753 90.655511811 464.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 477.70210753 279.655511811 464.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 457.20210753 90.655511811 444.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 457.20210753 492.655511811 444.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 434.20210753 71.155511811 421.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 434.20210753 218.905511811 421.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 413.70210753 71.155511811 400.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 413.70210753 291.655511811 400.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 393.20210753 90.655511811 380.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 393.20210753 220.405511811 380.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 372.70210753 90.655511811 359.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 372.70210753 217.405511811 359.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 349.70210753 71.155511811 336.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 349.70210753 176.905511811 336.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 329.20210753 71.155511811 316.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 329.20210753 191.155511811 316.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 308.70210753 71.155511811 295.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 308.70210753 171.655511811 295.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 288.20210753 71.155511811 275.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 288.20210753 130.405511811 275.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 267.70210753 90.655511811 254.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 267.70210753 203.905511811 254.70210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [77.905511811 247.20210753 90.655511811 234.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [97.405511811 247.20210753 210.655511811 234.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 224.20210753 65.905511811 211.20210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 224.20210753 145.405511811 211.20210753] /Subtype /Link + /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 163 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 164 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +7 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 763.28976378 89.605511811 744.56976378] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 763.28976378 184.105511811 744.56976378] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [457.405511811 737.36976378 479.905511811 723.770154405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [237.655511811 723.770154405 277.405511811 710.17054503] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [287.155511811 723.770154405 326.905511811 710.17054503] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [217.405511811 335.180310655 263.905511811 321.58070128] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 148 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 149 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +8 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 661.69210753 89.605511811 642.97210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 661.69210753 268.855511811 642.97210753] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [125.905511811 608.57288878 167.905511811 594.973279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [173.905511811 608.57288878 213.655511811 594.973279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 576.873279405 89.605511811 558.153279405] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 576.873279405 504.355511811 558.153279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 558.153279405 308.905511811 539.433279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [87.655511811 505.034060655 127.405511811 491.43445128] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [164.905511811 505.034060655 204.655511811 491.43445128] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [239.905511811 505.034060655 279.655511811 491.43445128] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [316.405511811 505.034060655 419.905511811 491.43445128] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [407.155511811 409.83679503 455.905511811 396.237185655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [69.655511811 396.237185655 134.155511811 382.63757628] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [143.905511811 396.237185655 188.155511811 382.63757628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [197.905511811 396.237185655 265.405511811 382.63757628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [371.155511811 396.237185655 439.405511811 382.63757628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [140.155511811 341.838748155 219.655511811 328.23913878] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [242.155511811 341.838748155 341.905511811 328.23913878] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 140 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 141 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +9 0 obj +<> + /Border [0 0 0] /Rect + [416.905511811 744.19054503 485.155511811 730.590935655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [224.155511811 652.59288878 292.405511811 638.993279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 556.49523253 95.905511811 540.89523253] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 556.49523253 403.405511811 540.89523253] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [215.655511811 427.197966905 242.655511811 413.59835753] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [250.905511811 427.197966905 272.655511811 413.59835753] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [278.655511811 427.197966905 355.155511811 413.59835753] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 132 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 133 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +10 0 obj +<> + /Border [0 0 0] /Rect + [181.405511811 689.79210753 227.905511811 676.192498155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 661.692498155 95.905511811 646.092498155] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 661.692498155 239.905511811 646.092498155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [305.905511811 401.09835753 345.655511811 387.498748155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 227.002654405 95.905511811 211.402654405] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 227.002654405 255.655511811 211.402654405] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 124 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 125 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +11 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 578.69445128 95.905511811 563.09445128] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 578.69445128 328.405511811 563.09445128] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [393.655511811 434.697966905 443.905511811 421.09835753] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 115 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 116 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +12 0 obj +<> + /Border [0 0 0] /Rect + [323.655511811 432.19835753 366.405511811 418.598748155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [131.155511811 381.399529405 173.905511811 367.79992003] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 339.700310655 95.905511811 324.100310655] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 339.700310655 518.905511811 324.100310655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 324.100310655 143.155511811 308.500310655] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 106 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 107 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +13 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 376.89913878 89.605511811 358.17913878] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 376.89913878 308.605511811 358.17913878] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [372.655511811 245.781873155 422.905511811 232.18226378] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 91 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 92 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +14 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 536.795623155 89.605511811 518.075623155] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 536.795623155 414.355511811 518.075623155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 441.977185655 95.905511811 426.377185655] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 441.977185655 252.655511811 426.377185655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [113.155511811 420.377185655 152.905511811 406.77757628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [288.637795276 329.478748155 331.387795276 315.87913878] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [386.887795276 329.478748155 437.137795276 315.87913878] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [99.637795276 310.12913878 132.637795276 296.529529405] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [137.887795276 310.12913878 202.387795276 296.529529405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 282.029529405 95.905511811 266.429529405] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 282.029529405 247.405511811 266.429529405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [137.155511811 260.429529405 178.405511811 246.82992003] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 228.72992003 89.605511811 210.00992003] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 228.72992003 242.605511811 210.00992003] /Subtype /Link + /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 83 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 84 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +15 0 obj +<> + /Border [0 0 0] /Rect + [65.905511811 629.207981553 103.405511811 615.608372178] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [108.655511811 629.207981553 341.155511811 615.608372178] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 597.508372178 89.605511811 578.788372178] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 597.508372178 265.105511811 578.788372178] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 571.588372178 108.655511811 557.988762803] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 539.888762803 89.605511811 521.168762803] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 539.888762803 231.355511811 521.168762803] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 468.669544053 89.605511811 449.949544053] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [89.605511811 468.669544053 170.605511811 449.949544053] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 438.249544053 95.905511811 422.649544053] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 438.249544053 231.655511811 422.649544053] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [364.155511811 399.049934678 512.655511811 385.450325303] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 385.450325303 180.405511811 371.850715928] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [409.155511811 350.251106553 485.655511811 336.651497178] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 336.651497178 252.405511811 323.051887803] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [427.905511811 301.452278428 504.405511811 287.852669053] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 287.852669053 252.405511811 274.253059678] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 259.753059678 95.905511811 244.153059678] /Subtype /Link + /Type /Annot>> + <> + /Border [0 0 0] /Rect + [95.905511811 259.753059678 239.905511811 244.153059678] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [405.405511811 206.953840928 433.905511811 193.354231553] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 193.354231553 424.905511811 179.754622178] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 63 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 64 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +16 0 obj +<> + /Border [0 0 0] /Rect + [397.155511811 771.38976378 511.905511811 757.790154405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 757.790154405 371.655511811 744.19054503] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [480.405511811 708.99132628 508.905511811 695.391716905] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 695.391716905 289.155511811 681.79210753] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [235.155511811 646.59288878 478.905511811 632.993279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 632.993279405 205.155511811 619.39367003] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [176.655511811 584.19445128 452.655511811 570.594841905] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [478.905511811 535.395623155 507.405511811 521.79601378] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 521.79601378 478.905511811 508.196404405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [313.655511811 500.196404405 476.405511811 486.59679503] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 486.59679503 208.155511811 472.997185655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [322.155511811 464.997185655 471.405511811 451.39757628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 451.39757628 217.155511811 437.797966905] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [349.905511811 429.797966905 516.405511811 416.19835753] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [342.155511811 408.19835753 480.155511811 394.598748155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 394.598748155 238.155511811 380.99913878] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [229.905511811 359.399529405 407.655511811 345.79992003] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [405.405511811 324.200310655 481.905511811 310.60070128] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 310.60070128 252.405511811 297.001091905] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [274.155511811 275.40148253 457.155511811 261.801873155] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [293.655511811 213.00304503 518.655511811 199.403435655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 199.403435655 290.655511811 185.80382628] /Subtype + /Link /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 48 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 49 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +17 0 obj +<> + /Border [0 0 0] /Rect + [379.155511811 744.19054503 412.155511811 730.590935655] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 730.590935655 477.405511811 716.99132628] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [293.655511811 668.192498155 517.905511811 654.59288878] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [145.905511811 654.59288878 233.655511811 640.993279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [65.905511811 622.893279405 191.155511811 604.173279405] /Subtype + /Link /Type /Annot>> + <> + /Border [0 0 0] /Rect + [98.905511811 526.17523253 217.405511811 512.575623155] /Subtype /Link + /Type /Annot>>] + /BleedBox [0 0 595 841] /Contents 18 0 R /Group + <> /MediaBox + [0 0 595 841] /Parent 4 0 R /Resources 19 0 R /TrimBox [0 0 595 841] + /Type /Page>> +endobj +18 0 obj +<> +stream +xœÕXYsÛ6~ǯàä¥d§¤q‘ñxêÄi›´i’Z�L'“Ŷ촶bKršö×w)ÉVš¾Ô†{aw¿U&á·T0´µÊN®Ä�¸Éö^NW«³Å<;Yf{×ʶÙòdžíMev¾¸ÁzKô‹³l&^‰WÙ�°M¥mf]V·ºrÎe ÌØV#Íël.T†¿‹óílz&4v|dålÇDVmÖý÷¬¢è«Ì_Iíðå2¾8eH“ËÀ¹¿HL¶Ó{Ê¡®ŒI9tïc³¯C:AÿkSd¥ þdë½Þ�&ÂWÞ{gލøÖªÊ˃r¾iÛlr%öf¥,%Äd&ÞäoŠÒ4ùqQª:ÿP(“Ï‹²ÍÏ cs]˜:—8(ZÞo'ÏD)+㬔>+Aaâšlr¹½.¼Î§ÀÈoddzF ‹êtQ`›•ºn³!Ïo +mó ëÆv/Àt +3µ52?-@{$q*’ {]�õ²©³‚@y�HX" b+¥1!ƒµ-ö�v:k 8AUÆzç=s¨zšRûÊIéà @ÕH-ýЪ&±Š¸Ö*ÖÔz¤Øæå}æ«¡ùJWZ[íÛ;ì/U[A°Ô�›±ÕfäØç!àà�C#U»Á¾2RjH¥ªd8Ã4Ç…òx¥6Á˜s Â^ö3ˆÌ8•5ÌüTÙY¡$‘JäÏÉ@öÚ|R´m'xüˆO@Õ­Ìư|Þý"_ä�Ñ™)h3ÜâÓ;Ùãëé<ÛßÏöOV·ÓËÉÙ§U¶?;›Í¤lø?9ȲGG�9ºUÈ´ýUïK)Õryòüñ øßä Ñý@Õ&/ÑÂËhëGXQüH“¤ëMÊÑ䪸ÿ}¡%ï¿Fc8TVÄúii/Z\ÎKÄ{Q)"_â´fbrJzJ¼…¨yºWjA&ä19ެDô€˜]Ñlª1“Š +A¦°Êk +ÑŽ˜5Lû3FÔû'¸×%2EþøÞò¶�1˜¬Ð»Åûó°°NŽÂci·8Ž º:¬°Æì{Ú»fôgûM xPD�Bwú­?²$•ïñá>€DS.?"ºœ-Û@Ö¨XU(SU¬/5äã=હÞP jpp0ˆÜG"Yl d:Ǽ¡7.ß' ŸL6¢«�èºV¡R!®*Ù¶²X“|¦È`gñH¹¸|HyΆíŒ0•ÑÖ6k@Âñ¹Ñ“/ÁM¾|�ç�'fÀˆ#…GòZrŠth¬‡o¼ +á�& fòMXÉ+dv,5ïI'ôGÎ7«ui=÷r·jì·Vc‰ÕXo¯Æ:ˆdOP}kb€‘çÈ4RvWL©bªv®ª©WSàÔA¯Ç1•“ßøû¤›¯aKñºpzÐŒÊØo`‚ì ô°°Þ¿ í(`ç�¤¦«·Œ9̱gC¥ p¡g& #žPøþ‚wlPD¯IªUÏé°0QŸX�ŽVu´ˆ� +«#ÀSéž�!B\•u� ÊRº**º2Ê1= N“¢lhª€þì=m(7ÃÚ;\cã©Ô^ôEü:2»vuE„]ê=.úvï:oÚ°·Ýd€1j«: (`®nz©{¤ãb ìÞ‘# Ä¥øy˜^ƒ±¦7âAg—¸—ä{º·Ð:"%¤”[Á¡‰6Ë lÕÆg¼p‹{�{Ü~+n‹Ïox6ƒµ£5�õÆ@ß¹u|7qYuø0œXè¸ì#�Žû !wóåÈ­½©Fî¶Æ+ì®°Í÷�µq¼›ÅŽà|?6‹Mà¼Ãöx¦ƒeѹ3´pÓtpmÔ8W’KèàlCåécK&þsŒÔ&žžwwb$˜VÃM«úׯ†/"ÈË×Ö(½þIä°€6åL¢üÃ.èù=/¾WÃ1béÈñ>zŠä4, +8dXq°,p�,ÞbM¯Š…&’tAUÞ@þƒéDZ âžSú¦ð%T¸ÔèÙ­÷5�A+í»â +»Ì°¾1¼røÂ¨RÄç0è¯A¾Kàýü¨Çº$xç›ë ‚�xÚClÍ�—ëñ1�À Òßöû΢T[)g•nƾ뾷¨†\ý†G–Jš6ÀcŠpïbAJ�~\MCÂrˆ´œ‰zø!¥ål¨“øâ×$ÍHDÒ5ôÈJ~J5¡Zb×Ó�©¾ùJ`z|už’^¦’ÎÂßÐKÀ²ì +±oCðÝ$Á?,ŧ½³“¾, ã4־훸Ášˆ�˜ÖH*MóÞøÕ×&ÕõïÛ-b¯AæaÿÞp|RDµXé>œFµH\Ð ˆî¾Õ×U£•ôõºŸb|Í)©We0œû‚ŠÊ<¤:�,•t7; +þ³”/àŤ¿ÞѲ²Ú˶Óûyp³ÆÀ,ùËq'‰w§ÓéóyAŸGÀÀï +�W+” +Çã PQÁƒ•GDÏì/»ÀžsO°;á<w;ç­ª;½¨s!‚Uø¶è M�JÍ'šl–˜âáYq.Ö®2²µàÒÒ5U�߇mÂüS͸€Á�ÍW+Ó)dþ'Lµk̶³dRbÉ.êÐ’4iéqu¸�7³ âKj×a»f-F´R­ê´xÙ�b�Ÿq‘V’>…`ù ÑõJüë†ú +endstream +endobj +19 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +20 0 obj +<> +endobj +21 0 obj +<> +endobj +22 0 obj +<> +endobj +23 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x159 Do + +endstream +endobj +24 0 obj +11 +endobj +25 0 obj +<> +stream +xœ+ä +T(ä*äÒO4PH/VЯ043VpÉç +Bcí‘ +endstream +endobj +26 0 obj +34 +endobj +27 0 obj +<>>> /XObject <>>> +endobj +28 0 obj +<> +stream +xœ+ä +ä’× +endstream +endobj +29 0 obj +12 +endobj +30 0 obj +<<>> +endobj +31 0 obj +<> + /FontDescriptor 34 0 R /Subtype /CIDFontType2 /Type /Font /W + [0 [600 662 663 1002 708 260]]>> +endobj +32 0 obj +<> +stream +xœ]�ÍjÃ0 Çï~ +ÛC±“®·Ý%‡ucÙÀ±å̰ØFqyûù£t0� ?I}ñëð28�¿“W#F0ÖiÂÕo¤&œ­cM Úªx§ò«EÆ“xÜ׈ËàŒg]ü#×H;žµŸðÈ€¿‘F²n†Ã×u¬®q átë{ÐhR¹WnrAàE|tŠÛ¸Ÿ’ì/ãsmᦎ¤¼Æ5H…$ÝŒ¬ÉzèL²ž¡Óÿâ—ªšŒú–T²›œ=‰¶/ÔVj*�+�+=U•.‰„�¢t¹×Ëýòq˨�(íQ.XÈ£[‡�#²ª¼_p|À +endstream +endobj +33 0 obj +245 +endobj +34 0 obj +<> +endobj +35 0 obj +<> +stream +xœc`d```cp``bPHÏ©LãeüÒ Éa``Z‘‘š˜"àºÝ“��Y(f–àIgßäûù*¹%üæ §€ü _"'?9‘��ÓÈïòer+ +¬ßùK€| q Œ?™N103°30 * +ª* +*Æ1Îþ7ƒÑôßi¦SÍŒ™R¤�öw231èU™™™ +*››š˜‰‰ Šˆ‹*BÄMÔ”•ØØDE�E•!âÒ¼JÑÑ%Õ–<)J¼ÿÞ1+˜Ù™˜‹Îœi $¤%©ÏX®/SÀÁô·J_R Äÿ£e£ã©%«ÿ¯(t(Ôþ.fvCLûEEØ”MÔ ¶*¢¸Í±qFš"†:@«ƒ!.Q4üŠä†R]5YUe}o-ÙQ Ljë0Ö@]vó] q¹è ¿‰u67&FxØè©È¨i+|9×Xè\c 4çþ»T‹p7OFŽº¼´¬œQˆ‹GnÔ†!&h~+G Sf.`œ:(q>ˆò³ƒ0{{ ”Ôþ�Æél£ÈxÛÉÞZ«[�ÑÏÀpäm·T<¿ÍWfæ áË|ú tÌpõ¹‹Þ_ïÕ\oY$À¹‡ ¬¬�EçßnÑ¿Þ÷s½…Š#SCÓ4i¦é Ò̯€ôiF¸¼¯¤Ä@yŒ!yô5ƒÃQ43ÙX ¬·A +endstream +endobj +36 0 obj +555 +endobj +37 0 obj +<> +endobj +38 0 obj +<> +stream +xœ]TËŽÛ0 ¼û+tÜvDÊÚF€b{É¡4í8¶œ5ÐØ†ãò÷Õp[ ‡DôxHG²Ê×ã—ã4n®ü±ÎÝ)mn§~M·ù¾vÉ�ÓeœŠ�wýØmïOöß]Û¥(sòéqÛÒõ8 sÑ4®ü™_Þ¶õáž>÷ó9}*œså÷µOë8]ÜÓïסÓ}Yþ¤kš6W‡ƒëÓ�Ë}m—oí5¹Ò’Ÿ�}~?n�çœö�ñë±$çíyGIÝܧÛÒvim§K*šª:¸fEšúÿÞ½TL9Ý[»�j¦VU^Цç¥hbeq^2Þï€ï‰ïsìÉñÆéÉé{Æ1ë×VŸ¹5rëÄ8¡¦°¦ˆgñ�’¯à+9 +Ž2W‘[ïÈß¡ûFëK~m5_¿€C=z"ç�˜×sFo3Fâ¹g枯�{Öô¨é©Ó›'ôÁÇHN§®™[ƒCýúõÓÃY"f©[ò[ÌË\E®R³Ú�†³¯¢o '€#¬)¨)ä øÂ¾‚¾Ê3úà[¤† �³Ì.ÄÅpz๒£ÆáÙœ�À8 ò|¡N�Nå¾+ö]è›À7¥~…~e®Z.{‰õ¢ÿbþ“ãÁñ¬éQÓ“ïÁWîµb¯…óŠ�+öUôÝC›g¡?bþÐÃñ`8ýæ?5hÔ M¨G '0ÓÏ`{ÍX uŠé䙜¥ŸyÁþþ%ãSÇ�ôq‡t÷uÍׇ]\voàÆ§ôq·-ó‚,ûýß/x +endstream +endobj +39 0 obj +580 +endobj +40 0 obj +<> +stream +xœåZyx[Õ•¿÷=-¶lÉZ¬ÍÖö´oÖ.Ë’-¯rbÙŽ×,ŽíØqì$ŽIâ„ä# „ÊRÒ/¤ÐH +¡ Ú�a+ÚÒ…ah t€B)4L§ ýXÚ0CXJ,͹ï=Ù²“|_ÿå»zÒÕ{÷žåwÎù�ë Œ£fD¡Ð䶉ï~|f̯!D oÞºoÓ†gOàŽý074½qbJÞþd!kæj§a¢|s ß§á»}zÛî½ý¶ì›ðý0B8³uvr - Ù^�ïÛ&öî@7ârèà~ ì9ó_P/"d@Q£p0 +f ÿKîŽç~E½8W¥¦à>'Ès7ܧB¸/�ÔÆ1§Íg"u¥Hds‘)2ã”ZCaFŠ#wžÊÞºuûš={ö\1äÕñû~�÷GßÛ~|(zÏÑ£wÚ‰ü§ø/”i‘ !¡Õ�ÕFa55£ÑÀb »0…E­"lÞvÕ®Ë&fs�R]±¬R\îìýé™pC"-¹å+‡�ìÝØ6髦•ÒʃÛ{7ŒÀúÒ¼œ +ÂúvÖÒÉÕFkÙ­*E6«Óeƒ�Ô•šhT­ât°Šà«²„Õã‰@ÓQ?¹eËd*«PT˜¡c­Éd[O*u´¢Ü Õp ö†[n½1ì2¶¨Öûµ^ìœÝ23³eëô,X#)¼y¨Ï‘r±å¢ +vO)g¯gCV)YOëÍ]Ô{û¬tˆS:TC4ˆÔÖ&h'û¬ÚfUWjµ&J s �šŸ‰imsfÖÄOÉ Fú,ÝP’•¨ä´X+i+m¥_¡�&űªPýPëÙ`lm~ܬñzCŠÊÓ&¢rC“éç:UØë5…r£ÙÑh%+xœ¾ ìØ´D~ÞŠcr&´)XŠ.þÕ µúü ým©ÐÔõ¨JLý�î5>+ýp0å ©¹þˆ¬L SÆè¯³y"u¶u›?£àµ-žŒûüÇšNß«`oðµ2ÿ)øúsÀ´ŸÅ’Ë&¶ËJ $ž÷º«ÈϘ8V¤<κ»ä‡˜Â¼Ãwñn–„]=ÏüP —qÞn.ò1‹ej%ìoF¾",k£Ng<^ìm›Ë&Z¼=ÍcKDÓd–�^ع$�pÈÒ§uWppk&ÈÞZpRö.#q¤š�£J}!ÚîÕ1ŒNkµÞ+eÂ`äGuÔ~ƒÕV]m³æ®÷jý8 [ä†Y²¾§¶€ï=÷ý%¼ ¶ 2ÂïH…æ¡Þµ«ðápº&®…¹"¯.x´àFدrÂÃâ�Õ¤6Z©áR‹Ó æU³ì!_ÿ³kXm*¦ãIu<mc6¯êètZ½þ¨?Ùo5o“ÔÆªMåñΈGo1«5þ:&›pT3‘º›ÓS­ñ§¼=½?J@ß2bUa‘-ù̼uÿžÝ[÷ïÝÙ•nì‚!ùÚ͇:|ó×b»v°¯]DÈ™8 9S»$c’0Usî É\€mÜ•Xç ®¹ªù�™2ÔkÈÊJÄ¥`^¢¢„‰·LÞÔž=2³i*âÐDý;Ç}#�ÙA}IY`\2zßìÖûÖ5‡,Ns½ëÄíÃ7uG­BU…>fãå¥Nƒ¼Ö%¾Æ…bå¶áÑ!o=‰7Áû—ðeyî¯Éôsoà§á_ç šsV +E@—°¯“Íɬ}‰8§‡Hm�Wn>Zd±|\ ¿Vþ¦mhç®Ár·Çé–z}áþÈèˆÁJU^¢v×*ÓÍ«Z$=}ݺÁž°"f£ÕêSõŒçæ¼&ïjƒOߨÕÜO Òõë8»2ðö+ËRl7RE(“Q<¬šhLß©JM"î‹èŒ§Ff XOšÂ&§Íìö8`ÆoPc¶ÎýöaùoÅÄ�¬ÿX÷U·mª¯ŸjööÅjü¶ˆ3i^ÞlW(œ]’º}.»*ª X­Æ`Æ=5<³Åe–éµ~#ìµ…‡à[¢ Y2½0TùoJ>ëQ”°fÓê’ÃéÆz.ý²ïm¥»zd!T‡:¹H%öS�^Yꛨšó¤Â*å(ª&Ûp:©E¢³ÝíÝJŸB¡®»ÎcSšäÒ˜¤}5îqW(”1çUÉÜ#Ñ�€ö‹$°¦ð1õÎÆE_Qî$(¸ “bEïj’ÆüéÖ†�•~>ßYg@²nóY’ƾÛÒ±6ûÈž[bCÒ!r›ò›ÐÏеHNj*DuQZ1�kŒ‡ÁèºÓk®¯�ËtZƒ¹ÆÛèê‚y!`! 8mä±�H¸– •Dž<$¸¦¼ÔÂR»ßxà€Æ£•æh›¦¼¬5V&3ké?”½¦ÍßÔ¸TÒ\NØP¡m[Vª4Dªœ'Né €Üò2•|¸Ka–*˼^�ûÐóF¨LY•exC¹M®�‘¼y?IS$ÖyÌ‚@K+|!—DÕÕPcFFÆzvƒÓg¹ùæ�ÕIïž`dí¸Ë\m4EZ›êƒ¹C&<÷_ë+!ï;PÐç2ò–m�!&¢E|³ c aLõó45÷Sž’dµ<–ZBUçÞ„0ÅÎ"Ž˜ÿ$/G¯\’#¥ �íž#þHl�V‘ì]›Z ‰ç�™¾åøQRãßÞèájá6°Ÿq ×)X”Tó´�O)þœXÏ<ùñÇ!+ChçßaÁG|ÖPîtø5b@nÍvXÓ|é5,¼£b²*áQ쪮š>þø¹ O(މÉÊÀrÄ1¹Où׉—H_k7CŒXù\ÎwTÍ…-Õßï-3[þ!m2Òª¡YÖQ +ɺÜhTÞÍeêP‰²ìYÇš*uŸ}¾�ZÏÛ…¾tð.ÉË*U±Û6LP&ÅFúóË¿ù#G sŸÒ'õ—Ú¿:­tÁXs¿  +DÑ«ñPš¹k©«çÎq¶«€:úcØ×ÁÕѥ̳ˆ pS"jÆ!‡Â�mÓiKódëàÀ +w¨«G¨o�l�®o‰'Ó)WK%î�t�¸~ùu›ë›= áÌm·VZ¶­_~Y:18²ª×¡¾ý+ìÞ�ƒ)lV ]$¯Iœ‰ãèxQ6€e´ø  õ×8>¾?qϪ±€j U¥ Ø€¿“‹Ô €RçŸ2f;ÍwÐ'[ˆ“`�ØE{‚Å…Zua¡.DñÒË\¥N»n}ÕPk Ê"->FujáàG†ÀÞ�½ó9ÒDÚ­K´Z¶P¶a£ÓJRÁ¶nc[ýº‘ädÓÚ >»:ìM53©¡ 7HzšLoGMKÚõ뜓ý¾Œß˜SÎÆ˜;áÓÙÇVŒÏ€ D�‡XT›àBÞUc>¶½Øz—»ª {%øšÜ;OX«ÅB¯Ð�Ÿô¸G<¹ÎˆEûζ¥ d`[è,ŽŸ1|P«¸ vƸ€�áÊ'%£«´ BzTª))©”îé¸Z¦?¢KZµŸ¨ŒŒìÁáߢ.+D|î§5Cv׺~(×µÚûB8^ná¸ÙÜÃThîWýP‡^¦Œ\O¹(÷}¾…T¥¢�o+”§ÜÔ|¡âÎángã:°Aöˆ£@îÀ}.´ôÂÉ)ÆþŒíPUÈLËÛ}š¯Âìø²¡–e«2è<ÏúËïv{¥.ç½Dδfzzú2óýè“€ï¥ûQâºx²¡ À·îþVWï]»f·×ºô©ð5[w2֪Ì Fwdfiszû½"ѽˆÓj‰k`_ +ö­ UzI'µ¸?× L‡ÃÓƒ=›c±éžl2Ù‘­OIFïŸ�=9<|ßìì}£µ÷=zòäÑ£÷#Þ¦q°iUYt¶y¡!¹#Ný�½Ñ+&›Â ³+>ÒK¬Ç7¿;&ê§›$Vkï_Ù6Kƒá΂ì Ù!Á½…Ž—³žXÌ>ýÝxcu$*ì‘ɉ±mC½¾Wc ¼Âìs�#�ä2oÆUíLu�t/»aÍÓ£ò!Ö/¤Ï<zxØXff=QÈ“.U¡tŠìöIçc¶4¤=-ŽÁöXL¥³à¡W@«,?SU¤üÍÓ ÉmKÚ _Ê’mî]!+ãÉ;LêÊw„eÁ±e™ÍIbÃ:ðÍCÔëÿ„ovÍno¿yfêp6{x㎑‘ÙëÖq¾™÷Í}÷±¾¡QÖÅ`·*äBÑ…•Űã:šÕs¡U L–å±Xѵ1êÎø“þñc›;Ó�£×­¬si"Þº†L°¥·w"X—‘DWÅC­!µe¨)0�èjÍšl£-ã3ø¸!3%í™Xmkn¶+íöVõ×5® :“à~ìmÙP˜-ál†)¦ÒŒD`±†yÄ* ìùô‚ÒÜGZ`îÜÎÒV­öO�òª±FÔ�˜»­�cvl!|3�ø{ìöÖ ±‰“çª:@“÷bˆ«‰E˜y¼*–·ü+×,�gVçò›ÚIÔ·M¬ZÖ24Y@ïšÑ¶¬BP>ÜûþzsG¶nîÎÖ¾ž..ÇÖÃ[ö–À¾*ÆÊejúÇ澈  ø'ŸRWF#�ç¹zÍŸÃÿþcÏEyT&¸ãª æa"£ ×KøßÉ&½ªL–ö +5ÙØ(æmm3 ¦–ͦp“ŒZžŠ§ReU.µJ/0‡ŽÞQåÝ´±c¶iÙÑ+z¿¾£¯ [nØ·nh ƒ•!‰OãñÂß8°+*¶ÁÀ*ÓŒé}øôð"º¡üW±82ôSjU”>“úË>zçù¯s9ŸF'Ø5� +ž^Ã?8_ÓÛÙüq±šN�£¨…£>&üK“CIK€�Îûtþ¹ßU{4]o�õRÇçÀf±ùš¼ƶøB@/Ê"±‰&FülrØjlM»Û¼+-ÿro8UH$»½CsÒè^+ió›¬ñŒiyCSwÔ¹,˜jåSÊ`wMW¼ŒV¹[" ƒaͼ~ÿ úE/¦@ý‚SM†çNêâƒB–³àöÂi'ÌäÞ�kîé¢CC¸¾ø"þ©†ô ×÷ߟ? £WqŸ#OI4gU<ÙÕ•tÔÛíõ¯6 4U7%j›«9ü…ò›Ðklí5,í{Ÿüêï•ó'@ xî·Kƒ0»8Áƒý’\c1ÅÀþ7 üB Ø^¡!‘¾] di…Yþr§xÚ¿ÒnàÆr-aÆðÜðßTþ nl‚îZEqë0uÚGpå;Hï%�ßVž×9à~ÿ¢ó wû郄�%õ&.W±ù»Šx›dYî°}ÞÄb …�ÅŠ9Œo\.ÝÛÀ%óäö>‘«É-�OégÜëWKÆïÙÌ¥õ Ç&*2½– VÎ'wœÿ6Þ 6 ϳíKŠõb‹LÉ¡êèÄŸRªÀ¤ŽjE¹¨S¡/)µ*š%% ÆOÊÕý\_þ,n!G*©ÌPv£¹A«n4ïR˜Ëý^/S“{ó‡¸(Ää¿À�±uôO¸.,ÐÄ +T€ž4´â)oXmŽŽ7MÔmZKù£…ÿ8¦k]áŽ5Ùë­s¸ÕןÜêÜùÊ<�Ýó—ãWò‘|"……øõ#õõà7ÀådÿÎzQ.lÇ{~Ï?à·r7�¯a?º©¤«õÌÝÊ6·$VòçòòÂßÄÅ~!L!ù–•ú,…ÀLon>Kúzj#hœ´öµ íøoÔ!äpÄj¡ÿ-7„÷¸oûÛ{mO<ÆÆfÑ}‰8Ü)T·à>¸é¡ím�=Ñöž�ظ%9=2µ£U‹z;Žd‘¿Ù±—´ô ÇùÚέchEälŒ2?�pÙýc™ýßß´ãöî†á€¿A&T7EÝ˼†ôD»%XáÖE´CgªwwÌÞ´µiা�ƒ~møë¬~½Ð)²(kšÜJï‘Þãûf¿±kõ7†×Yò¹bŽî”{b¨NY®ÎkÌ2ÓxŪ5{Óé]'7ÏjŒ™íŽF,w$Í¿’ÉkV[b1Ö"4›%Ê‘€ê�« ÉaF†®Ay<ˆ'ð^|ƒzžzÛâ´„,)Ë)ƚϳ“?ŽðzøýjþwüžœÿýÒ/ {¼�ïÄwá»áßqþßóðïüüž!,”5O3°Ÿ´Ðk[P#dwŠƒ}¨XE=ªC ÐIe‘¾u¢>”D)àw�[¥èúehò£f`?r”€jÕ‘\œÄ ¢‚²¨-ƒër„>(P àº�`†8«aCz$€ª\yŠFV¤{©‘bPÚI�óÿøÕvÑY‚*àžOôŽÿu¼¢á¢é¿’éWeÁ“äúú{™À\Wî*ÉGò> +endobj +43 0 obj +<> +stream +xœ]SËŽÛ0 ¼û+tÜvL=6€ Ø^rèMûŽ,g 4¶¡8‡ü}5œÅè!ј&‡Ã±X¿¿çi3õ�¼ÄSÚÌ8ÍCN·åžc2çt™æjךaŠÛû“þÇk¿Vu)>=n[ºçq©ºÎÔ?ËËÛ–æéó°œÓ§ÊSÏCÊÓ|1O¿_O �îëú']Ó¼™¦:Ì�ÆB÷µ_¿õ×dj-~>åý´=žKÙ¿Œ_�5™VŸw”—!ÝÖ>¦ÜÏ—TuMs0Ý8ª4ÿ½s{–œÇøÖ窳CImšrT�ß).GÁ{â=p"N«¸%·�ârN!§³Öjí k_P;²vD¼e¼E>ù-øùø=s{øèU€WBNgK¯Zxe©ÙB³pvÁìŽØÖÔZzbá‰P›¨ÿôÁ‡–~¶ðS¨M M¨_ ßò»X|¦æ3úR³SÍœQtFæ8äXÆ-âBýý޳;Ì.Ô#Ð#äå¤6�6Klõ^±¶E­#¿Ó¾Ì).ùûmÆuÇ^~ìQ¼ç\VH—Ww[3Íéc¿×eE•þþ­‘úÿ +endstream +endobj +44 0 obj +494 +endobj +45 0 obj +<> +stream +xœåY‰“Õy¯{îkgv¦çØ9»{®�û꙽föí}hW÷±:VÚKÒ.+„²�É !$1°GWÀ6U&lc‚�È$q8ªpJÁă ªˆÂ¸ˆÃÎæëžžÑj¥�? ³õ¶û½îyß{ßñû~ß„BrÔ†”Ø>;¶û=öqB6BĆ©™›&}¿û$¼±!ë™é‰±q}à¹^„ìÐGÙiÐôÈ/@ÿYè{§g÷î;Ö#ûôß…þÅ™¹ícˆøÊ‹�ãuèÿivlßnt-þ!ç‹Ð÷€ÌÕá‹Ä9DÂPÚ@|´�^�.=ˆ¹Ò¯ˆsóÙ41Ž0r D>ï…à-.�Êr†ŒŸe9Úh¤)–‘Q“9�¦èò#’%Ë}Gˆr¹¨ö<ñ(¶‡ÌN§9TzIåqŸ[öV€•q¦ þ(Hq%'þ€3‡KLØÌqFþËü·‰©R ô`‘°ÆèŸ‰áC^CÈÂø¹L6—ã@>ÈzÙtÊLQ‚D6Àêˆ,‚“Ëd”é\ÇÆ¹kWPõ~gqYæÆ;êÉ ”ÒHÂéhKL5¼rdHBæRm…˜Ëç‹P›ê]\§�5ôv6÷“dcv�°° ^NH�h„Œ‚T^¨IFò[ÔÁë# ûæ—ñ”7™ô²éôO55´ÅJë4ŸXè ±‡õùÆïcçïá”NÔÙ\i³Ã¡ä@Ç&tö¹DÇiKº@,Ú¡AعLìš& É7µRS<ë\G3ä{Þí×à g�â`ÈÂuû¼êщ�c6÷¶w…»ëƒ¼n1¢þŒ÷£º²f ,—Êæ²¹4Å Уd²Ï‹Ãýžt�»fåÁƒnÖÄêõ½ª®u¸-m3Ðû—•ÎECRI»¼–Ÿ“DÄ‚ž”CE4ÌÏËÌï¯þ‡½X²¢úX~3r³pËø¼Í`WeÍ‚ÊF6™�å{aߦOÿØÕn�¥‘¦É]lÞR—py½®z«Î¤59·M«ýJ�¹Žºi|ôž[ƒg0àr›Ö ë÷šê�qMRu˜¥“ýP~ÝX­Öá`,ÆdV[о�í–Ùk 5#=£ÓøãÖl®³+—i+­J¥<6µ‡}åÀ÷oó^ eüUç6"®•÷‡?$çö>40ôí=×]Û–7%ë·ôoœKv% †ÐvÕèÙ¹™³›ŠI’n }çÔ©ΰEçtäÃb¬‘kÌ?ÀbÌ•ŽÅ—bÌm +½‡Çà?–Bo´t3Dþ]Z|.Ð�š”–óa…Á�q+aEÍ¢Œ\.pin“Å’+ë›Kór¹Å\ oä¢�(µÒv8ŠhqÉš- q›ÃB~¤t=S÷™Fméei‹ÖÖØ¥Ô8Áí¾ç8Π18—5ºmµ޳ü�ÃÆq´Úáê\«±i â-zÎB,¨‘EÐt5Þ‹¼'÷½ãо£‡4ÅâMÐTÇŽ?zôøñc­s;wÍÌìÚ9‡Êq…¿"¼€KãŠ7^Å uD%¢H& ÁsÎ$5µä¯+¶PŽ:�^ty8[3+7�ŽÄÒõ!/—5|?ÂGÁÛŒxlfäï.CHaÕ26�]Ø8Ècbß/ŸÞ»¼ajÇŽÉÆŠ±~ð7×<±¹pöĉ»^˜?X6JÃŒ¤‘y̰¿úœ1mïrB™ªÁ�ÉתÝNû´.—”ô©ôRªÓN¶oÓ¨IRªVG$Òù‡Z§Khfö:üøˆÁ¦°ªoóØlœ;K¿ñ¦Œ¶ˆÿ^­S‘ä8g²´ ”ž-ã!Øgñ%ÄAT°O€•³U$–›–§³W³Úñ¦^³Òñ3¹‘5Ç=’O !7w7ŽMï¸'‰¤šÃaU20Ä©œnB¶rOÕÄ¢5¾ðáS÷éß9>91>½}g»L†5P¢Æ¯@aÃeèË#.¡çwþ€€¸üàgø�àgìÒx®´Ñ9s9¢½»[Ûç:Ç&¨†ŒÆaƒ¨mhÍ 4šú5*î¦É™[2ùˆÙoc›¼�±ÕqFaÕÙÒŒ 3Þ§ ‹â}ä’OS´¹,�Ǽ´ %œ:xû¡g¿Qzžì,dz ö­o|ߥT'o?~âæÓãL nÃýƒkVUt¹ãK¯x)ª‚_uòê ÄRI Q,(I"Q.É!Ø/$BÃkíl]sÈÏ(¯–H€ÃæÁW€÷€à°�%[ñRþ,üƒÔ‘¬½sMJÿ¬ÚCI°“txäd§NCàZ²C"óÒ’—8èšêâ…-}›"Ã~¾®7szJa•?çO˜¨´â•Ki6`ŽÃž`i²wGñë}l†õxÅØVrÅB.Å˟Ψ|4ΆhYT›¤R½|™Tf68Ï›LÃ)ü#§‘ã<«â§že6kÞôZ‡N¯ôJ”&ÛÆÀ¶·€þ=(Rá(|šKƒK‰rDŸ‚"»,þ²m玱†J.‘$hÅg¿Yò²Ciî«iŽDšS ‡Ožº3Æ8º¬¹zŠ›¿ÝíTqCÁDÿÄÔö�|<[]øtA� �Ÿ8¯ÂO*Aiàýúiž›0™Ìï书„‡ü¤ýÚ¾KÄä«Ó…�IüxØÂÍ¿¿a¢^°­ bä%ÀÏêβi!&xKVz5—ó[2[„þG³£žˆ¡9™‰gºGÖÜ0Ö:ÈÆs‘ˆ'iiÉWïQS´G]è :è�Í1X^n[6•s»)�Ëhéo]¹I�´¶4ò¾�…|Äæh + i+-¯Å�{-V•¬EƒŸ)½ûŒË¡�5KëñS® õ»áÒZØó·e)�ŸFÓU†UÆÏ*qåS[ÍmdvŒD.ÑØ}úßÜõ/5>kméÇ�‡Œd?wJCÈvŽSÙÊ: çˆó? +¹8®–ÒXãk4´Ædäp𠳊õŒ°e=Và‰EXSUdŒ¸—5)Ê “!OÆ9ØÒÔ±rU× +¶íšîk¦ +y*¨oªë)N­+Þ¬ +·{˜úÚÕë +±tžu¶&óRÅ$›p´ÅâQgÊ/gQOtXL ­òx‰÷<‘D8ì$?ð;¯™¥®ÕØÄû;Wz©mpE×Ka`£#×�qò2À^ø#ÿ%|†Y«þRÙ¥H5yYF3öúõÛv¶õºnQ™kmÔÑ£Ýq�,o^æÛ4edLíz¿=ב[Vú®È›U`×ÛÁ®öjæ­øˆ… ð(XÞÈC�x‡£ŒD^”sÒ¢\ÂD‡¡ �ÔKXütáå— ´þBÕ!pò%Àêö«sñ¯¥ä_ËÐsCµJSªÉ]AY�ß°”²‡C–OÙƒ‘Ëx{ =ðË%ÈK -àî‚Až%X.ËÀ–jöå™5ëø� åEè£åS¤ß)¥Vbîmß1=ÖØm–CJµ›•©H$Ù_R§%Ô'�5Ž3-ÚŽ˜}Ø®j;å/Y�r½À•úyÕ‚TpþÃh¨ÿ·ü\€k¼ýR‚Ï;)Wd"¦Uö š´ìQrˆ °ëçý[¢)vYÎÓÈ ÷:ÚZÃA¯O[X¶{v×þuíÁ ÑÁ­*&ëñÛÚêÚû +#ÙB´;Žq}«‡ŠÍò@wS~eÊ\ö%¾Ž³À¾ÒWÛ¤œ+<´œ…`hqa‡×‡)–º¨°°w)= #¥ÿ†‘JÙ×_üBôe'˜®ï¿_õé"~ýV8ãAF2MîŽ>ÅÏacé� {<3!we•Íá´L_^†�G윎”?ë`¥O°ãØôt‚Ñ–Úþ™”H)›YeQ>�ß*¥:òq÷ÕÓqM0êW +²ƒÀþR>7ºd�ªA¦Æ +JË«öEÿ†`ÄK%ê馻ݟ6Ç<øfi£BRkýµ^ßêÞ{w|pTÅæÜ,ãhð:; ý½j ~ÌÔš~"SîÚվ޳–s>_¯Ÿ'ÞA5|vXÄð…@»¬*9ºç[ýýߺnæ�¡åÌlØ´yhH5úÄÜÜ™�ÏÎÍ�mìĉG=qâ± +ßÞ|�»Jí„»\�¹¼T<³LŒ€Ê™ZZšäƒ*ó³,Ðz¸.k%u¹þLи>xyÉR:P›ô7šåöTª>ÒójÐÏI ^÷Ý®±”qe+躎G±«Õ WbI¹M;Òth†ñPù=Ö¾Ö\1Pñ«=ÛZ¦Ûãq£pÃð x§�ør£pEŸB&\D[äW}r³ûúvØ®™ž¶!6Û¡vØ›»d¦bzãìõsþh2lÏkq«ª÷�½+NîÊ»ÓwÜÕ¸ëV­õš±]G:–¯éwN½�/Ä7�ÞÁo-†Å±3Ž©0“H0áƒä>ðÈùÛÀElé�8—h¤Â ªn.U!i—Tp?zá‚Ë\¨éó‰ [úÏæ_ñ!E t@€\¨¾êÕ9Þ©�ô=LG�)þÌKð°òÝK�®!u›ÚÒ™ZsMn²§çÚvO笋IëpC,WÑi§Ù%�0ã ìœè™ÍwÝÊS³<ás¼nõªãåxö�šD,Þ“ÁWÖ¦‚ˆ|4Þ Qïêη_ý<.ŠQ�[\í–OàH!*/;r+ŸÈaÃÊ™ÌHGK[drÍÎ]½… ßõÑT½»>ÒàHç;™hA•Y˵­ ÙuM±U™í-]žðæü–iüCª%éÌ0m‰LciOW.ÙΚ;3M½ GÖ¥…uýß±iÝ�ÏŒ®Ý•Jͬm`˜\ƒ—-Çæ† ÕØ<}ZŒM¨SØxaÓŒX-œÅªÒed²)þ·Ò§Ä¦têÍäüÏô>„uÔ_åL¯z¤—[ ×0â'÷ÿõȪ'oÞ £µ¥mvÓØ FŸÁËjq“Öíh¾±zÀǦòß9uêaRr_Ð 5døŒÝ2mè»­ÓŽ*·Â`à8{lþYT–+ ƒÜÔer…‚ÙEXª'M‹+gºzÒ„ÕÏ)i§YZd’¢B¯!åzå½G v©œÒp¤ÌM[°Ôè¤uïùÞIb+Ô”PÐÚ�lùÊÓèÄO—n‹oªóN$ÞÕ0Š:Š?kšÿ ~§Fe�'…j�„‚« éaD‡nE x%Ãûð|/ñ*qÞã÷$> +stream +xœíioÜÆõûüŠE¿”,²Ô'0 ÄWŽÆiœ¨ Ú$Y’�è°µr›üû¾c.^«•ÖA›¢6Lï’3oÞ¼û®ZIø»Vpé[µ:¾oÅÛÕÁ—G77'×—«ãÍêà�j»Õæørup$Wg�¬·4þúdu*^ˆ«·Âv�¶+ëVm¯çܪƒ;¶×8æ›Õ¥P+ü{}¶ &¡k„#g#Ùô«ø/ƒJK_¬¬ñ�Ô¿œ§/NÂä<@Îß_ V,¦Ó÷BÛSBˆßÇNÿTl$.ô»ÞŠl”Á?«é‡Œ÷£Cáï½³KTúæ]’{Õ(绾_^ˆƒÓµ\KˆÃSñmõm½6]õ¤V®ú¨6Õ×õZµÕ'õº«¾¯¿?üL¬Uã­”m¿ZÃvµ”€¼L?®•¯^Õë¾::¯×º­^ÃÕTº6m%ñ¢ðbð’àim¥Y­a«íJpŸÖº«Öµ’ŒQƒx0ĸúê¦6²:­�æAoᦫÞáò4JTÇp_ó°ë#Y]âà |rÕ¸ÊêªV¦º¾©u0’wE…'g,øîñ%ޏ>«��Ûøàë7G—«Vß¼;:?<ùåfõàôäôTÊ®ƒÇW®=yÌ“´|¦ÇhL#·gaÞN Y�+í,ß5ʺíÍì ʸGµÕx è0”¬×ÖôÝØ\k[šéÚ¡‘wh™[Óßn¤ +ԾƘTè JçMWgU ”�ˆšU¨gÊŠU;¤jgçµI£ó²m»DUkoS )á%EFSÂ'¥Tà @afÌÍXžç´^a“�á£�,ÁLDJŽEJýíÁ=ùmÊ’DP²]�\ÂÑ7í¹‰Œ7ƒ$m5�Ô�WÌ»º› ”ã¹’Í S�¨eGFœ�õK;KÞ–F3{¢-FŒèE;cè™F#m œ[¶šH(ð ðg™P· C‚æ'�à <#kh:ˆù\ƒ˜˜–ý³«'Dzvô¼CÞ-óáu­e�8Bç£:’à(d�"±�Æ>13šŸ'éÉdZXTgè[iÚÄÁf1€tBÝCJ—/ëvR؇ñGµHÊBÐÅ6�@´­¯ežÎÖ|ª ,ŒRÎVTN-IGyï|%Yß|A½©àªÃ•vÈÄ'Æý«ü õŸkä~“t‚@÷˜’4é*™èxdÌ6 +¢5‰àËEÒŒÏÎ2ñC-üŒL,ŠÄµ_’1'¼œ5/øä¤”±…¹jæ:J=¾År—ç0bnõ°>ü‰Ø‚ó°—ü1¥o¯²ñ8çÚ†.]Éc$T©CXYXù£Úô"° 4?åç ‰X ýóÄ#�Åà'µÕq0QlªÑBÅò�'ðfô÷ºíøô›ÚéÀž«˜—¶0ž¬K¶ó,0¤„�í"Úˆg”ç(×Y +Õ`™á…x]�èP%¤ãC)?ÅÔ¹P�Lø«X{I 'kQA +‹é³l^ +óH\¤¡<ˆt¬X=¨óæ,‡ÑŒBÖéû§È½§XdÉ—äP _�#´iŽŸn„,…f@³¼÷ zçC“͒ǘª\Á®~êCª=E7ÅQ»ÁŒºW“$Ÿˆþ U i/3‰²  +Ag²5À›m´$9" ænŽ��Ž"rOW {ü¼ÂàÉ! |$VjÝ�]i4«SaDÎFö>[ÛÏ`³=Y[#eÿ™4ô˜,ö«¬u¬'›+"þ%ÖM$›Þ¸î_Iò…ÇÌT±è}âQ,êN‘Ý{DÅÍ Vq³j=ç +4Ù�ó¬Ù9L¡›´]–жÌ(¬ˆ9;VÑÚåŒpêB¢É"¢Œ}^µT™?e4Iµ]鏯vhl•‘(4&8›³´á°¡°²g:/bUZÁ5ù¿'yyÆœü�È"ñ2è&ƒ�U‚ñ-€Ó€ÐÔ ´ôUëˆróL�Ì5²1³ÄX414i…õc°|»@š•–”¤˜Â€fY‘ð»2˜uªÇŒžÖ!fxÖïcOeb/Ö\ ÿ-ØSHm!·õ“j1‡¬Ç”Iß%)Ôv>ÊÎ*/R°ªÚ…ÁlzCÜó3yë‘b;È¡qЬãÓa$Þ¬3Ǽ„p²•‚)ýyMi!Ž98$¿H±O2 sTØË¥'¶Ÿ¶Ÿ&„ï*ê+1š„Q^ü»šžíbFÅ¢½«e@;°£w5£"åͳJV~Ö²B· +÷éO«íýiUö§•™ØnŠxtèY``§ß³V® 9°îz,Nþßgù˜ºÙÿ^ùØÃX·Vo—�h©%u#ͤïQÖ®_ ­ô|#F»d)>evL¦ågÃg +.\Ðä)‹Ïaò`ÙrÏ[q?r•`Å›qF˜ ÖWµíØ>>ÎéS±«…`YŒtƒè´ÎURÊ–‹�Î{ƒÐu°{9ãü+@Å! ëÔû�òÇU’ Îlªoˆ�¯²­¼’ ¿`:dl‰·³Ÿ¤œ"‰‘q5!¶Yaë*kæ*ë:Q5“Ž’CZ lWÄ|ˆpg†Íï… gãT¤t„¥(V‰Óf S…“ר.n/Ú„Ê”ˆá}+S¢,jðñÃ*H?¨‚ŒŠ VlS.ΆUtù4�M=�œÍ§q¢Øñè÷UqSYÄ(ÌêU¿»›/‹@ªÞ‡{¡xLÿ;HOP.�+E6¯³_+¡±ˆðuKq¥t«œÞÍ»«‚O£f?y2PxQ%KéÙàdÅ“ â:wø¢W‹n�öEséùéÞî,s<–õͤi“=$NÎNø¥„tÞšI�a·hä7ù™dZäÅèi—Þäj[޽ÅÖª.ô±–I]7x4+�— IlGyEÑØ,ª>3ÒØ ‰Kq,vν/™Í²xÏf³�f³mÛߥG�ÉÑ^ºÉ©À}ù˜Ç|›wûûV½|k]ã»e»:8$Z(î1›o²k%Ê©RÑ’Š_ry"†–›‹šßÐÃÀú®yºHJ<—’óÐÒ$5è ÿ`Á{ÀO$WA€7Ö¹(ÁõåÇ)ˆ)ßјößŶÔÓ¥Ô²O_Yæ&Kqë¾\ ¹?8'™„oÿŽ–NæÝà¸óݤåqÝ$ÊÚ?ñEZ”EÀ‘j–ËuÕy-- ÷Eu‚¦ÕÂbc:î“¢Éø’Ý2­âÑ«Ûñ�™ú?çm½J%·œrg]¢³5A•øPáàÀÔËaû×Z E¥R%Õ CÕQ'¯°Žº Šdu°<åɨ¥p=öD†><è«)ìý r¢Ðô{*úlY+ô�xw¹Š@‡m£yý‘ß´š9…s# –­À䥮u~ô=T—¤ ÁŠÕ=Äýdïs8tG…�‡=½•°�ٌ㾶 нÕLhº¯[µ:Ò²U[ݪ’øFA8~S¤+ÅqS"¸ž>n²˜=JS!b¯¸ô½·n^¨£�ëá…ö-œd™÷æ­(µüºÐ 1ÖÂòuÅ;)¡Xpų‡çµr°v¯½Ú_+µkC€f�û_tÃÂíÝýs·,úb�¡“Ó“´HAŠVŠô’ˆñrøšGV8râAÕþN‡ß¶œ�þJcqÖºð�ygSù¨ÆçìüãÓ%à¯{P%ûâ¸(ÚLÛºHBÊBVí‰>ËE¹ýúiÁã¯X)ͤò9fCñ¢MîVÍž”Å}ªŽóEG±­ê¸c_°tܶt!vì b'b®BÃïÖÊ©9r{#pÒ‹¼W+R,v“ ϙ϶Åú�[Ú�Ê‹;ô$aÅÍðô¦À˜.„ÆÜ©¨?Ök[°0µ1EáÂfýÑ|S3º³]{šb±©9îiúú=õ4µ�MȉÛu6Ý¿Š¸]Ü—…mغ¼½s)vl]Þ޹ľó¤uÉV_ⱦScÍòïÜÓÔÄêÜÙ,O%ÞâêÞwsS{Ùo1sÆ yÞ[ã"49À €â�áËåóåÃOqŸ—ä§nøL6ÄÆÀô2¬H¸àÑšÌs<•gÉ«R´b:Œ~Ã«Îøžzz;øyð§š~†$®Ä³ËÛåç³Ú`0 +”}V t¸!ÀÂÐL{~òˆÆ3øó覸ÓǯÔâOkÄw…�·*ýV @¨Ük:Ë�¶¿â²¸g‰ñEø¬Â»µ®1²§WO]×´ø¢¼-`_ãϪ0fì!´jœq­2…§uKí"üMéÀ+Ÿp™¼T¡'èLl¢ðAªðÓ!ʤ)–ÐnÃôp®RW­ðµë“�AŠ)NKULéz!þ ކ¦´ +endstream +endobj +49 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +50 0 obj +<> +endobj +51 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x147 Do + +endstream +endobj +52 0 obj +<> /Length + 26 0 R /Resources 53 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ045TpÉç +BcÑŽ +endstream +endobj +53 0 obj +<>>> /XObject <>>> +endobj +54 0 obj +<> /Length + 29 0 R /Resources 55 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +55 0 obj +<<>> +endobj +56 0 obj +<> + /FontDescriptor 59 0 R /Subtype /CIDFontType2 /Type /Font /W + [0 [582 719 719]]>> +endobj +57 0 obj +<> +stream +xœ]�ÁŠÃ †ï>ÅÛC1ñ„Ò½äÐîÒì>€Ñ1+4*sÈÛ¯šÒ…(üÎÿ ¿Ã/ýGï]þEA˜À:o—°’FqržµŒÓé©ê­gÏð°- çÞÛÀºø=7—DÎ&ŒxdÀ?É 9?Ááç2ìOÃãgô &%´yÜUÅ›šx…O½É}—¶SÆþß[DU·{$ .Qi$å'd]“KBgsI†Þ¼õÅN�Vÿ*ªî¶¸ÇFȪĮÚÊ>]eJùò+¢^‰rºº—«r_«‹!ªž?ÃsÓ +endstream +endobj +58 0 obj +228 +endobj +59 0 obj +<> +endobj +60 0 obj +<> +stream +xœc`d```cp``bPHÏ©LûtÄ„(’ÃÀÀè�‘š˜" ¾ÝÈ^3Ë +ðx°oòŸù*¹%ìOª˜8€|žœüäD [ˆE€|�ÜÄŠ Æ7@¾ +�¯´#¨÷Ó)fvcAEAUEAÅPÆÙÿf0šþ;Ítꯙ1S +#ƒ0PÏ>fF# *Sc#33SAeScS3c#qcA11ccQE¨„“²›¨¨±¨2TBXŒ_Q<2²©ÇN¿A\‰�çß&>%qFq]£ÚZqE~ASNÆ8¶œrοu22œ¦`�ë"VºvN.ÿ�„€.F¸ÃÓbb¢"lÊ&jj`ÛÑ…á–àDMW~ 5#Æd°£ñuèi„kDÕeTõ…Í´€®øwWÌA ¸bb`àèWÞÏoó•�™ùP„á2Ÿþ}õ¹‹ì_�Õ\oY4�jÙ€jA:ÀúXtþÝa`àý«ów?×[¨803¹1„2�ga¨˜o¥°jf†×  DÑô²3°€hh{ +endstream +endobj +61 0 obj +428 +endobj +62 0 obj +4266 +endobj +63 0 obj +<> +stream +xœíioÜÆõ;‘OË&KÍÉ!À-ÛEÒØMlµš…*­ŽD—µ«\è�ï;f8oIîJö:ÚÆ¶è9ß¼y÷¼éRÁß¹†OëtytY¼-Þ–{_®V‹Û«òhYîÝhkËåÑU¹w¨ÊÓe�|çiüí¢<)¾*¾*ß¾©�/}(]kêBÙ@‹o Žùº¼*t‰oO7ƒÉ@è›à¨:øDÕm™~2¨~éËÒÛ®V&`墯m “‹9×ÏÖVÓ©.!¸ÚZ !Õ‡Nþ$6’ú¯ÞŠªAàO9.d¼Ÿ]Ýu]ð KT_k›Ú©ù t:tMW\{'s5W 'Å7³oª¹mf¯+kf/*£gûÕ<ÌLeÝL÷Ÿ?ßUß|²3wuÛ*Ý…òàxÓü'xü4“óCת{çÓT5˜?7µòJùrÞÖªSÈ'ÀÐäÃ[(Ï®iøÞ››Ã«òÑ£rïÉÑêîðâ`ñóª|t²89Qªià§{\>~\>}¶ÏdÑ‘,�kûH)e#”ç/÷Tƒôì´²~vQÍ���Ó÷ºÒ–i§zÚ™Œ;°Û)¥]äS®6¾îˆQ¶mkÝ$F}‡Q³¾í¬¬æ^i ÔܘÙâÚôlq»¸‚‚™UÍl±¬t€a´”‰k˜ ÜéHÀ8ôÀ-ÁîÓ¾˸NÍ^Á26„Ào+Xñ’P9„æf¶ª¬¢-›Ù�U�³"¨ gÕAË%˜n¡ÐÍU`ðQeU—œñÝ Á e5à;%Â:3ã“ÊøÇ´µ3¾é€!¹ˆ}À.íåÀ¹é�úA·@¤Ú6J·ÝÚ ¢"X ãMcЀí/d@rÀ÷¶¢mÍ­��a ÈŠCŸ€Ÿ8½ xç•i!à»ÐEêŒ A!4%ˆ½n”QÝpWÀªŒ£sE”?®€]8$ä! Ò�þh=\5�)Y#”öµ þ�ið9ÉåkðþX-v ” »§Íwµ‚_ì}ÞÔõŽ6ï»XµëæMm�W>làùï´y­QôLh·p~J�}çjß!6#+.tÙŒtù³ +t–•�µ²Wk;Pë"êµ½j�V‡jÐTŠjÝd•Ôºeµ.¶ëµSÄ{j4hìv½^ãÊ4£‰büŠ·¶ðŠIœ÷Ê*Ò¤ »®mÇÚ”²6Œ™�ý¡êmº˜ v• ùf~‚wBËÔ‚Äùë¸ÎDøéø3ÓÜÍ¥‰­ÉŠXA ´Ñ=âÛ´¾r +aÉB²H8?£>n]‰2u¾A~ž£­þ•`ÑO;¨€³/©¿Su1µyÑkFî;EßW÷;€j�æPÂ&C)ÙG“rÿYfïš~l�ƒi)Ñ)‹ÀRï¿°íº'ʺ�@ý Aqà c8üü¥G�€°: ,?A-¢Kض.Öh’÷ÀSÄN¸�úˆ\Ë­ËŠ˜—�7…“ÉôZ®Hb„/bŠÿ�Ða4ï�„™VL‚3¬á¾ÁGÁwèó +×e­ ýç ²iu†Ð%@páJ­s”½SðÚ[=c,*›=“-Ä ^´Xc1=»»Åh[0É dwDH+Ãém}JêD‹GÅrßDr#^GËDÂó˜ìòšfÛPðˆ»C"ùEå²J“X1 C,² +#’2÷¸[’:cßÕi•”è5�L¼}´ÛSñvT~uuÔ+O–Ç¡5Äm Ù®š5¾ÇÕµ.KD¡.ÀÉwT¸ç�šÁgÐ�›Ø:,d°Mƒ%@·ã:<¬AÈØÝ·\ô-ütg´ÄI¹ál¸Q„ÓA¬ û–‹¾Å€óiZ‚“Ô%5LÀ�£ßvA% …Î8—$4ÖBq +¨gã�ÉNÕe¥À‰¾f—r±¡ã>zØ^l�ð0JeóPÐÛ1zHy€‘Í_ˆ0¢ãçN%æê èZQv¢ìå*�è­V”;QVC®¤}ÑaÅžF+oX¸Ç¨�(·¬7-œ0r¢Ã‹r#ÊÓ[Ž “+OråcêœÓÀùû—‹ šxpÅÖASÓ6ì`Fï:bôŽ[Øz3FOóæß‚ÇÌvPùŸô}F-O¨| Êo¨ü•ÿAåçR>n»6ìà>Ûõ`³XŒÌÜŽ¶kj èÍÿˆÞ�c\oñì‰å£byEå•�yÝ=ª< ‚À›Z©|!–y&ÚW¹œôæ uœSù×~ýÿ3¡{�Êý‰dã!ö4­6¹¢0N*¿¡såQ…çk<ÜžÓ aE§’_ª0+÷©�G˜rVd)‡€-Ç•�cÇmJ#awˆ <¾?-Líµ[rï9¶0¡Un*sô†ÓUƒD +¿ùÌgw:â¸mé`¤U“ÔÛP©+:rÓ‡ã|ž_Â&¦=&s—ˆrJó|/ó|Ø_`šŽw{×çZhÇ Mä'iT±F Ji0N9¥"óÚéˆ)fRŠÙ�?§æ%w„Ì & /,Î�µ Ý›Þ.]§‹€Ä‰LÌIuÌIF"€0D¨Àj×Ræ¼£ëÜŒJ2OiUa…¸NêÊ zcÐ? U°4 +c3±Q"º°V5[²‘!K�P¿³ç&º¤|SõuLœœn¶æt˜ÌȾ°iRÃF*GÌÜggÙ­õä@,Æ]´ê«þ&‡G -îÚ�î×hê·Ú˜.êíðzæÛjÚM䈘mÆ'Á"‘ ÄPÿ"î£×=Û~Jß‹*üx)¯š°»¾;ÕE}÷ÊÔÚ�ÄþöúΊÙà#„Æ�Þ>ìd +’œë¦ Þó¯)üˆ¦;*<(UTx¯ý†G:Qᵂ“’2ÍðIÇ +¿‹Âc§ Q>>> /Font + <> + /Pattern <>>> +endobj +65 0 obj +<> +endobj +66 0 obj +<> +endobj +67 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x135 Do + +endstream +endobj +68 0 obj +<> +stream +xœ+ä +T(ä*äÒO4PH/VЯ04¶TpÉç +Bd” +endstream +endobj +69 0 obj +<>>> /XObject <>>> +endobj +70 0 obj +<> +stream +xœ+ä +ä’× +endstream +endobj +71 0 obj +<<>> +endobj +72 0 obj +<> +endobj +73 0 obj +<> +stream +xœ]’Mnƒ0F÷>…—é"‚€± !Ué†EÔ´{H‘ŠAYäöõø‹R©‹Ä�ñŒçYžìÐ>·~\eöf{¤U£w�Îó%X’=�F/v…t£]o_éßNÝ"²X|¼žWšZ?Ì¢®eö7Ïk¸ÊÍ“›{zRÊì-8 +£?ÉÍ×áˆÐñ²,?4‘_e.šF:âq/ÝòÚM$³T¼m]Ü×ë6–ýe|^’EúÞAÉÎŽÎKg)tþD¢ÎóFÖÃÐòîß^©PÒö» ¢.85Ïã"êr—8.‘ pÁ\‚Kfä—)_�s®˜5X3°a~?2ïÁûÈE‡žÙ�]dcÇEÔzUÜ«Àñ‚µB\q\Á_±çŠ�z)îUuˆw‡³bg7Ãnw4|G�Í9gj>Ó ¯á¾¬™ ¸ìfPkR-Ü4»iÜKó½4Ü4»¸Å…îöBü„> +stream +xœåy{xUš÷yÏ©êªêkõ-ÝIÒ�4 IH4’HYDÔ„1$�„äN¼0!b&!!&I0"î °®ƒQ‰~ŽÃÌ‡Š»›qÜ�A‡ñâ8FG¤+ûžê—Ù™Ý}žïy¾¶:ç^§ê½þÎûVBÌd+a$¸tUåš÷¿Ú{ˆ3!tÑÒM‚Ãß¿ñŸ I;ƒã­ËÖÔ¬òèǦ’^EˆéHÍ=÷-ëo�!âž%Ä÷»Úêʪ“Ò��Ãp.·'¬NÅñB�¨]µ¡î ”ö9vëp¼ãž{—V._wïBF +8žµª²n }[ž�ãÀqpͺê5wÌûí“8¾‡6•Pò.¶ßŠH­Då™ÿ¹MéÝÒ0¨dXZwMÐ AîV,Ý&÷A_Ÿï¸�Ýê–gŸe§5™M™”fö ^€YÞf/¥Ÿ™/š)Üb2Òœc¦/š�~î»ä£Lò€5d3¡©ÜM—Òs¤•ì5vj-C‰\+×ÉÇåwe‘�¢�B2¸8ìj·Ó� –Ú-É>™Z¨ìö–…¾�EÐþU°uØv1e:Ùn‰IŸ…Ò^“LñA² Ùm¹a¹ñ³*Ji±a–\XØHâ^öÀé~n·|1bx<ïœ)_›¸=)A4]âTIt²OB R·Ç5$MXñðc‡¿:Ñû±~Ü_=U—Öºþ'/‰Ï4¬ÚôЦnúÁʳ/¾©_†'`ÄàФEõãúƒ/êïîk{èQÑf­h&R‹0 ЀN)#¬[d@]L&~=ƒÃ,±IÜ-Š2ù9slòd´TRX€@~Å8C('$Xãï¤Yñ•¬H´_úZøÆÐ!#ûQ‡aÔ¡�Œ&Qò§X]…fšÄ™1pÇØ8Ø]j&PŽ”ÞåÉrHUݹÄ*�ñ�=¦dŒ`fcº§úkü”øùŠßo +u׺�^aÏèI�b°Ä@òú¼TVü +•~••ŒÞêí<ëpçz'mg ÐÑÊϽ,óG WÄ£v’NQNp…Xs"ÂÕ·¸LÅÞš:ÇȹpG¥"´sLÊÏ� R0¿6�æ”’€ÎÁgê<Ü’>rò4fèÓäõ §>ÁëIú ýfçú૯Ç÷wll{·÷¹³;õËâ�7M ¶,)ož4»Ü®ùôš O¬f¦±ÿÒôË3Ÿ¾öË ÿçͧ·½æ§#ýáÜÙã+ê*»±$wøŽù§ëÞ¶ôqTèóƒç„�¸})D^ŽM¼Ë[ãÝìÝíj¬›­>Gò›á¸À§à±çŸå§~@3ÚÁh;º÷¦b|Âcì©Ý²�p7ž 4Ï2ËBYú‹ŒÇ ?-^ U©ã’;O,ly�fŠ\‘ì1.Y5~öOáGã@ÂK"|&)Dî†{”AÆÑÞ‡PÆÅ¦PCŽØŸÊÖßÿÔá¯Î¾xú¢~ú›ýui-ž~SسemÓö{»×Ò§Ñ=~ Š~�þþfOÞ…épÿk�qà‡<¾˜ûG¹( +‡ðlŒÄRØä3Âkf‰œQèÏLgdÆlVîÇg⟒ì‚�µ`É rbÔ%ê+·éË`Ï6褻ôèÞ{ôeFák¤õè¶à=Ê(�Ý9!Ö?DÀ¹.”¸Go ‡ÐGI‹Y úæ{1Dxo($…ýÆ¡¥‡öìÑ$Št/A¿^…{$2*æ¡ÃÄ�j¢õ1&+¬~hë1õ q~ä#}]†LÌä7±­ + +˜™ (&EÊS@1C‘00—A‘…ÑäEqF›˜Á •Mà¼{ªb’Í1:•ÝÂjØfŒú“`xÎDˆKAæ<#x‚Bd +’@fÆ_Qˆh%›©EÜÄ9EÓIÍvùòñ/aö‹Ëˆ¿°   °¬ Ù‚´¹ñg~ò0YÛ4Á?7"oQ�!Úú�NDÕ‚-Ç$µU +³ CÔm¡ëÙ}ÒÞg ÿõ;_îƒ/u—¸íò%:+Þ‡úüã1xùCìÉfÐã©ðFÖ©&ÅÔHõ©rjÀš@KàódyèA‚fà$%K¡5Êfå€rDÁØ_ÉQŠ”FE`¦€’*82Gt�˜lË%¬#Spv¸<w‡éZ_��Ê[KV„…»Ä"¥Sª"dŒˆ9\¹#|õ5Ö&+-Á€È)ÖKweP’Ác�c§1(>áb*3DQÁtç·…ñß# +'¦d¯Öe<²Á’�e�€Vßpv}<�5�ìc?X»õÉßôT×ê|õ¥í™OÖíø§Õ?î*-™xùm­Â¹ÈÆ{¶VÎÊ[Òxû¯>™Õ6{Wýâm3‹£‹ÖLîX„Û@pûо,dR,MÑç,´S7²Ïl‚}ft=«íªëÅ Ôx�‘´q÷Ã\'ê 焼èÆl_¼þϦ ŸÞ.T··÷êì%´]Ÿ­à9= +L¢©�ðˆ©Cf"tÄ—D–A´�ÕÔ,žäŒFý˜lD³I!¾1ÿúsƒ°Ã…Õx%í¸ü<í‰7°›Dûw íë…†öOüÐþÈàé†X¦Òa¢`êL;(3sÖØt"šë!fÃwZáŠ÷"ogŽ%Btu€3Ç#¾DaÅ3èûñ·h(þ½IÜÖ®Ïi�`Ä©»�Ç Á…ïz&¶D– ±˜‰„ÁˆhȲ$ +¢IP(‹ÙBÌx¶©ÉaƒÂ̬IP<èͲh¡1+’É!`Dã²ÈTÄi@¯—˜`ld9µ +Ë8­j +ǨІ’ž‡(§¹\Pèr¼‘dµ@¾Zês§ÃˆG�(þ��¡éÐ?xÖëm‡ÁéOëíÐ¥×R3•õ•Ð× :¥W 7 +¢’aä¥ +�a· ºœ@Õ¦&RÊZì4yx�xßô +ÍV Ü×(÷À.˜a6‘äaÔYǵôQ “©‡Ë8¾‰õco§â¶jýý}~ÆS‹7MÌæß†h)”¸l�öØpÓršn¯¾ª²~þbhƒ˜[8//ëO6則;�‘´.æçð4@6âÒQYxpDS1°¹’®ŸÒ»ä…þS/UþÓ¤žžq�ÎÿAç#õO±ÖY%ú©/Ï뿨œÿ•xHÿ½þ½’M_<÷ÿœCžÁ¸0eâ"©d]ì‰úhehôÁnGâ‹Ff6:ó–ÔN%¥Ó¡J�Itv“€Kîm$¶YcTqšuÙÞ^WÞà€‘½yD‘Ä‘ÄÉ‚‰JȈ|O�D<áÍ2¢1IH�çôw>²;ÐÒ÷™~fð_^øú™®Å÷=¡P¡÷Óè–i06~²ô/ÏÌ»ÿÀ¾Ãgˆ†øzyñ’ŠØM»ÝÙâ™gî´Ø:e•tÖzë0iaÄëî¤nQõªÕêFU°0ót¢ncxv¸©�ÔÒqÙuéï§üpà<$²‡D<42AðPb0ô\hþÉý}È:ÿø#cY÷ì[¿>ððŽð4ˆ\¼‘© “~ÿÚ¡�h‚Öó +b6ñ�ű\?Í(›(Ûse<îþ †ÔvQ;-²ƒtz\H±•f‡¤8%d")^ÿpÁS Ôo$€¹` _-@4N¤‚²) ¦BQ.j�A¨ <Þ¥ÿáøñ.X¢ï]8kë–ìY�E·4AºþISüÙòåùÜ6vqy"9Ð_ÚbÉŒ§kͰÍÃvcÐìÆS‰B“šE°pÇ)Dǹى³³É¶�Ü�U¥§vŠnpÕ¤H9’Â(mv'4’”mrL’Ñ+†£ÌÓåëeŽN1äýXPò‘HÒ&MÄ»Bá;`>f˜Œ‘ÛyE Ó€]è™xxéá_¿wøõºžž5{m{àÆº�έ‚ÂoÏÂø}pñ»W¡÷…³Ï½ðÇØVÔÅ)äóm<—©Š¥Ü€ù e?Oâ<à ÉM9ƒc‰ZGšIaÇ øOow#ˆä=Bߤ§¨0‹b"‡)ÍöEQÙeekóòxžVpõByÏÔØÛñÇ:èqï¥[Ä—ùkNžcƒUr÷³˜&R™R�àÄ„HrØ1˜ItyréÇ‚*[s­�JÕŽ’TM1 +Ñiª¾Åñ#O�8îû yœiˆgØC4a(¹‹=_ÑßïYXÕ¾¿gÏaXJ�Ç«·=Oÿ”ˆÝP6‚}*@F‘Wcþ’`m�nÆôDò1'ùs®I=,›sGp’S0âÈKÙ *Mï´ÛEŸ·ÓóðÄ/ËçËõ8;}ê06° +YöË£åÌb(›>ŒscoL�I¢êIÍõ†ÐJF§ÖÒ,yÙ5 K¢ý-Æüg çD¿D3éO~–2ò{žF8ב1—PxTN"k™F !Gå“•EYx²rì4‘÷ žÇÜ�g7ôN«{vÓs—n|ñæ1'�@UÏo_¿änß_¸üÿ>õÐÜM·e+öÉ`�†×¬Â€7Öü¯?s‡Í-¾s)×ã7xn2bÝ̘“v +ÄÔ .bb¦FÄNÙ í µ?]óó9‡ŸÍ‡ô;õóð,Ø…ËMß (wÈÂçxÄ<“�dl,Å´—€½SuØ\l§âPÖF›Íí2Ç? pñú5ߨÜF^AŸ7í¦ñc + 7öèýð¶ØS8n´›#‘Ø¥*ÖÚd`ѿ⻾@ÛS‹n`²$7%¾EÔHMÒn‰ñϵ´™vQCPÖirP¹3†\& ‚L-?h«ÿvÜÃõpÅø1Øâ��Bì‹ËÐñW™›§[ YÎö¹—�%�‘ñ̇ ÜÑyØG�`ÄNêÉ Ü•P?€Ñ7èï‚£‚ƒ7Ÿ eòÿ�}°*p}KrÝ�ëùWÖÿþøŽßÁè�½øÛ—ü½�¿ãpÜXÿ[—‹ K:ú?E +QѨsehF�]¹ŒÚIR’cÏßxžQöêå½ÒS±`|KÒƒS“s!£&Gþd@>øåÃ’‰Åþ_1ý¿ïBŸLª— ]Ów%úƒç®¯õª¡;ôgþ_)�“åtí'=wí$Fì�Fï\�¹¹{0{°~prµ|ðI2uð­ä¨sp%9d<��ÇH+ù ¶üÉ»Hã•ù‡ ÿOÜ ãþ�X8*ì5îºøÚùÿ’ÞKøKÐöŸ¯mÆïçøk!Á2�¬Â_½±¶â?Ýýôà"tº±Øë" É}dìÆ~Ûàz²�ôÂnØcÚ?$³`<ÙIsÉ}´‡lDN¦‘çH?Ù8ØJ&þŠütðöÁÿOYFîÅH JÆ�;È2ŸlA:ûÉ40“b²S…‡PWƒúôØ�7äçMÅ@=:yÒÄì ãÇEÆŽ�5jäˆpf(˜1<}X -ÕïCôFXWv›ÕbVd 0†AÅ8Ðü3JŠVh©3*´âð̰ÔŠç�Ÿ›­W „i@éøÄ-šш{Žæ™_ÒKby¥š)rÝú<��T¿á¶¹�`‘&ŒÄ¿ð­•UÚè%¡°úÛÀ•õRÜ¢¥Í( …‰³q ÿn­ Viê|œ3³52¿„—¾Á�ópRÍ •4² DŽCŒp\Zú7(ÄÀgðèu4΃µ·8uÆL�xzIñÇñò›Îç�h£#H†Š=|”_#Ùx¾ÖÀ­�w.|Ýóù®óþšû¢ªᢪå(ÅªŠ«r<Ÿ�b(ØlYPâŒb× ¶×bžžQm?Žôš-ص`w­é…âi`thqÑ ½”È6”•‹SWÄË +-ÖZ��ðL®¸¯®``³ãÚ%‚Û†zîD4Ó M2Þ\®Å*5Òìw´eGŸJ–TD¬UáªÊ»K4V‰4ö6²¨v¡6lÎüE8…/ÁRQäZ�iT\GÁ¢Ú` Žù½X‡grÝ^7_U[]Á­*Â3qM™QÒ:Ð\ØiΈv ÞvËýg¬¥È¿<ȇ--MAmßm%×®†x�ªö#é-Ea|>¬hÅt®¯ì!ý67»ÊPD¬µ2¨m]²"aa•;†ì;Ô¢jÅB¨ ÔÅÐÆ¤ «*VpŠWTr.‹V[Z« Nwœ¡U‹VÌä…oD'wàîE%Eµá¢«/D¾±ÃFþõÞPHK�ð�--EœÄÊ*$>A2.\¥Ÿ[~ HÏ -¶ÐhÈBCøÆXåÌÒäTò†E|_©˜YZJ¨y΂’œŸpåÌ@‚Ë+3Éœ(ZäÔ†gã´àÒ ÷®0ޚǫê<Ò²4Ï�U¨p×ü«»4q¤¶|K¸f¾¸~¦29c©~Kx·8\\ÑÒR·T´Tö n]ªá–Þ9sZÖU ?œ¥5 ï(ÕÔŠZ¸uÍÍ®x×Pq°¶2� +…áÒä,Zžÿ÷– ;š<:W‹Š4hVÄœ@°˜³È±ƒã wG|û%èK s5*t�Ûñ©î$¬tdÑòÛ“Œ£!&�…#ÛmÉY|H(Äݧµ/F–à@Ûz[Ib$KÏ“XvõVÁWŽ­xïà+[‡V®l¯£çÜþߘóµ¦Üâ »‚ùÙÜõxZ¥]ˆ,^ÌÓ伄º4÷Œ É 0Þ3G¥ +4_ÄØÈE‚@Ø‚:üuXS#š8£äh  4¨:ŸöoϹmQIÞ� bþ:üpœ$Uƒ Rø,ay59·ËóXÚðÞ¨ÐOùýK{É;Xò±|‚kؾ„-Ÿß…å–g°hXÎ_3w2Ù~ƒ÷fa‹9ÆÏÃIùw¨¢2]HûضGX,|-Å)âÒ69£­urÆv,­�“3J›áG…ÿpô¨êÎ×>?ú9­ÿ¤ýº³ñ†Œ†z9²K}£y®15£©‘Dn"Û°lm„ÀT¯?×ëÍñº¦xQ¯u²W™ä5Mô²l/™à•e�å±�‹82ÃöaÇð {0Ãýá|‡ê´Zmv«b¶XM’le‚h%@­ö6£ò6¡ŒË@ºÍ/¥Ù¼ªÏæ<¶ cLn~ÐÊ+…W&^1^¬ú?<¬&[[²5'[)Ù +‰öEÀv~4×2gátÍ ØÞ>]‹Fæô±àmrdŽ&Ïÿ~I/À#¥8«Ñæ>À#Fhî£Ø¸f,ú~I¤òåÆÀËüë´6§¢±­4’®Uq¤Úš^ªMæ��é¥$ò××úõ× {G�*ÒÆUjãŠ*f^»®Ý±Ñèðêš'®Ç%ˆài©…‘þHdñúÅÖ¯¿úàÔ5oíU8oóLGLjiaÇA.¬áéä?FŠYj +endstream +endobj +76 0 obj +7171 +endobj +77 0 obj +<> +endobj +78 0 obj +<> +stream +xœ]SAnÛ0¼ó<&‡@²H‘ ’‹I‹º}€D®±$ÐòÁ¿/‡¤@öŽ–;³³Ôªz9¼æiÓÕÏ´„£lzœæ˜ä²\S=ÈišÕ®Ñq +Û×Sùç~UU&o—M·y\T×éêW>¼lé¦ïžã2ȽÒZW?R”4Í'}÷çåÈÔñº®Ÿr–yÓµÚïu”1˽õë{]òÃ!æói»=dÚ¿Šß·UtSžw´–(—µ’úù$ª«ë½îÆq¯dŽÿ�YCÊ0†�>©ÎJ.­ëTçÚ‚sP�·ç�±'ö¨Y3"ß0ß ?0?dÜÔç ºÖœC®bý0óyÉ�¨§f[4wÌï€YïJý#ñ#0ý»âŸž<[b ìØ×¡¯ã,®ÌÂ^®ô +ÄÞ¨ï¡ï9‹Ç,¾'î¡OÏž�#×Á?û¶èkèßÀ¿!×.{YôjÉmÁµÄØó]x¼ Kl�Þƒû·Ô·Ð·¼‹û1ôoàßPÓ@ÓpƒY ï$,É×6`]°×ß{®)å,Ë_v[7Íòý}¬Ë +Vùýu/Ôx +endstream +endobj +79 0 obj +427 +endobj +80 0 obj +<> +stream +xœíY{�[Õy?ç\IWºZiµ«×ê­«+éJWïç]íCÚ÷{{½Þ^¯½±�mÌÆKpŒ�y˜’:4À�a +ž’™RJë@Ê£t’–™ÖÃдә%{H2ÐZ“)']©ß½W’ׯ¤Íÿ¹š#ÝsîÝ{¾ó;¿ï÷}ß]„B4êC¥÷¬­®Ÿÿô) BÖÿBˆÜ¸ÿ–ã7íyðí{áŽ;aìØ�}«{Mì‹:„:¶ÀXñ ´ôÓ?ƒþÐX;rlw‰<ýç ÿ½[ïYEø½Ó9–¡ÿk«ÇÖÑ †g9MÐ÷Ü+áËä D� (ׯ¶…Ø6v?^} ªOÞØ(æÈ^„k"DuÃ}„81—-Šæb!æàÜÜ<£¹€†¦8Li¬[.G[t¶ÀPEüÝK¿\‘­3 +Ì=ýÕÚ>¹/8RøßM-N£°ñ~U>�¡�gÈD5(÷ÀÆXíSü@>Cȇ ù2ÉemV‹FÃqy6°HîSpöp#ù�âb!bûÚP@Æ¿?Xa¤øl™HÛ0R€ÃÅ퇂ëS…ùœ-9²šÍ Ç,ù$ßsŠÌþÔÂòxl×òD"WÙsKb²OžÛœ*#‡8|ýXÞg”3›¬Ê56›“ç!4Ÿ£¨¼[«{Þʘãå„áã¦g!Ö‡ñÃF§ÚÛ&|;:ã½\4+.̾¤<¿v™,�Ï$©fž¦¹MÓ)ZTzÐ"Óv›-GJLý;¢;¿¦RG=ZÝ+¼Æl·iŸŠ°f‡î‚.0“Ù±£-ÉëhÜ�œé:Gn¶¸%^q-î]t~“‹ ´ dâsçB)AY' xFÉ›(Ý`s1g±I‚Éü�ÏÃhž¡Í­˜ +÷­îh‡/´{KfÛÜþKíY͉~Õkª¿tŽ ´•n?œ°²Á° Ìü莩õñ „‡üëE°!QgWq + +Ûp +?œ¼Ñêm±e…lWR,‰Cl4ÐÆùLAì?Ìô\n=×L¦¸¬Ã9ÜÓ·Ý·û½Î<› ޱ®ñå:÷Àƒ À ÉQlðøÜæ€ó›Ç¨ÍÔÉ5ökÓ-íZ.+Éù$ž2·QŒ¶Íã)eCŒ‰btô.šiQ+ƒþÞBHSÜ ¤€Ôéb¢Û;»Ó3‘yø5¨�šópíÝLg<¹4cˆ%Ú-<_õ�»;õ-âð€½>š›öÖPà îŒkZ4Ò�£ÛyÔ]´§íKIÏÉèyå®Ut6+Ë‹DIÒ�’Ý!·�‰ o›õ7Pƒ“dôJ¼'¯âŸæ ˆ‡Ô$^�cMÓw¨õ‘¥/¦—B¤¦˜VÌŸ#Ñ&Y”ÿ¿lüx�üF뮢ùÕü–y$a—ECWó¨XŦU¿¥9ä³ ‚«Ck¦«Ÿ g“¸ÌYƒ‚Ððoü¹Ì+)VÞór×YOÝá)˜²‘ÇB°d úzöú™?O(Vønùcæãñ°ZÁ¯súl[Hå WßͼiÔûL‚Ì¥hõ(øh±žóÀ&7Ó‡M¹EýÍ€”K\¥–øõHœ"Zwq Ñ�nÑð”FR–W4F‹ÇÕUŒèò«Ã­fÛÜ ¡ƒ ¡z¿)9ÄË)ÎYcT’”ê[®1›#š�^®ÇS=ˆj]…Eð:Xä7�ÑØd È(IÆ$0(âçŸ)}¯¥Š-¦|\rñ‹FÆoΪ�”›¯~š©¾%9�<ßÓµûñ]'(ðiœÃ;ñã•ê¾ãÔ­ÿóJó:|=$û^´©ô8g¶5ÕGŽÑ¬´7’ôÒ9ˆÕ;µf³ÛeÆË3»Ô’æW/)1UÕ+ñã¡C?sh€8œD2»ñh“%ë%và¿r6> H{–‡=ûÔÜ\}Ï6¥ìŸËÙñØ×îZ{lçâª3ÆbâŽÑ´ciitÑiˆ-3§O.ýñ}3½Ù àêK–Öoï\úR)ÀØ]%$10�æq‚ä®Ée °œ©hêqHö�F¢"S惛�ä–º’ùÌÁíK»vÝÐ9:|›n²+[è�ÈÛcP' mbV';'òVÿBª¸�ßV™ZdÙí½ã+ ü”k!Þ=Úë¯~ÕWNÇ8ÇüPg¿¬=`[ ló_yóp5 ºØ(µ! nاÅÏòÛs©¥»·LM'£:�wòÖ m:Ý5,¬M e.ç'4ÝÉmÝù½o̓\BÛ£™‚é-©áÓ¢¸Ò] YÃÏÌØ©}BÚÉ[¨]b©òN‰ÚôN‰ºòNéßæÙS£«åúK¥¢Ð—p +Y¡’t;õ'n/ãÞåô¾-½ß<õå~±rà®» ³•ýwÝ�ß6©äV¬[ ëf¡¸æ�‹¨¨scoŒ*I²ë —“ƳÅ^‡Ïmæ}S»#Ž©üÖűã£s{L¬8µÏ�³ÓºB„ëŽuäWÔæ`íIï“;…�ãÛNŽÝ´+yÛñõ x|ÎÛx%2°M(ˆ)‰Bқߤ"Ò[F/2Áˆ݃jx^ÅÇðÝøarŽœ÷‡ýi—ÿ96 å°wgð,Þ ×ïª_7ÃõRóúæ8�ÿ?�Ÿ„Ï™úç|^Çà¡Hûÿ:„)¬àÇ�MŤ7u›ˆP·›aG›FýcpýÜ€tRt”2¾ëFdC­À‚ÜÈ +xHi( ±®µ!5’$ Ä>Jòa¤Bˆ/ûÝqí!aMZ¼ð“‘]­=Ÿ Šú@þgcB.÷Þz(¾ªž`>RuÀ}h¸ñwªxõÄ¡^GÃT…HÎß„k%Ç*˜Ú�hbª­àBê$Œ?Vû� Â=ï£Y€¾Ô OÞª]ÄiT&ñÚ’E.8'¸·¿vÒàõ,ÌS®!ûÐI¡0ö"?9 ןF³d¦vžS‚þEì¯=M^«½NnCy¸��Ö-�«Û-•™ß…J/ï á—œ†&åÈG”†#\Sƒ¨?¢}¨—‡ö8F´wÒÁ972pŸþp]7´;¡½Ćû p�qàÝ +ùfësÐàY¦-ÐÀÃÚàymo"Ô>m/4¸Ï ×Ì`‡å´÷¤ÿñȨÇÑEà÷i`ýÕ{ BªÿêŒ} +endstream +endobj +81 0 obj +4216 +endobj +82 0 obj +3373 +endobj +83 0 obj +<> +stream +xœÕi�ݶñ;…ÐOOEžLRÔ•|¥MѸ9¶ Ú$(Ö{8Iw7ë}»iÒ_ßá �I½cŸ�¢6,Hzäpf87GV•„¿k—ѨêìZ¼ï«'_œÞß_ÜÝTg›êÉ­ÒªÚœÝTONeõn#ì„nêpüÝEu)¾_VïE×7º«º¡2£n†a¨zxÓ�ÚŽù¦ºª²ïÞ-ƒ‰@ðêáÈfè<ÙŒ•ÿA…¥¯«®�©ûpÕ"&Wr|þa¶"›ŽÏ‚iÚ–CðÏ)„Ëß3BüBÿפÈFµöO•ßD¼_œˆ©™¦ièz’¨ðÔwÍ${8ªF S?ŽÕɵxr¹Vk qr)¾]�Ôª]ýP·Ýê¢VruWkEw•}wZ¯Û¡üooàV®j÷×xÿ¶V†�ÂQ?×kÝ®.ëuOÏ·v ½Ül~¬µ¦YW0K°u ü.W÷8oßY„ ö– :8ù¾öÍE=­Îà­£ñ&‚|o—|„o`VO8¬ˆ¾…p*�å8ЕÞÐrÿª×ª£ù¿À�ŽgªõÃÙ:ÕÚ ÆGDÈ"½¸,{¶C…ûýÉŸ„5$MÛMÃ4U'ç°¯„-AŒ¼õ<&T~…Ÿ4çîoµŒ›€É7õ ùv¬∽EX ³8”~ÿw DЬ +%$ÊNý9Žú¸eøÜE‰¼¶”À!˜õ,ë�� ®EPló„{H7œøÅÞFÀÈí'_ßžÞTOŸVOžŸÝ?œ^�\üz_=½¼¸¼”²ïí¿gÕ³gÕ‹W/IÛ”Ó¶§Ï”|*¥4Ï,”ן¿L”±n[/'QL�ÃL†äÛ<$Òi§ˆRHWœ†ÛÏåô-“‡(B½Tã"´Žh�ãn�×~w £ù·ˆ¦áø�+°\º³Æs­­|�º%ä¾Óº«×èÂw+€6­¾®ÕD¸qÝÜ#²ßÕ8qyB騉R½��Љ=“l#F%-\}V¯GO'q![·2‰{ý`ŸA¶ÏH1ðlÍÔø¢éþ'¸Ïñ>þ÷̾<©<ÿÅb‡ûîÏ5¬ó¼X_Õ]¿ú îW¯kÝzáöˆã%*€`¸÷‰rpcˆ/ÎI¦šq€ÝS©hY«¯¸�¿Š@(>3qâ3ì˜à[FxqÕ}ˆÆáùþÙ—b6¬¼Õ~š¶¤ùmg5_-iþZyòè:8.Ë~GDdzù!-j*Gl³f®sæÄi¢�—È ²GFŽŠ\Qöӓܾ‰¢›sl:Î(ëýŒ2¢Z”!f oƒ#â6ü”‘›A¼ã,cÛAºñôˆ,4‰��àüÃ)Ñg1W×D.aŸ‡YЂ¿9{ºAS9fÆ0èmQ'1EÞ¤K“Ê.Úá´"¢>@f):Oøœš"à¢Ðj;6E¯Çœc´Le—ƵqEÙ£dVŒ,ªuÃ,ÈPž�?gÚ»ª§áñfm×áZÄ„Á‹2Þ6{9�Sr‹c3€/jChœÌm'Ç +�2-óŠü�àÚG¿–Ã…ÄÞåVZdfº¹¤g_Ë]´ކ¹=7'Z�{–X-ÈSAœð.f›oC|ÏÔzƽ‰[‚ùkjbâÒë"Í»÷ãCzÍ„÷b "KÙbÑ?¤E³�b:,öPâ¸_1'ÇŹÃ{gÛ“س½³�Üö3±±Ù“`åõ�(yÌ^8Ž¥ù‰v±vĺ� 퇲=ù¨ì,¢¥}uÌñÈbO{ñÞv«¿Ú·%O©”RzÂ+Nü>ÇÝ,iÄ̼F·z]ÜÛ¸Cç%Ng±ÇY°¯@&|íƒÙ‡�‰ˆˆG1t`p×öbcÙÝÛ³gx%Ñødõ¹¢bH½‰Ûläž&Òø�8µ‘»=wÁq[áv‰‚“J +bYPZJ´¹�ûj‚ðv’;FÞ1Ô‰üwõ›hcýš‚žMY¥ãæq»•Ö¡X˜ >wlËŽl‡6qOc˜-©ùöÂrXRpklÇ�|/y6ôdÆ0+¦d:—úêÌÜ$EÁ /©ÚÅú6ù…eE!埱%µüç�£,yMœx¶dFðCXÒñ05×®ý8ßÐÎ+¸Ñœ¦µ.­ˆÍ–ôsXN»c¦Tóçe«—/ãIMfù œŽØìhƒ‚8–C)Ó)•q§Uñ1WµZ6Ò詟Üy•ŒÕ˜­WW[šXwR�“UÈ3Ý‹P²´5A¶þ8bh…µ0@Mi‹šÒ 5/ëõ´ÂË›ºѶûB@hÒy ére{…K¾©�k·–Du¿ü h +ï þÅ .`ÀEDŽÈÆ!^ì:¸k ¤™S×*½óängNÄ�Hô¹Â½¿ZÔ3¾£YÂ34wTýQ♲“³h¾1ý[%¢Lšƒ|1C7v‘Y…!«„ea—ƒ•áNŠÆºœw¤šõ6¨®H‡ã§…d©èÍöÈœf¼Å4ŸYç;(Hålc\[ˆõ/™Û¢þr,ÇÊÜY9}p|é$²_fê’ZÞßÕì V$î" Rpì>IÓ}‰»á8o©”±¥b™*v¦×;²ç$4LrÎ]ñ!#cH¤²�%VÃH†?J2#Ρ†¤1›Îb¶å¸Ì'Îgrëñü­œu—5Gp¶a.�²ðS¦‚‹¡Ÿ·™")kmáî‘•ˆ;¦<ܦ¬Ëv"��¥É6ãgC^Z;÷¬£72Jƒà *ô‘Ìýr‹nyZ©x ÚL²ÊÌÑmêÌ–«G ¥ +ýÆ„< pÈ܃Žß`¬þ®ª±Ò*7âŽêá%®W›7Tí&¯¾—§5­nÔ¤ŒìsOûiÝw™*ç’l3”7‘õÄ=d¾�•À18\Øz1Û{’…0Êì¿Ñdj™®‡Ý¦z ]áßRJÅlÏÃ\”wWÅcl}ÑÔ‹Ys ³˜h¯—çqk‡ü!NGW‹ó›p$9ïLÀ +Úsα­!�1\ú]lYšñOì``6ñ¨ÉZÁ’¥‹a q§û™“)ôx2÷;»ß*'ÞGìÏ�4vE13 R�i›ACJƒò°ú¶>ùI¼>)öòM¡—o¹‰O©¶QÝ.EÄ}ŠY¥ÑîTg/½½Lˆáj4:½ÓR®¾w´ÚÞE%!‰SÔ€i;Ð’¡«4pÉŒ±sRí@ó›íªÊ‡¾›lç䇂®[È»Ú]÷mÓ@øž9�Ùv‹ÌPfªò›=™ãÁ/0ç‘Ð=s<ôEæ<þ4ÞÛÄhº´·‡?¶©7½‰ (×—ûÆv݆Am²=Do® +ÓÈE8®�7�Lq0-)˜ëŠ ¨G"Å��òÔäó2úD”#(�¯{s89)�ëÊL]FNŠ<åÉÉçeŠ"(GßJ9%ºk”ÔÇÉš{a5Ä(C»*?ßÃL޲Y~Îv8sZ:Ù7}¤Ö8 QÜ &ë„Ól¾¸ÊçÌ�–`$êâF©-�ˆh° Ò|Œ£"›T`EÅÑa&ÓŒãñr5ƒã…Þp‰H• ŽŠ¢•Ïó³ÂQ•è½#þ(µûQM¶á:As†·›TØÝ JQEŽÔö@††E‡^Ï”4“ªD˜flƒ’�CåÑÒCaŠìÞpEuXÍ 3§%�‹pR�wc�Uù@L†DŠû|Ô0s�q^FŸ(‚JTÿHKÀ0Ågò‘¨·NÌòYaÎ68©Ò;Ê�Óú°5™8ûÈÏÑ|^¶Y¢êÃ|M¥ÔÐè^ jLÆf0Zg³Bdë·Xê¢ëÝV«~±Wc‹E6ç=½¦š—MÊ4 +e§�{T@xU+[ŽÇ&\*íÞýè +@”èbý�êÈx´„ÝÏ,ƒ”·éÚQv¶4a &•BÈ¡GèUÝiÊÛOêq¤;LÁ±pð{ymóðaØQÍóv¸Nr¿"ˆ`UHó·d¨û$Êzaß{»?�†8oœFcòL1ÎÐ)DÖ›5· ƒí¸'þUÊãª+À>q$ÿO°˜­ë^ÓÇrÒ´Œ;ˆ“ …µ%ÁuZ¤ƒµ-Ø:9jcˇSÛiÙ25:ÅBçÛ·¿u…&e©þ8~ÑfñèÜxÀc Ûy}ÏDýñ`\yiíÑèRI¾³~Hõ±S.ÉëÿMIþ V¤ÑžaEÞ·ì*Æw“nl�ÉÚ­â±÷ \ùUr ç:‘ðô)ýäÌKåڌƞn _çÆ ˆýõ¬ÖÇzg8Œ¤IHÌÎECMÛ¤g8xJ@ÇFpV´t½œ LÒ Ê¹|¶�–Ö^DÖï„T,u—Ú-é­¬«¾#'t|ÕÒªk·k/Sž¤Õcê•ÃØ˜ÂDõÊÝý(½!€ëL©¥ÏûQ>ÃCïç5Re»?m# vš�~Ø^®=t©œƒ4‚êß‘:ÞãÏ?ú/ÂÜyHÛHo&ØÎa,µ�ØN¾øY$W™ènP.:&ÃÍaÁ„WÔ¤á÷Cº¿fÚóG´‹…#Ð6ƒÙs±lX±É„VHuâw‚udÓQkÛÒ€U( _€—T…oy÷ýÂG¼{}Ì6mÿÎP/g¨]\Æ?vHÈ¢€°.Î’òõœ:gÐÒÄmmå�!qóÿÕÀüˆ&öž‹�ZጃÓÿÿZ˜¦×JN…Àá3‹üMM Žáàá� &n»Aøií¼Åi�wí— >Vœ1¦—M§'9ú�þs×-ÉÓüJ4›¿æ÷ïêv$gúi-l¨á´eéÁ@~y�ã ü•ç)k¡ït©Xùaê”ñxa@T.„4Š“�Kh¤Yb$C÷Š>ˆ2CÓʱ–®‡¾1£´'6ðÇ8Ìn|¶3´ƒQ­Gáum°—É6ﵞ´2"±±ÃpkŠ#àXšÉÎÂ/Àìš|ål‰›Ò!ÚÆM§@ z«••Çâ ¿AŠ8~AR ”£ÜIח⿓ŬO +endstream +endobj +84 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +85 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x122 Do + +endstream +endobj +86 0 obj +<> /Length + 26 0 R /Resources 87 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ042SpÉç +Bcà� +endstream +endobj +87 0 obj +<>>> /XObject <>>> +endobj +88 0 obj +<> /Length + 29 0 R /Resources 89 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +89 0 obj +<<>> +endobj +90 0 obj +3807 +endobj +91 0 obj +<> +stream +xœÝ\YsÜÆ~ï_�ÇEÊ á\,\*UÙ–�8+>˜ÊCœJQ)3¡(‰KÆv~}fºè=ì2Êm•V»¦§§�¯�¸ÊJ÷g[¹�}[eoè=½Ïž|}~yw›]²'ïªrŸ.n³'çeöú@~@7tüüÝevEßÐ7Ù{êvEÝe]Ÿµûºèû>Û¹+ݾöÏü>»¥*óî^/“Q"ü9Ò)‹¾‰”Å>ÿ*©iê7Y× EY÷þÇÍô£¯æä&PÖß?Ìf„áü)´EÓ …ñ·¥põ XÈ8ÑÿôRÊ¢jüYüEùþôŒ†b†¾Û‰EM¿v]1”;Gp_U?ìöûìì =¹ÚVÛÒÄÙýas�×åæ6ß6å&Ë›nó2¯ÚÍÏîw·¹Ï·u³¹Ì«rs(òz'œåU³ùÁã;wy]¹oä¾^åÛÝæ- +WÝÅ�òº“�BNGòE;æÇœš~sîæïåÂ+Ï�Îă˜†Íž|rqÿp~svùÓ}öôêòêª,w;÷wx–={–}úü31Ù*˜ìÓguù´,Ëú™§òùWŸ‹v<ÕF\ËÒbóz †Îß:7ãÓ÷ªû7c¢ÑÒäÓû‰Éy”$ =0·J!q0ZÉ þæ¦ a¸s‘ÆF;øª6Þ.kƒ€9øËÉO5ä>*Ÿ4b™<ôÎ.„'gzÌ‹e|÷�Á04™6€FÖÔª ~ÙðÆqšÍXÝ2›Ëh`„fŠe>ÒÑYu#+µXÍèn¬¸E&q5@®À_¤“ Ÿ¯¼÷ü?¤RÁŸÝú4áò +Ù¢v¢˜Ðù3�·˜z¹eͽ4Xê*Ų$õ}BÕxÙ¦ù…ˆ%™Óò4ñ^p2*dí”cö4Úõ?.�ê¸<Š`9k( WÇeM!]Päð€Ö h•(ÜRÉù˜“¸L0)@P„òàù+¹¨þæ‰ÒtJs¥jŽÀßÀë#*êæ)ËrÊ’ÿ© ð¼ Û„èiZD W ²ÎB*M°‡ÉÌá£I)„ŵð°ä_΢šÑà\ùÏÚ˜‡\o�Õ³³?GÆ×9N?É—*Ã#R +æH&ľšBBR<çe’3•™_öˆ‚P�ùªÚ-eõr’Á`¯gÆõ�Î<žCH·á�‡s¦ÈSŽîi€�¶öe÷ß&zE[�ÃV2k ±iôÕ²æR{©L�ÀLm‘ª‚Ëb×&W_3]ž¤$Lk0¼„¥VÈ +!sG$¡¨l¨ÜLRí] TG™nº’ˆTfsõy_ˆ0ƒ‰€gÊÑÜÙœfÒ¬|BÓ€(ß|XkÞâÊþ-VýÊ)~LFVܰuÖý4!a¹R!hir/lñ™: ÙÀT/J0ÒôÔƒ&½élÞвŽbºÚÔ¢c �Ìi¼i‡D“% rͶ…QXƒúýÚM£\£-Yû®Öì¹ç¿MálµìÛ�0mj C3mqRBJ7™eð«ÉB$É&Ôd !°Á™Žvx˜NèäŒ1a�Ò|L¦ M^[�¥5-ÖÖ«À™¶¬ÒSXw‘#µ…é’�Çte 8 +¬,óI“×.d cB¥®M•q•Ë«¿§ð©Ê7� 0±Õê�N(â–³íJ|nÝGùÈØ¹i6ròŒ"¸¿È?ëôµwŸîÃ_ûMî¦ãÐ÷mÞí6¿tï6Ÿç³ìBq};x†äÉžt +Ûª( `� +¸à6šP4Ï("W +6ä ˜LÛsµUº†pµƒ$š«³c³.$?I�ÛXMÜ\�2+O€Ž©ØÅ2ÎøEE,™E°¼+jûÖihpVEî7mœù�6*Ÿlq/¼} +`ñïç6–è²)4Gw`“I�Âù8t|!Z÷6ì~_×�K,ØyµÃË…DVä‚©Æ=dcªiŒŽ–äÔ:ù€íÍ0 Õº;è+ƒhs0Î+ �£ô^©”×{- î:V²VªMĉàLSÔ;ž®ÅÁqIÓ¦g°'î/Ió’´{™.?"3ZÐîåÒ#´;)7¥EJ«1öê…�£j#Ý©Ž§j –@°Ït*OSì{¡aÎÿÁÇ�ø.wß8ôIPä�Ç€¤·˜I  9«vB×àcç  µYûÿåùÁ¿´ã .”m Å] ÿY¶â]ÄGœh Õ# ˜0�§Æ¢ÇV]2h­�ÛòÑŸ:*hæ°™LOÀñ´-`bDQšÞ�?Z“©ï7ßçîßýBƆ&«iŒê‰ÒSú°¸û™Äûyç<v#‚,lKTŸ¬:‚í鈄E¢§d’+4�DÃ^‰-t0ü�fÆP4ÔMÖrϰ¯hÖhJg+¤xï¶�|†Ž; +ÜîQcT‚M i/¡ÀWÓ²GæGg¦CšKʼ:Àj{ø0Èâšã÷EÚGOcI‹õ›Ý¢-¤€h‹¶,«6œYÕŸÓ¡Õ¶Š¡é»pfµÔiZnîÓcá¶++�b~�çŒ�7¯Ý' –ÝÄÏ~Ìk¹^³¨ùô†¿�9³áÕ;Ü„‡.ò] ó–?ðÓ¿ Ì?ÝóLª +�Ü$ù5;–ë/ºý°oÛø\î<Ë«n5Õi¤z½G«X„ïŠ`cbñœ(Ól»ïŒ¤1ˆ`ƒq„žñ _€N+ùƒóÑŸt™6¾CÙûB\Õn¯F±“XM¹ÃØ�§­LÛ=$¥ÃS±ÇiÞæ]h%ÈžË g!ÜÀ�_kO‚{U ¡™JÖL˜Ã‘› ÃIÛ’'w¡O‚ ‹%j:ÙžZÌGL±Xk�CóÑÎ��¼ÓG÷:ìf¢8§õ4qÑ3¦3®‰ÙNFC°™D­ ¹ëåA´±kzŠu [âdNtDp4ǺÉÓš¸Wi4ñ¤ã[YkÝ‘<�Nnö ú´ÄïÍZ �sHuW2Àk9à4•¥¯ô4dØ PÔW`T�¦¶L'Ó¢GŸá¶zƒ—" ¯Mví±eÓÁÃù©5;‚§ÀÈN”AF žLÿ•[²Q'Ù·Û*6“/Ò¾oö9£³¼ÿ!É�k®;•ó“XèKv3N`¶^Öivúþ1`OÏ6…£ÌIMK�­°îëI \íEY#Ô°€åâ˜æ& – 9ÇýM¡eMöp‹î?Ö0ýV� ¾ÆJ5x·²õLvïyÉõ–£N(¿I‰«IZ;Ò}ÎtŒ¢CJÒå�½¬å¥Ùt†VƒÌ¬�ö ¦¼’ˆê²¡NÇ @ÿœ�œ™�;¼×¾¡�#Ú¥óïQ› +$·�…èY ‹]+ØB �Ý[»1³|,Ù¾W2ï@B _Ú´çŽæQ¼ +îIú§Û…ѹ=]hš–ÅôíôÔº/ÑVØ“�@�À÷p4ê æ$[ ŽgÉ—h‡é%Úå·g›¾.v�¯Ówå®è÷¾f�ëtÞ I÷<"M5r&ß¹B½Æ\usm]‡&Âsf‡Zm$öjêK“©:•}Yîû:}ü1i~BFú.!HôM[xˆí+ÔCfKGRÛ…\t–’„“[^kðÚ‘7šãs8¤ +÷�Å8ì˜îÃŒ�‘þ)Θ8l5ï™,CÓcSW‹Àâ½ö5P|H d»Xó©>Þg×Jé€ùøT‡ôÊcR�ø� �S*¸@ºP=ñݶÕhz5l-J¥@öe“Ýà;R#Œ§Íî1ý~{žLc5áÁ7«e­klñiÖbârþg²ùCÙäŸsõ9…û<õ]±è¬ê¬ £)â¡Ìd‡Õ–Ò†ïxwèŽ(,$±'�À;v�N:�‡â²ˆxÛÚI+�¢Äw&¢wË£DkÙˆVsxJ%ñËð�ÚäQø"­¶L.ïØFë¡ÈiLZ8 ùIHLÆÿsL[ìêª;_ú8zË´î%iâYýÆöm(öXZîÖ6÷{Òσ +;v)ÇÝÇã{6¨º,ºz(÷nòð*†¤u©?ãLçA]z¿¿ög“2¿Ò/ròèô×;i׃Üù”Ÿò7#ÔIÞÏ›”ÎF%Aª]2Ö�+û_l¿²�ìXaº/ó¦Âåó5¯¹tŸ]ø^IÊÕöESî;'Òm¿+Ú}Y6Ðvòigòrg]}Ó·U3²ðyÞòAcÿžB3ÊAff&^1ÀÞyà Îß?Š�Sù2ø&XwÒ1Ûm.¹m½wùi ‚øzTP%¿Óu$†1þ†þ«z¦� +endstream +endobj +92 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +93 0 obj +<> +endobj +94 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x110 Do + +endstream +endobj +95 0 obj +<> +stream +xœ+ä +T(ä*äÒO4PH/VЯ044QpÉç +BcÄ� +endstream +endobj +96 0 obj +<>>> /XObject <>>> +endobj +97 0 obj +<> +stream +xœ+ä +ä’× +endstream +endobj +98 0 obj +<<>> +endobj +99 0 obj +<> + /FontDescriptor 102 0 R /Subtype /CIDFontType2 /Type /Font /W + [0 [1000 354]]>> +endobj +100 0 obj +<> +stream +xœ]�ÁjÃ0 †ï~ +ÛCqØN!0ºK[Dz=€cË©a‘�âòöSÜÐÁ6Hÿÿ™ßÒ—îµ£�Ap´=fð�ã¶Ž�TUƒ 6ï]¹íd’Ò÷ëœqêÈGÕ4 ?Eœ3¯pxqqÀ£}e‡h„Ã÷¥¿�ú%¥œ�2œUÛ‚C/Ͻ™ôn&]àSçDy= öçøZB]úêÉF‡s2ÙЈª9KµÐx©V!¹úN ÞÞ w%îú Ÿ‹{ŸoÜöÉG(»0Kž²‰d‹ËJ1mT9¿Gcp¡ +endstream +endobj +101 0 obj +225 +endobj +102 0 obj +<> +endobj +103 0 obj +<> +stream +xœmUlS×>÷úÚØ‰“ç$/ ‹z°‡ššÄY+X‰’=¤æ‡AvWT;„ÄP2 ÉPŠ¦Î­HBÓ1´±6­ºU¥Óúì0c§a2++šÖ?&¡Q©Ó´?ZÐÔJS»Å;÷%éR•#�{Î÷�sï;÷êÞó€€ `Çž#ÃòŽ×¶Q2‰z¦?>0øúÍÁ.Ó7èìÀ�§úŸw\ÆgQ?‰í�öýåß7£æûbHßXõ/Ëׯ‹ �½OâˆUÄÖ÷Dá(ȈÛ[£#qú,½�n'b9~xoÜ¿‹¹œCÿ”· +,Xñ‚…2àêy÷ö»ÆðÐ&¥L)«Å�`Ög 3|Î- Ã…Bœœ£ý¦i(†jØ«[®õMGuMd ÷fp«V"Q~Ãb±ßÚÅ¥M&ž�€[µ‰Ê&“€²m“-bc6Ïî�6{>r£€gÙ{hñVUŠ×ë|ÕX*ŪÍ^_cÃzòdlj*›zq_Gÿ@{ûVÅ!×íýýíüPÖZDó=ó-ö¶Ût…>XYè[›^ SNÃ9ÈÁ5¸ Ë2W {Ò�‡°Rž�—àðGø+Üý‚;/Ã[ )oÒ`_‡7áW0³0�ÜœBöçðËyá8œ„ŸÂ4ü™¬Yâæ©H+ø'Øé-2D& êÁ�Ã< ǰ®ëdr[‘ëDö0ŒÀ‹Èæà:|U¶Â.Ø ûá{�ÂŒËW‡lú�åÜ¢ÂÛô<¼ +oÀ;X×Q¬ìüä>ë=CªÀ0ügþ�üˆ^ý£ŠðîÞâ§Êvg …ú +Ÿâ•륟Ð×è)x›î‡jåÎ`“ÏëypcýúZI¬(/+±›­—uSmÀpEcI9““.Ä¿±^ëüNE o¬—‘öË:‰È½íHlu2Àôr·Nk\÷ëêx—_QŒTü?’-äO¬Éût5ªÃ¸œªÏ'OdÐqÛû\}ÑÇCº)ŠßJ †xM\#1Yg8ÛœÈ,•Èc±Ž.?κ/�´­5t\É;õr´½Ì­oÇŒíG?tš’�Õûd“Éã²>ÝZUø‡WéÚ\m‘d²Í%·%#Éh¶�èuÉW2¥iÉx "ëÐÒ ò³ãN½íDXwDbäÜ2ßG[w¨Ù©”á*ŠÂ÷;žU¡�žè +-bz�iP=î°N#<’_ŽTîä‘Ärä‹é—qÖ­!““âÂZ�Këz,$’‘¥‚—˜o-¢…–”‹Œu¥T2ÖóX(‡S †Ò”ÐÖHK8µc¡¶6Õ`)g9É�Ìh�#M­F¾3‡].aD™AxO–€ÁY—9{²t‘s,s9¶È©Ç7C[ƒ¡•U£òÚñRó6j6K›Ä3î'„-Ÿ‚Ój<‹sOû7p{õÁGäÏ�ýwªxÊþ7 KïçY‹ºìõ?T`¿Æ¾~té[_÷*xÌè9Àƒ¯h¹Ž]œä XÈ«kÓ¼>GZN«éÎt<�HO§õô{é;é¢|ú^šâ½Wã¿®^í“üDØ%í¢�î|b'=$¯ßÒ®žjÖÝSÅzº+Ùw:ºY[GÛÞáeí¨�³-Í^¶µy+ûv³ÂZ›×°–æn¶ UEmnô2ïæ>¶¹±�56YCãZö^Ã�†{ Øæ?ž9_ÛîËîÌœw¸Ð~¬–œ· ¾ó5íìÈ̱Ê3FÆgjaƶÎ7#¶³çÇ*Xü@|„ +gÿö2UVõ5Ÿz¶ÊéS\�Þéj§ïØh…$<'Œ +ÂIaRzNš�Nz&£‰±“§&G'�OŽ ê³6‡O8,¦ê!›Ý' ù:‘Gš¯Ý½Få«êU +½z½T�NG©ð]²Q,cõb-s‹³:±‚m+™$®eŠÜÊdq û}M€Õ8·3gÍV#zY%æU`¹åb +C�‹D·µú„Ò: ,¤d^“ìW4©(¯I6Tóœ&±‹šdÊi�Õ$’Ñ$¸ IóWê¤ü¥:颺kN‘fsŠt!£HWæ[r)¹dîâoì¹Ùwì™ Y»c.1GÕ\"G…LsæÑÌ3LÈxÐ=ˆî¥ÌŸ2…ŒµÈÖÄì%û¨‰â¿žvšI–ˆ^®�lÑ+Úž–”ÍëÖô¾î–Ñ^X£ŸÆW¤'Ö„³VÌÁž¡“‰°nÕz–\àa÷ÐðÐ�û>¢›º%‹ê—ˆƒRJ±s•t�û‚Ëï&ºˆé"z_YdhYÜCKÁÅ|ÿ~ßäµ ãèvÿLµ}ÿ +endstream +endobj +104 0 obj +1764 +endobj +105 0 obj +3812 +endobj +106 0 obj +<> +stream +xœÕ[Yo¹~ç¯hìK¦O«Ùçt`(𵉃8k¯ä!:-guY#yíýõ!«Ø¬b‘Ý=’±àÁôÁb±XõÕÅÑYiþÖÚ|l�_ªOêS¶÷öðîîôö*;Þf{7C—m�¯²½Ã2û°UöývháõÛÓìL½Sï²OªíŠªÍÚ>k6UÑ÷}Ö™;í¦²ïü-»R:³·¦Éøé”EߎDÊb“�ÿ‰”Ÿú2kë¡(«Þ^\ø‹^×ÀÉ…£L×çÁŒl8\s +MQלÂx-)œý–-dœèÿz)e¡kû/‹¿ßÏÔP Ãз*”¿êÚb(;Cp£ ÝÝf“\ª½³µ^—F!ÎÔßW/óuU¯óuݯîØ÷Ÿrs1¬Š¼jWY^·«òõfuež•x�/ŸÛ¯§¹Òîî5Ü ž™G·y¥ñ9ÜÃ�ÖI®›Õ?Ëö€ö5Û^Ôboû;d­èú¶Ô]¶®¬ÒnªšsXäë¦oWÏòºd{7kjÜÊÔ¤™-nåI*©šÕR $Y¼ Ô¾š¯V—ßx=ÃÃÛ¼Aƒ<È7Ûd¤*�†É„B˜žêØÊªd³½·Dn…µ 5–�r«Q»ƒ™ìf%¬ÚÒxG¡ŽLR0 ÈhЉ§á)´·&Z?Ûn~ûžVÃtÃ�Ñ^ËZ|�‚T~Z¼c\TÏ`œÉíg£MíŒCRK ¼_$c¿N/¤Ý¬÷² Ì"/«¸›Ý¤îÿ÷¨I�4U£2ÒBIÚðYפX´|E@•Ù«>^S„à2ù0Q`“ƒñ! ÈN¨¸Ô¡+¶�Œ·±êh^s åsW›²EñW FÈMˆÇ@>Ë윶ÿcƒDêSËL¥È](¤ +žšp T 0@ä EåhU\/¦«aÀE•®rü´¿/×ÉB€SG6AE.ærÖÊdâÂÀ¥+àÏb-³¶*ªÒDA|�´„µß•­T¿$ß ±R6Ÿ ×)Ë—• A[Å›GZÅ[S�˜­E~ +JˆQ†nðUúÆ &S\CTíTêˆJP².*sh †þ•^'è³ÆË…Tý. ·"ÖWOa^9Ͷíd=�d#QòÆoÀ<ï ŽAðMLMb%+bÔ +ŸÌ&‘ éßPýŒÌEÅÝ”w�Ç„ª3�®ê¡ð*ïpÕhÔ¾Ý%ýM\À-楦íKÆhQ¯ŒU4qm±«ñ#`•òŒðÁ# �Ÿ"3Ã-fp”È y|Dá9¼Êž>ÍöžßÝ^œ~¹Ëžž�ž�•e×ÙÿûÙþ~öüå <$¢Ý!‘§ûUùÔ•ö-•Wo^ˆ3$yÜeæøä�£,ÞÙðWðÞ:,ÞÆ`P�´:¡¦2 +Óf$d;âÁ˜o ÝŒ­l3a½q{@÷œóa~�ãêwVåfŽlú« ñò¥Èæ#ç{ ‚7v–DÉ© P¶×¬¹&· F$ˆSzeçG©Ôóh3mÆÔu{˜Ðm£×Õ”^¯µ–ø"¼Ó±tZºÍ h/+qPä† ø.íÆT÷J”2'ëEÈßô‘,±ÅvüRj‹M˜2¢ûò•’͘ EÁ;¾c2hØ…ƒä©·ÁŸz›>îVWuѵö¼[S•EÝërhâo€6‘‰ŒVÚ̱¤wa©ëЦ\b‰§ê(\™Úp(ß Ég4Þ¡y=¥õUÏËjd€Ü‡ÖeQ¶e_7²$ü}ÞÅxûBždãE¨_q¸ÜûˆCV£àx¹¬@€™.+`w›Ž ^ÉEṵ́ÄB©r¦ú"2> ÉSQï$*àÏäIJ$Jò ¤<œE˜H�…�®Ai!ŒNÕ”ÐròIsn†[½¨ÇÐ3`È”õøa™ª]Q³b<ùvñb6o�‚0×:žsRéƒNó§øÒþ\-;ôÿf2�ÏÕúÓ•4gå(Ÿ1›ÿF¨×µ.4B}o¾uýÐ ÿc¨×}íN[ϱ4�–Éè�å’c);¡ß:DeŠNy”‡ž¨¯!#Ñ…“ÝjÖrš1˜ççá<Ÿ÷Z§ìO nη(ìPrç"ó5C®uYlL8Ø5øvï�Ï5ÈÕD‡|¡ÓÝv„5ÞÐ]N{Ë´/sRl84LôÈ!§©Ü/U*úIA«›¢kšÖd:¨ä%)ym²y´YK_3“X¥]eKävtnsT”ÊÆô€åÊt𻬭¿µ4ÎÍ ;\|U⣭}‡XÇkÝà£×öœ¡ÅdØó‡Â”vn÷ñk†»ö,Û`ègT*0.U—Œ‰ ³öÁ ©áÓ­iƒ£Ütƒ$œÇ‘V�_«B`‡s�~¸ú_ój ú¸°›|\“JAá{H EÆÁ»,µ Íf…kBŸÝÙ(÷裳èz>>> /Font + <> /Pattern + <>>> +endobj +108 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x97 Do + +endstream +endobj +109 0 obj +10 +endobj +110 0 obj +<> /Length + 26 0 R /Resources 111 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ040TpÉç +BcŸ‰ +endstream +endobj +111 0 obj +<>>> /XObject <>>> +endobj +112 0 obj +<> /Length + 29 0 R /Resources 113 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +113 0 obj +<<>> +endobj +114 0 obj +3621 +endobj +115 0 obj +<> +stream +xœí\ëoÜÆÿ>Ñ/=9ŠÏã10 $NÒ¤hÒ¤Q‘uQز¤8•åÇIMÒ¿¾»3»œß>H�¬¢i€Úð�Ç[îÎÎã7�º)jówÛ˜�}ßg¯è-½-N¾~vssþîº8;'oö}q8».NžÕÅå�ìøaxø»ó₾¡oŠ·4ìªv(†±è÷m5Žc±3w†}kÇ|W\SSØ¿ï.—§ÑIøÓÏSWãà'©«}áÿéTóÒ¯Š¡›ªºí—«ùËØtLÉ•›Y¿¬�ówœ¡¯ºgðßã.~ñ ýª·RWMgÿé…Òýñ)MÕ4Mã°…š¿í†jªwfÂ}S5ã´Ûï‹ÓWtr±m¶µQˆÓ úëæÇ²7¯ËmÛmÞ•m#?—Ûnؼ,Ûzsm.ëÍeÙt›¢47Ÿ™ïãæyÙôî©[s—67|Í#äò{{y^6µÜ<¼2w'÷ô•½Í<€—äQ/J2óÊ ™F®ùÇWL Ì&Ï̵[ÕŒîÍ8²Íõ)ÂGxVØ$¬"îË~0¼ ­LjvñÒ’z3ï;˜ŽgžÈ|™Å)Z�÷/K¾±,e¦¼.‡Ö‰€ñJ»ÔNaŸ¢ÍÖŽeAs»1,üÛéÈÂJÕ Ó8MÅé #fæ1¯v°$¶2)ßΩ¨„þî&¾µû°c æKÙ)ìèéD#¿¾°4ò�ofµ¡ÍÁ2³• ð¶aÇ L™ˆ 5{o¥|Z¦š?(Û$KeÁ“ñÝšïî’×!¡ÔøµÎóƒÈá†Ù¶ Äʧ7 2¿&¬¹(·;4µek‰“Š|}Qž’Y°HµaW7{§ ÉÞ²T\© +xþw�Å’þó„¥Ëß….™”o¨ +¼(sNh_ÿ*·~¢bÖR|DéLùH3‹f£îž%Ö{.ÄóÞˆŽª‘\«Êßµ—ÜVÈøAÞ–ƒ�d–‹ª“g�\Aì5[Õ˜WZ°ÂÄ;LÀ`LغAïD2Ÿ—�aÚá=…QÓËÙ‘©ù)w>dî˜x¶lH½m­A´M/LzÚ¶C¹Ì>*g™€d ÔJ"VÅ!§ÇJJ˜bŽ‚øû­Îåì—<骉²€=Ц*86QF¼“M±hóû‡À)Ó¼ïúd(‡ØHŒ3Å„!BÖÛ/Á³óFzÆ¡bœ)¼†(?\�­¥Ú�Fš÷ {…�L(툡ÔA¦ž*A ¬òÃ3ÈÉL|æž]NB›ôÄmÙ΂£ +ú�å¶ ŽC48xß„R»Wʉ_6X]i¿Á*n¦ˆž™çjîü�Då+ÞÀÝË?Gî¹} ÷jº +Ì’kfA +=¬qœ§1‹N³½¸ÓÜ‹»Ü„ÛM]e«·CÑ7cµ›zêÓJî·e3¥Ö–·ùζ´ñκ5âš#ˆëûΕ™×ˆ[ æÚs=®Ž`Ó°»Ú×õÔvIJST�Ö6¾ˆþs4)7 D”p¿ŠàÂéÀciøŒMAQ 3—ùùDB&Ö³À>50 5nÆð3�k³8o%C½+”E�v¨:nn´I=7.?-ËîðÓ7VÎ=–KŽt°ô8¡”Ÿô8'lrmü©Çs»5=€wòsyŸ&X,Ç0ѲëŒ_”Èò`w·‚Jj�š£�ÅÙBãZêNKf|/à@Ÿ¼@  û#$&UÂL+ð¬|­U¾½ V"å‹ :N¥ãj>¼Z%¬Xj?^hÿÈwÅb†÷¡k†‡Ú°+n†m$NÜöãoâ®*v,*Öܯº‘œ.�ŸxÍåÜHʳ÷wnr:¾°!:Ò餾šxí ûèzï]‰“w qõ,_<“nèÖ(@—tCݧ Ö-ž|Q +²MÐݳE°ù®ý¿fu0x·Ê•¼\u ÔæÂjàœuüš4°­j[јbÌ6}>‰{½ù®{w‘qóiÉ׎Vzp­wÖDB)Æ­…Ò%¡4ùwÁ\ëÅÃL9tšCøÅ*”—Æ­OnüVâR5$ÒÎ/k©JÚã‚cÔ_›œèI&'8®ÄµÆïlß-…ñ툺}wAŠÒçëö^h#I܉€½¸¬M¹WšäUÔѸ+ƽ„³lNw¾À©XG캇–|)vÁ;Á.كʥcêÒ�Q�Äå8'ï¦æIËöù[Û¶¹Ð#ul¦½Î›Õ—[¡ËÒW>Ÿ_¿qˆÎoþ²†a ‹a)£h-&“I€›T=‚z>vÏ;–Rd&ËJŸÆþÁÛ/3Myqå?¡x+¼S| ÔÚ—h¹ôꪱ® ëÿ»�¾ÚµùÒëÖ]³ÞH‰˜W²æ$wÏ…JóÓ–kOŸ83xË­íÑ´!¥Z[WC;Õ{³8ë÷—.m¹?YŠ…~¥g.ÓÛx}i»Z¸÷ù³’,_�€G£Ðì6Í/óx™þÊ›ƒðH‚н+¶»j§ÁxlGWΤãÅ�Âó>/»·ÏK´¼çÚ|h «®Þ†¥ÛqWõ{£ëÌmøÓ;Êä…‚¶©Ænì›Î“ðiÙ³éÛjrçù +3+ aÏ4ønðÉ>Å¥Rû€<|åÔß=20Ù½{¼*öÕT÷Àˆ¯½€áø¹x3Åèõêú7°r@ +endstream +endobj +116 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +117 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x85 Do + +endstream +endobj +118 0 obj +<> /Length + 119 0 R /Resources 120 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ°°TpÉç +B]¸h +endstream +endobj +119 0 obj +33 +endobj +120 0 obj +<>>> /XObject <>>> +endobj +121 0 obj +<> /Length + 29 0 R /Resources 122 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +122 0 obj +<<>> +endobj +123 0 obj +3638 +endobj +124 0 obj +<> +stream +xœÕ\m�ܶþÎ_!ôKV…W§w­Ã@b'M‚Æqš+‚" гï­éÝù|{W»ýõ%gHÍ#’zYû€¢6¼Ðj©áp8óÌ G.’\ÿÝúcWÉ›kõN½KŽ^�ÜߟÝÝ$oöÉÑmW&û77ÉÑIž\ì•ßô ¿;KÎÕ�êÇä�jÚ¬l’¦Kê]™u]—´úN³+͘Ÿ“U$æïÝÅ4!BŸŽNžu�#’g»ÄýRÃÔ×ISõY^væËÕð¥+*âäÊR–ï—£áqúŽꬪ�‚ûîS8ÿ#,ÄMô½”<+*ó' /„ï/�UŸõ}ß5-+Ôð­m²>o5Á]‘]ßîvÉñµ::ßÛ\+Äñ¹úeómºÝmnÒm•o’´j6'ú²Û\¥EÎtó�¾YÙŸögiQlöOÒ²åïÓmY©Í¥¹>¡«ú§rs›5g:ôß85?Ñxº¢”ÀÓÑ�û¤e±ùOºu„èîyºm7wæ—·ôÀµ¬"ÆS�kˆ]íï‰ß`É7©(¿NG[9ë¼þ±å ½�§ÌÀê�m6¡0.&Ç�ð5ÓC~ñ´'–}[BÚ³uÎãEAgÂ6b¦¡F¼Óš1D[I�„ëu÷æ6‘V£_£~_Ól‰ÓÛy” $ u_Iæ…[5-ôe«|ÁPÁÆ "Ãþ„ìbÐ_Ud·ç-rÒà•gñŒû·dW�WÀ1nʺaÀU¡'™°ÜC6ØG®<øð/ý@,Ö]€¤~ìjÃK;ë´Ûu™qÇðY;åSžÀ|g {m�Ä#‰ªÁ‡‰MId»VÉ*CºAr¼9Z)¨Ãl}Ʀ¢æ +TÀ2øâ@ÐÁÈ® ìɆ–èÝ.E¾8án›ªmœ£ÎÒ6דüBúöÕq4÷è‡Üc:é(t²QSÖQ´”zUu¦Ò,´ÈãÕ ƒ¥ ÕsóQ˜�jŽ¡bCeÙÙ4hš¡Íoéñïª(mF^JêTôeÖ6¥<“Ë"*͹–Û¶è5ÓÃ¥–kÝç›oR²o�%iq—F“Jc¬VÅ�ÂiåÚm>³ Ç:]”ö31By�’m¿0³|fµ�\uÙÙIöæj;¾ÔŒÜ–2ò(³ºk›¶œH Å×E1[�€~nÞXß­"©Äl<8 ã*†] +Ý ìEæ�Af‡?~LöªüôuEö*Ö<š\Ef‡Ü(ÎÍF\* ´Wc8‡œña�`Q Oá‹M¤MsòŽ“ò0oô�¤œs ÂizêüB˜ „[g�þ{"¼¿*œz �â ¨ +2 9q[>˜FbØ õÁ¢<ù`d†�a_!ÿá“’­O¬{Ÿ¹:�ÚülÐ#š'‚œÙ´âA˜�, ì!ž9xÚTŠÂd{9×¾¤a(K÷CæðØtÂB]È +© —:øCÐ@°CKH6ƒ S"­Àå7©©OBU޹j–r{ó$žÕø@BÇpF€!’€,¿P±B¨ðTP¬ç$+ýÑ,d=²¸ Q�¡e·6h”TÌ‘ŽÓP(¢]q§�à±rH(¡ÂåG—ÀûÀÕ cU³Õ‰¾ÑDG*¿˜ZÚÁa@tJzK•�Û!lƒXz9M…B)¡ +¢L§\D¤lafy˜Ë=Œ]ŸÝÃJ~t,F¢‚’=é5y‰Xø×šVå¥Ç¸/DÓ ¾mg‰w, +ðÄÀ­spÛ¢ü¨œ0(€àbt?Œq¹\WÆ~DÏú®†R¹ã è „Ù š”Í8¦èÖs¢tå'ó^½+8c±Î‡f],føÇA"s{(?“Ìò0Ê[qPùH¸õÐ� 5 Ž� )0h±‰-¬ŽŸ \ý4ºÈ¿¦{MVÃAÁ;P8[¤Åå;ÄÊz4!Æ“#=!úç9ƒ?R‡4:†‚º„±Ó+…¡C°OÄ>Â;EA"ÐeZì!=F1çjª|^7 ¾Û¸7…GYþþA,5½ø�/É�]×8Vþ+Ñ…rÑä6Ò2´¢,&6¯eNÙJ5U./æ–è5÷˜ßÔtwÏrÁ1RŸò}IØ`â1Š^üŽ£=ƒµ�9Qq pfºN�Ö][Ç�~VëmåZ„©°¢¨ßóÄ�-d1�QØÖmŸ‹gÛü=í7ß³c¢ïlæ.}ýÁˆ‰>Ì­?›ÔÒt�h‘4­=ؤ|qOM*Öi:.E½Ò'pSÍËi𬊪UÉìV˜œ¹SÕr‰©x˜Áæ@~;k¨lAä �-©AcýxýBz�V0“2�î°!VÔÀ£ÒbÊCÆÃ%Ì\•7 Hfä@n.¹„ +­àwÔ×ÇzdbUg!à‡Œ PßËPPþS�óH¼J_EÅ~2‘øÓ4ù?Ç!^�ÍíC ÐÁ@c )Þà´�S÷R% дs>»à2F@� E&ùÅCðCÙ%ÊÏ@S�NÂGCi9í]qØ«ªK%�ïw,«¸ï÷cr¤î{$+teœ'81Y¥ßžæõþúˆ©b÷QE&µä~VJî‰Vâ¹0r�»¸y“Mi[)òfó·H¡#XÉLltÈv‡•Àj,âÙ×Fo)�ÝÌÒÐi3ÛH°˜Q„MÛ˜âÀaþ²úX'=ý +�UŒ ªŽA·üŒÀÇ(õ8‘¸d,š¾Y1Î…¯0ÿÈPX˜³#fE‡XÕùhŸÉ�”ÊýÌc|X±ŠCû¨©\Fx00Ú:åíTÔ†Ìc®}Lqú­žzÁñ!Ñäò‹[â"h/ÇzªÆÇüC¨8ª"kvâNÒ?, §�&àÉr…�|Q8'.¦;ñ6 ¼¶?ÁŽF zÔrç—ã[üT/�†¯jè¶©§ôsQe,>M !¦±Õ¢Ê‡/Îxá/xm0ö‘}šVPÀ€ëÇy)%.5g<3`i¥\Ê•&^à7ò0®&¤ü`9T€Ÿ¯ÃÈxµÂ5€¦G�]FÊ!®£½ýŽ}ØÄ©iô`ÒÅ1$º ã +à9`Ó­×SŸäö …QŸZ�|¹¼h²\Vãȧ¬²¶lš®KŠ:kú¾o© fó‹iwÿ„&ÿ*w äuSduW¶úfÐ@΋á“;*Ðî ¨µCÿ©­ýUÝd¦w}Ž�éÖþ¶ì²ª®ºf¶³.»³Ÿõ¯I7™ SáÏQŸ¿7úoíóoë.+Ú®oûp›^q7öœ‹oŠGö¶zç^´s5Ä…6Ÿ9mðž#Š’ZñêÁ€¬«"-lnÑúX< +#CõÞÍ"KnRM’ü_2˜‰ ‚¿`§N¥„y¸Å¦ñW¾kàû’Ã�¢/ú²€|׉Äü3?`ù-Í÷�M +ðºÜºxÖÇÂ?úéöä&yú49úâÍýÃÉÕñÙ‡ûäéùÙùyž·­ý×?Kž=K¾|ñœ µ°†úôY‘?Íó¼zF°ùýsÏŽÍË@Ìa¥xýË—4žÉ_9ßÌ6ϾbgA¿l³®ë›¢v|Qêð†�5+D÷uZ¸|š¢¤5çú³±×7:ëp®Êw�é¶k³z§½B´µ|jË"”EÖU]]TŽ…¯Òšâ�VÛ}åäÀ3{³1ÀÃŽx :Õ1ÿyHE3æ~øÊj¿}¤!¶kûxÉ\ìt8Zƒ ^¹ *XâglŠšDëôêGõ_+ðëŠ +endstream +endobj +125 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +126 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x73 Do + +endstream +endobj +127 0 obj +<> +stream +xœ+ä +T(ä*äÒO4PH/VЯ07WpÉç +B]œe +endstream +endobj +128 0 obj +<>>> /XObject <>>> +endobj +129 0 obj +<> +stream +xœ+ä +ä’× +endstream +endobj +130 0 obj +<<>> +endobj +131 0 obj +3862 +endobj +132 0 obj +<> +stream +xœÕ\Y“ܶ~ï_ÁòÓ0å¡ÞLTJÙ–]v*J¤ò&~�ý°ÚK²÷ÒÎl"û×èÙ�‹ÃÕ&Jb•§†hôñõ�檬Ôÿ¶J �ÊN®à=¼Ïž¼<ÞïÏ“]öä¶+³ÝÉuöä¸Ì.v`žoÇ¿;ËÎá¼ÊÞCÛU›µ}Ö UÑ÷}Öé;íP™g~È®AeæßÝEzž?§yÊ¢o§IÊbȦÿyªy髬­Ç¢¬zsq9_ôªFJ.íÌ|ýÖYQ Çk9CSÔµœaºög8ÿ�ØÈ´ÐÿõVÊBÕæ¿,üÂtyc1Žcßv¤PóU×cÙé U¨~ì†!;º‚'ç[µ-µB�ÃëÍm®šÍY®ÊÍ]^©ÍÖ|ÃËù¶ª6'ù¶®7oóºÝë¯ýæZ–›‹\ÕôXf~z“ƒž…ؽ3óìôýnóÏ\ßÐ×åf¯g³óà5MƒƒÅOfF »ÿÐw•�)ÃatM#ðÆ ~¥ÙhMºsžo;œ©Ùœæ3m4�¾ûkË'²ü§£?Á“ïo�¯³§O³'_œìï�/�Î>ì³§çgççeÙuúÿñYöìYöå󯈧Êòô鳺}Z–eõÌÌòõ‹¯<–ç[UÍ E"è#f +ž_Nò±lz™7›øü‘ùùo(.üå–·MBüE¯K,–‹“èð.=FCîqu}[IšpõKdŽ®¢nÇ~³£S½«ïòí`)¥éY©ðÛn� +EBBâð7ÊȬ – +‚w®pvdR"´CIOÝä`&Æ}Hª|%¡‘Q&ñ€+Þ={?ߤ‡Š¼jéIÁ«nàèº$û�!�8N##ð1�fØìîÍV„…:Úó×à3R†INŸÏ»Ï×Ä÷k+ó›f+RWªÁ*îðŒåK²GöÌÚ/­÷†Wb-z–~CòMË× ÒpO¿êŸ5£‰j©]¸¥66œa ­‰Ã¬ †°†6õ³0>Á5ÚöošÕÖ×X0Ž–<•$ ô±lU¦}2!8ϵU–Çá‡*âÑä…;¸Ê£ÈàoÙ÷ž8 ÍpÇþÂ�À Rº°jû]jûzE³ÿ&µÿ Ø«�nñ‹\úÊø’¬Õ'jg/ :RÔ5b·’-È' ‚“8“oxS°×ìp^Ž€½<ÅÀÎ÷¤kž€p¡×“tÇ! +^‡ã$ÂÌd¨ˆ¢/b>›!™A**ÛéàP·ˆt0­¡ß»æ• +¾%~°¤A†qšÊÖÑ:$(*ƒHH±˜°˜$Ss¯T#"Ê¥8Br�ƒ0¡±'%�~÷ ò‰½sÁçŠ 1!Å0šÁÜHd)ø,èen7�·Ú!æ&!ƒÓ=›¦Uǃj!3 +!�j 4¾2ƒÿ2 Ø\dã±&«o§nvÉÐø¼P£Öú`NG­·*8}ÏK/æ—Ñù&¦YU޲e•¥� âc€áŽÇ’&êK"‰)¥k/Õ?œKƒ49âp±¶/�CVØ|“wí<<êÝÃ-¥ýÙ/ j +Ì‹ÕÑ1T¥ô/ 3­›pX™è7?Œä¦ÉÁ±ÞXVåÅìªirö²„Ø(eµÁÏ>§5“ûÒr²s˜Ñ÷#b«Âÿ¢:ßzq+xbΚ¾E¹‹Œ0¸Ë4ÖhÀ”o7ÒÏ>TUa•ݪ:ícÑóm%ÈÎУÇ\æ&ÄRƒ^Ül�nžâç¯Ó@'ò< …¤ÃB�Gs°[„saó��sa1°h2‹Y<ë�¾ ÞB¬ ’?.eð’"ãS‚‹ršh(ÔaR8v`uïϹþéi9¤³ÒƒU&w΂[6÷àÑC“ŠEŽ(±B-÷Ò¹tɲJ"ô÷"d·DÇ �÷áô(ùà9ZnVFËïçX‡ÞsbÁz´pæ#4õ=çLoP#e,ëFˉ€7¶ŒD³EHŒmG¿« Ü2p£îGUÄoX4þ jXªâ‚‡ëtKàËT¯dÖ ˜áGéÑu—*ÇImžõÁÑ�YŒL=ïù6ãîsÞ7„L�ÑÔî—´¾1jÿAmŽw½zBx@5«W†�º)úªš!Sm1j‚ºÖ´y�ý _EOÞÆùä-}ä֨Ξ¹©r(ê~Ðá¡Û÷¹eá^ø.ûñN+Cwi>pî A¤ZCäЪ]&ró“áĶêŠFi:3\µãH6ûh>UU3‘0ꛚý]õ?ǧj¬Š¦\&’ø¤*{–_ñ¡k5öÅÐ*SòÆj½­‰[½=Å_uŠÑŒ¥TÑó(“OÓm)²qUÑõ-ºw9zòAs¢2n… +ÖUO�óÀ·ú—Ä{;œ‡ÿ-¯FÀ„3³'&ú§s [2ËYÊGq¢{D\¼w�s¾›pÕ¡hp4>¨ãÐŽ†Ð×̆ (°ÁR@ŸôÀÅ™ÞöÎnÐîСv­ú¢ëÛ~P¡â°Ë ì»™ ö*÷ !ˆæÁß‚z C¨çÃç\byëg¦ d%ìfn8NÛ`;„ˆ¯î!&¥´Hë¾eWÉ7ßÌ!‹ôGÎîa!z`Ý\3{˜¨ûH{›XtDýbIq#ËÀ\äÒFìÔä�Æþ>Ó3Ɍөy¸‡Ôé0 m�¢¸°ÖÚLe®^%7àB� sÖ̇€þW¬d²:Xˆ‚ã‡lÂú„ÞMGkÈ×xãRìu4†ÀD£o3~B* ^±Øð;-‚TYJDôÓÖ:¿ÉÖðzr# ¨A²þ›Ϩtd9ـٴmV)q�X‚Ì\zpÓ¥`§dpÅÐk™+ßî¼Ú¯ß�"s‘¬}‚î”ìûXc\ ŠA�€1pjØf©­dBWŽCÙúŠïwüˆš+«‘„¼@&®qWÅÉÑ’¾À¡ì4¨¯øÇ Ö¼Àõ<¢'êж„¾9§$^ÀÎÞ5­A^«ÄOµhcKMƒAļÖ颲sÕMJ‰(f[ŽŸ,JXÙ§Œb:ëAog³•¨Ã±Jâ�…AÌ ùJú­v±&,úED‚ñÊ «‘Ø¡ï…\‡�,TH�;h3Écž@t¤´¾Tetß¶b/ç·¶µƒê÷×ïr3r®êï¨ (RÎßZëþQ­F�XvïÛºQí„f|Õµ�×^'U„]9Ždh9`�‰ �*#ûq£l ;êØŠ!¡1âaË»X8DüØ {+1Á J»³|÷Cií¼Š�šÑòZ c&/½Ca qý:„ÉNù–ÍSôû2¥‰Fï¤^¦¢8Œë„�÷£C7¡#„@ŒPˆŒ"©õÃÎñ,ƒ2©€ß*Mr¸±µRG°ÎOîãp[‘ìö°k@^É$/?yø…át`\h +Šiü³5?#òjÞ rMfUQš~ÏÑïa‹�]Éó/g«U·xrç7ƒ‰‡m3›¨Lúñ¯¬hz�nÞòk²Ð†™5–�èMIU!ÁÒ'š„X8? ?pRT÷BådÝ/~¢Å• »k^°®ùaUðvÇBÜ$↯Š$Ãhÿ%QN¤Mˆ÷o¬;ŒvMù"@Â5§¨ 3kiØQRà‚="¿ãzëÞNS�ˆÏÒ²¾VÀ=-§ %ÆU�·®ksb§ÿÖékxZÀ‹àAG)+?<ôp"@ñS +3@ÉñË'ø‘†�û¹5'èUH¼ÒpЉv‹3q¯þ°õ,æ.nÒñÞ<~URV‚Ã\^dØ®òE_‚ÈÒÏOí& äî`Mÿ@¥Éc)|<[\Ù:;=¿¤öe‚µÍ£®Gí^â"…±:ˆxßlgЪQ8!é¥÷CÞƒ,Èì…_]°_¦oD¡p–b½ðÞ‘O�ï›Á‘€|alYª\ËS4 +¶DnÅSùmq¶‚4ìÄ‹v»¸½¯:QMÓ3;E¤CÐdˆW¢ébR¿»‡Ùi›ðQîB3ÈNåK„}õɪñ´AEXð.òÂ>kÎÉÁÍâÙËÑœx”.< …[£7>@ +‹ˆÛKçˆQtðÏc™x~ß)xÍ+ÈmdΘ‚t¯Ù'[<Ä^ÔxÌ9•Úü�_” °'VÌ÷ VÊYÊÅ'PE �}äù›HàW`œè'Š÷ì¦Ãž½ˆç”›ä ×9_d¶²./Þõç¤Î‰³Þ5ë†ÿxBq3a�DSê9™G¡XZlüÌD÷ýàǽŸI¯§>èõÌxQ:›„y:ßQYðƒ}^®; ‚T‘ÜM*Ö¬¾W{Ðßsp¼;�{…w~÷HyUëäÅ5ß3?Ú8ÛPT.ÿÌ»º®Ê§ÿ0Âî­wëÅLÓßæXHJÐ%ˆ +Ÿ˜ì0º¹o¸$T(Ö‹É7!•p +õ_E"ÞyMs‘aüh×% >šHˆcQ±�fî&ãìuül|¡}9vŒ"šž�N¹‚Ø1ô‰øTH6/(�4Ê›ÕMhB�¡*þ,Ë_‰æt¡7À}Ðä-dÃA¼¾²2Í„¸ß㛢õ�Ac%CXÆB:�PM¡Á¬6 ĪèÚRÕÿ§gZµE‡=ÓMÕu¯Ê± [_Ÿ›sü‹Ø=ýí£› ›êàªÔý˜­µ¥íê]ÚÚ7Zü%½eƒÜÇî­?¼·×¤¯—ÖZµÅ~X±î K((G ­øðiÏÑÇÖƒA²I|êBÛ ih[årO–C$•ÎêêiùG +¡n§·Ö(¶óÙ‰¦?Z§Í®JqµÆ¿€�ï×)Ó&�FnŠÎ×6£GÐ?m1~nQ¢mmGÆ96&P,W•E[�å0uP¼°G“Ô ¯j¹Ò±uÍ|[~¿ÈkÛ‘ÿMƯØ¿×Þ£² ù_âó4ýåäÉéÏ£/!T]Ñ÷c«š‰®¿šßNè�(¨‘æ}“c3Á¼}\¢Â=—ú³µß�j5¦Íbh5K·}W4ƒA51·æOc)£ž�w}Ý7ªžHø:oИ¿øUO| •‘ˆ�Œ a@ð††°ÑŒÂB¥@ƒ/­‹³CZ$»±Ã+¢bÐXÒF¼œ¤ˆãgä„õí¤¼¯à_înS +endstream +endobj +133 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +134 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x61 Do + +endstream +endobj +135 0 obj +<> /Length + 119 0 R /Resources 136 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ03UpÉç +B]€b +endstream +endobj +136 0 obj +<>>> /XObject <>>> +endobj +137 0 obj +<> /Length + 29 0 R /Resources 138 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +138 0 obj +<<>> +endobj +139 0 obj +4117 +endobj +140 0 obj +<> +stream +xœÕioÜÆõûü +"_J^š/À0à+¨‹8µ¥A‘øƒ-­ŽDZÉÚUâæ×wæ½9‡\J+hŒ,vɹÞ}ŽÊ¤ÐÿV¥þèT™_‰/âKòôý§Ýn}»IŽ·ÉÓÕ%ÛãMòôS‘œm…_÷5 ¿]'§âƒø�|u“Ë:©ÛDu2oÛ6iô“º“fÌOÉF”‰ùw{6½LX>Ý:EÞÖn‘"ï÷XÊo}•ÔUŸ²5?.ý�¶¬à$—våðû|°#™¿é +*¯*º‚ûÍW8ý+Ämô J‘—•ù/ ç~y$ô:ª(JÕXŽò?›:ï‹F/Yöu^*UWert%žž®ŠU¡yâèTüœÊLÏHsýÙ¥I¶ª‹2ýg¶’2]Éd™ÞéEz¡?ez»¾ÊV*]oà×N–é6+û4ù.+©ÒOzb“n`Ê™þ¬ìt|ŽOÖIöñèï¢Ïû¾ok{fÿËY–MÞöM§é†G.Ñ�2½ÎyVÕé:Ó«'æÛozqûû?ÙJ?€§dU›^ëÝ«ôÖ@s’iX·úU“~“‰ªJßé±mú£þ¬Ò (°ö7™þù$“vø ï¿Ï„þú�lÕMO×8ÕsÞdú$Ì@³�Jßš¯äÕkƒÇø°çßô,™¾Èª"ýÎŒ‡�øh15Üyï‰Ã†G"ìßá9s9:Ñä\p‚¢W†„0)‚Ÿo2¡ßÁJx¶7óÇÄY/4»Ôé¿Í+:HèQŸ`€fe�;àš06Ÿ)<.�P?êq÷€l3Và´‹Lv-ø½ƒs�ûWÈ‘° 2ë1`íÎ ¸‚ikMO·Ά…ð”ÀÚAðýuõÙ,ìß z ï`•34¬G^$à¦[Jͺo{KÍ¿ÙöØVƒ-Ã9ÂbÔ¬úR qžáÂZÈNU‡ Ÿf«CЮ>×JÑ[=LööÌ—€ÅK�©_Ròž„Mð!ÑGŽ7ZNÝæø&ôÀW؉@ˆJ +^!VF~Éà0ž„Š’�ÅÃä pD��/™„ß„UÎ £~Yùo8Æ�IؽîCÁˆ&ÓZK™¢uBØ'�qÿ*4äàr§�£Ì㾘éwž9�¸Ž€e�ƒ(û2x�c € ð`€² Bi‘+ô¾+~å@î@L(‡óƒÃ¶Z—x†]2�ÝíöÎØ¨«° ¢‰êŸ0\èñ×€ÜD€Kgg <ì%Æh¤ë xÝŸÁJtÀ]j {¢Šþ<€Mk é"™¨vQfW„r˜ƒx¢›n¬(cNŒ”qU¾F¹ û*ª(Y·Ÿ`)&|Ì4:{{‘y„i‹PµB @æ«ÎBôÅBvZx%�„v²BÆ|/\– öãšðn³`‰>݃�§„pÇfk»6ªž§m/ê<3¾1Û‹ï@nQÅøùýÞ§?Ü|Ú$Ïž%O_ïî>]­¿î’g§ëÓÓ¢hýÿñóäùóäåëWèô–Öé}ö¼jžÚ¯nVyóîó‰Á·FXÁé †ŸhN*e âp‘KÆ1QîÇE¨ž€©ZuSšdW#E͹;ê…v‚ê"b†ÈŒKo!©«5Ò}ÖŸyuM¸ë¸ëÎ?%¨¤Ê›…05²×qsM¨¶ÕÊ´«dXá+èÆS�z- m¯­XŠpˆ{é+ÔIBÐOŸhZ×E>-ªo¹ï‹ª„êÊÞ@n:‘¬Û£Â|s�Û{·ë€}"ö-¥~U¥6E¯ÆÁ/†BßB\ýÊ“Uö*ýG?w–rÉYšvÁY`럆»­÷cƒ,Ë*oêùc¤³£_$\d«—mT§Ô8áR�.ï2c{wðâ ¼†ËI¦ÍQ²ƒïø$±É—s-À>±²�LÌqÖšäʪ‚o8ßœÁ÷õ6+A0õ÷ ²ä—J޳šÌ*l~çö~\‚}IþȤ›¼³ç€¹�º0 U6ͳ!‰ŸKÜÿÄLvC͘?³N �W ²wjá‚,qjBk<×í•Y¯³'»p&ÏŸ8¡ó’·æ8 FáÖ ¡³¿’w 0-[ëH‡4<^–«ªd‘WZ­™H•³íËš‚B’QA)Y£éƒ®Z0%1R]$>ŒZçíMæ|:.,rAú)DÆ‘Ó.ˆ´ÑP/êz1ØÑâÕmu¹³$I€�8_ÄuÅŒ†¶ºCר»…#\��41¯çœXÝàW�WVÒÚ�h%"3w�!®ƒßÍ^¢�¾�›Rî#“\|} +äÍ ð‡Ü£ùGtVp™à€‘à`š�o]ZÌb P2P,p�zè ý¶yî‘É =}èQœx`ù +@XóN8“;ă]…@Ç®†™A\ª‡rNK¹Á&«`Y ñ:FÞ4„i@ç÷ÙJµ’Ê2Eà„ñHâ¾ +ÂBïaYæm]˜"B�›„ BªØàLІ±�u¥¤›`S\a^”‰³Îó¯ßC¾ÌqµÙC{‚yÛÖ][EsI3þ£—o‹éOw8¬€iø¨‘] é¾€ìA.iÔÝ n>ˆ2¼ê0(uyÅà´¨!\€�ìÈQCsæDKû™äl ¯b™Ù ÷>*q>‡'{Œ´pú‰¼ + Ƴ£ˆ±'ÆgÛ{§O§"¤¤°‚4‘À‘,ªv€Ÿô um6,€uÂÑK˜€—B lUcœ‘ö‹’•LýÝœ‰2ÚøýÔ':`œý ˆâù«™Ä€ÅÒA4 ™Fi¡M¦jÊï!P“c<½Äü¢à˜[´RÀÓY÷IuD’ +ñ¢IÃøŒÍQÞ' ŸeîƒÂp˜±Š+ž +•Ø>|‹.êh*†ºÄ$ð\9”­:[©à:„•ä §Õæ*MÄ"Ä2¼F³=b�î™)º�@˜°ì`÷ +›Sç. „äe­'3.g)âþ‘�§Ô‚®#kI #Ñ?"Q°ÐàŽX<’÷a> ’úoä¨ç°Ð8ìP#6 j4Œ´ÉH “5¼�8U™6‚$ÞDè5�/Šg£GL`WSÑ£l)ãJq¿…7oz¢šb`‡&ÍP�΀;’{~ÿ"‡¦¿+„�BZ<÷r¶\‘Gø5©¨+9ëý1}!†éá`¡‚È7)¥|ú§ö$bˆ�*±À³Ž*—xi“j"D„%†þÄ ªÊÌ8™DlrpØ™w*&¤–O‹×£@(÷pF#ÂMâîí¹y0B.é‹™v‚¿’Ð`Âð¯êº‡Š�!A›Ë¢(Û†‹Þ=¬¬�(«¼Ô1¤!—ANT‡¡HÌÔ-.gƒ,Ǫ­Õ€‰Çz{�Í;*©š,¡¬UßpÞ£V�•hI4H,]Ì_³öž´#|öî ϧYï̈¤;°&íCÁá%‚/ �¡òÅü+š¹ãEî B>„./d¾A¿Î¨5‡Kå”w'bŽzøtÍDõ×ÛWSÅtY›µ›©w²ˆ‹è©�h˜‹·„'Çà¬&�”ÿo`IöµVL)DïÏ|�©*nÝ G�Sjâ>&€Ådî^Ûñ¤*w¨0F" Q޽§¥y�™õ¡ÙÃavi&{H"BXŸ`€)5AtßD_/@S]%Ð�+{Šbn‚ëDtìÖlÔÒSÚj5†»;®¡j®AJpN#k¿ŽjçQµb‹ ÂóÊd�`Tî­» ¡#ÖIÜ2atŒ³šcÕ5ÍÀ£³Ï!aÛæ¦PÕU,ÿÊ%8^¸3±_A=ª‰Y²¿b¤YÚå3˜‡h£Ã…«“�e=$Ya6kˆ€ÇF•æ/ì µ˜ó&S$vÆå´,«:ý‹ö‚Fé }¿j+�èØ„#™ÞZÆÜëÇ=¥õÍ>œ8ÍTäUQ´ZOk4Vzzû(Š©T…ES]“zzäÆÒ¸#àýÞ>f¹ºî´èÜY?š Ócø�R‹ý¨á-ë¤K�´3�BL̉=¨;s•*­ê™ùÌl“ízv!÷—(µK*ËèŸxkb¬°3BµÆ¸ÜÔµñéC{ýjåô×Gum³·§:zÖõ‘E^˾è\£Ì;ë2É"ÜEw;álú˜~?3r'1hü6ã6/ØêÈ šõ›—0—¿t‘=Òó +îZ¼lò¶íëR¹sAÏë1v·¡Å2ÅèàöàÃ`.ôgm¿—ØK£Ý³ªèj�ÒU«}QÆU5Y[ãGÙ“mü¥ÏªU¥ï!z“)ÈB™Û•Ãî¼Æ|8üU-†Î^dUofAÕLÀÉ—6ÿb§Ôple§£��æ'EñÞ¨DŒ¯1ƒ¨—PŽy?ˆÿZ +endstream +endobj +141 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +142 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x49 Do + +endstream +endobj +143 0 obj +<> /Length + 119 0 R /Resources 144 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ05VpÉç +B]d_ +endstream +endobj +144 0 obj +<>>> /XObject <>>> +endobj +145 0 obj +<> /Length + 29 0 R /Resources 146 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +146 0 obj +<<>> +endobj +147 0 obj +4513 +endobj +148 0 obj +<> +stream +xœÕ\YsÜÆ~ï_�·,RÆ +7ŽJU–�”SeGŽ™øÁöEŠ”‘¢¸dlç×g¦{ýafîŠvR±Ëkœ3}~}Ì€UVš‹ÊüìÚ*;»¢÷ô>{òâôîîÕíuv¶ÏžÜ4]¶?»Îžœ–ÙåžìóÝØñã·¯² ú†¾ÉÞS×oë.놬ÝÕÛa²Þ\évµ}æ»ìšªÌþ{{¹<Œ¿~œr;t~�r»Ëü:Ô4õUÖ5㶬{òv:ª†)yëFÖó׳áu>ÇÚmÓàþ<áâ�ÀˆŸèÿš•r[5öŸ,>PºŸŸ�§-˪í�EM§}·ËÞ 9ZÛ~gdprEO.в(�Iœ\Ð÷›*7/l¶æw·Éò¢+«Í—æ¤Û\›ßjsÇ¿·ïÌÿÊÍy^·›{><Ë{¾WoÞØ_Ú¼ã“k¾™å?žü…Æí8ŽC稚Î&¢ªªÛVãXW££ªRª>Ë‹ºÙ¼ÊÍ`üs“"ßÚ£_ó¢éÌ æ‡ï\™óróÒÞçós{t.§äÏùñ7y]Z›RÎ÷†äºvð»|Ùp¿Û|jßú:¯¹všSÑ ›Û¼® çEÓl^O#Þ)©rK.ÜÛø¾µÿ(¯…lr K¾Æƒ�ævf4ä–©‘ûžä9"3yâŽõmžMnýœ›;ïøÐI›²ÒAF—÷?lì…zÜü�›F/;¶2ÿÊrÆ/�¶7‡=¹Y_O6ÈÈLB…<À¯ ÿüœ\¸È‹žœ£<ùöæô:{ú4{òÉÙÝýéÛ“W¿ÜeO/^]\”eß›ÿΞeÏžeÏ?ûÔzI]TÎKž>kº§¥qõgv”Ï¿r·''Ê ‘JoTô2ûK+*£;#¥·yëŽ®Ï [†&f懆ìÚ€ƒ3Ý͉••šþôÞ�Ãèô.šaÇM{„•eZ”vpòN\•hÇð�Ñ‚¼%M¬øŸ¢ 2�4BKqn5.$åN^÷Û´‡‡8ÀR§ŒœLȹ×-Ã@£œë —Ó„aX„�¼o„©#bj˜Z•SkÄÔ š,'°™Æ;æH˜¹�åš� äÕ¶ä¥Ç‡…j=,ÌYðÈÆ†¿âVÂ(ºÍ¥½ä�=åâ7ï”?¹ì„F “”]‹ð!,Ð,")Žjj•…æº�N mF3yž¼ørJKõyá_C Ë¯û»Usñ^y„÷GÏðyoãÍ¡�Ÿ’dSÅ›9� ++*hŠ0pN}�mžæC™È©àžß½WÁð€"p̘t*šá•ˆT4¯´!Ô8ÀOBÖ²Â0Ô‡A2�0`ÒÉ-�‡+àï^¥-óí­å÷äÁsÅè‡S”¨­×ÕU»% - �Õ<…`uÉÌ"f�Àp«É–wÛ)j§ÕŒV–Ê/Ø +Z7𿹂ÖgC•&sö)÷…»ã²0z\ÌŸB¾ØåþŠKŸ°]-ýÀÛÀp€þ…ÈàL‡u¾¦@¥™1Jpå3_ª¯afÏç4{$™`Â-e™OÁ$oØl ò9°5†Å»\M†q¯—Z¥Ë¯LÓi&ÙðöN³´-z×uÞv& þÞECæÞw¯ +H˜à¹0Ls޵þÎ\t ³€Iì•;ÅáwÑ Ç™»CšËÿѾ!a`yy†—°ÊPAi¬(Òø {¯ +J¶¼¢¬2ÃÆ£óyþ”Äc�Oˆà)VÏ÷¾âÇäá_4Ó½ ++mŒH#;á-Ø¡¨„?kuÌÓßÙ@ÁÞ¯m(vÝ*¡…'‘DZ3ULÂŽ*0Ii)Êi�´»YÆr@ãOµ ^:3” b ô Bñ~½xk—P¼I4j£Þ¦m!ÖY<#ðú Y‰Ðæcæ§ÚVug—l‚Ô�»º9ýP×]^tfðoój9„#®b—ìQÒóW KØc±�ü‹†ª4A[±#µéîS"sñirøV  û íÕýŸ8L'“.qr¥â¨Û“aMŸÈ©éa1³glwƒQ|:H”8Æ ßr"à•BÀù›ø…È9(_b‚Š(jµI) õ‘Ébh�êp«�:ÉV4ʦ/Ç]Ù…NñIîsM\´:°³ÇÜÞ§úJ“ßѲãçwäo‚u¾Í2 r ñ²wÊÚ,�$ß8X¨‹ÑÅÃÎÊ\“v¤•„+*ÿ@rsx'!2?Ìñ¼ åí‡;;‡À�c¬ +<²›Ÿe ÄiP·+8à1Ä>Á,ý€}1­&ý\(c¢Ç:‘b¤Kðt§XëŠB¤ÔÒøRk‹êl—saó/pW+]}AøH‰pVß�„èbG(´Úl]mÄäΙbЪÊjìCÐÒ² ¬ç ²ƒ ÍÖ*ƒÌ>DÙdÃia]‡ŽIÖÛCä¢6"%xe¢ª\ªIè�¢Dó1èD]¡Õ1ÒÙp²Î!oªR`± •ó©ŒáÃó©8Z)dάf�¿ÊeX‚.}�°&šNˆÉ9�Ý×’KÏŒ?Ñá'‡ÎæjøÅ”(%Tðð�÷dóz aü�áõ†µEù*þ‡IšÜSðwÉÞëÀŽ*–ôòG8f”êôW’uË15ºOFN¡Aq J"–Î)Å]o©“-híé”.obbÍ)b"‘$›Vɦ,ÐM ƒîŒ‹ÍxP®TéQL|™–„í‘ØsÍ“lsDx ô’šC€=(G)v‚•f“!š2,BÇÿÀ�è®-HuªÉÏÏÝhÕ¥k +A“PI¥Z� «mRT‚í-u5!Fæ,Øvˆ‘&¨jÂ%¹ñJgE-å‰Ò6éñ¬mI6¾;!¯É=éÎ{é`ÆÜñ…D"„¢kún +8íæ þt㘬‹V(vùÂ,ø|’ ¡>ã}ô0�£ƒi[�#òm³H ŽÙ9Zê%"r-‡ÂH¡áÀ÷l’[Ñ3±G¶%ƒ&rCé.rh«½_§S +ìii‹xn”S:O¥Å.Ø.û†!ÕOJs‡�sº$€¶�nÍεRv¯œG�&Ra°Šü$\Ä:(Ø2ŠåíÚ>‡"ƒÞúüó£Zs½õä.”8¡TiE-DßßÑ­ë°@±º;Y Êò½å®‚NTøÇí1U˜;tmÜ5@¥°v·Ä +øSèPb½Xe�\.º{ó`1ÇP¨ðÄ1ãón5ηó°ê/ %ª.„ÿéEÔÊfÕË)¯ «Dس²°–®º*yÅ>V7e<´6\ñÖŠ2÷?0‘|¡Ê‚µ%0AÍìgµqˆ…ZÜÔ˜ +Ó§Cœ4k÷§Mš²ˆ;Öb1RJÀ—~ �àûƒt‘ðÈ%°…}+¨©•lQl¶üˆïS‚Ø"_ªœü´ô¡JX.ÔWS¾_ë“É +É»Gnß2?´+‚w6„y~Ôj“¥ÂÈíEÒ¢½<°Éß�ã�E¡·Ðto‹æ{d õ‰_UÉËèk¬h±Î +IÈú+ÿMœqa}‰ŽM%C£_Þô™ÈÒÔÜîiÛR3<¸5Q-ç˜ Îò¨* «³º?È�Á�Q.žŸËh’bQ +�+ +�&™$K";ߨdªG:Ô¹]L”ÚÆ„ù w¡VwL»<‚ìÓÐbI!!Ĭ�US¤‰÷¨™çŸoƒTÒ¡ƒ�/᦮$ŒC>”`ƒÁ„Ÿë�+›É(|¹˜°uoÇÖs¡p_6 ا4+næÙ˲`"ã +?Zµ‘Uð‚dèù Ú\Û�¹�¼³W…äÚsâgQ‘ Ãß F{¯b=¸eá+íå2ø‘fŸø,©0�V×-U.üEË@´¸eyçÃd²˜,Å0´²~¶J"…KUwP1œ+$BŸpãSÚSýø�A¨˜yláí+_y8¹J&‚=@¹�\ÿx­{Òõ#ð–ÉB<ðÉw½¶ú @÷eÜøB~{UÒÜ£^rPÃCöâzËÛ”Á/ßÊi*TT±Ú›Ývº±å¿xT ãn7Xõo¾Ïmar’ü3FãôgŒžŸ,ý¡ ¶¶íƒ)hÖ_çÜ*=cuÈŒÃøàß&ÚühÙ2…íÖf{e°©ùÑL×Ͱí;&¡Þmwe9쪘鿌. ãƒ�M^;ûÓÛŸñ±’¨‡Iö+düh üÒð¼2ÛALï†mõ�L÷S#äÑL7uïÕ¿H†Se”^wõÐg…1ÿ]76ýW^ð�9j„œH΋ùÊ—Ö³õ$�Êþ4�¶„¾qBY&H„b'á—Ýxn ÿGåŒÃÔU9¶17_ZB¯]箲­/Æ/äê+ls«à–ÒgÖ;fŸsù³L–׺ÜvõXîÌ䄾r@X[Ò7õ3ÉÛx�/í7™•ì9Y»Öá`ðšc£¹óÜï}à›KÔ¤¸–:mçÒ_c[Ã0vUëéâ�aü“Âã¾Ì› +Ùç)jæ¹4¿�;®dÏYkôQÛk³bè·­1ئƒ±�|ZG™ìa©«íÐ mÕx>Ï[.z²/‡[×~´€o4옾ðIÞŒö-Nœ%)¸‘ ѽÒ1Ù­{½*vÆžZÄ ¯ J$þJ‚Ÿb2Þoè?œ`í +endstream +endobj +149 0 obj +<>>> /Font + <> + /Pattern <>>> +endobj +150 0 obj +<> +endobj +151 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x37 Do + +endstream +endobj +152 0 obj +<> /Length + 119 0 R /Resources 153 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ01TpÉç +B]H\ +endstream +endobj +153 0 obj +<>>> /XObject <>>> +endobj +154 0 obj +<> /Length + 29 0 R /Resources 155 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +155 0 obj +<<>> +endobj +156 0 obj +<> + /FontDescriptor 159 0 R /Subtype /CIDFontType2 /Type /Font /W + [0 [600 593]]>> +endobj +157 0 obj +<> +stream +xœ]�ÁŠÃ †ï>ÅÛC1É9–î%‡v—fûFǬЌ21‡¼ýª -ì€ÂÌÿò;òÜöä"ÈoözÀÖ‘a\üÊaÄÉ‘¨0Nǽ+·žU2ÁöDœ{²^´-È[—È>Œñ(@~±Av4Áá~ž£a á�3R„Jt´é¹‹ +W5#ÈŸz“t·SÂÞŽŸ- 4¥¯Ÿ‘´7¸¥‘M(Ú*U­MÕ $óOß©Ñê_ÅÅ]g÷X5ŽÏ3—?ù +¥Wæ”§l¢ÉákYÁ‡L•óSÜpÉ +endstream +endobj +158 0 obj +223 +endobj +159 0 obj +<> +endobj +160 0 obj +<> +stream +xœc`d```cp``bPHÏ©LS=˜ßÉ⩉)Š[9]€|³  �#û ¿ÈWÉÈ-©`Yùÿ�¿ÈçÈÉON²�LÆ@‚'7±¢€A¤–q �¯´#ÈþÉtŠ�™���ÁXPQPUQP1Žqö¿Œ¦ÿN3�úkfÌ”ÂÀø¿ä¿“3ƒ5»’šº¹˜˜±‘™¹°²=“™™±‘˜¸¹13“¨HPœ�MYIÍÔÄ (¯¦¦¬ÄÆÎnÌ® ”âWäâä�æ64ËŒfKàÉM–4r+aâ`UPóQÕÐæàb e1TÕ7àÍç.ȶ ùÀʬÇÄ’ÂøBEÔ<4Ž�›ÿï}n->c~nY uQ++ƉJú¶ö–ÿ$#SµÀ^fb`XéµÃ,žßæ+3ó  Ãe>Ý4}õ¹‹Î_ÕÕ\oY$€êØ€¤T,:ÿî00p‹þUý{„ë-T˜˜"â˜ÿ—@ù x�Ú÷šA‚¡‡�M  fVˆ +endstream +endobj +161 0 obj +406 +endobj +162 0 obj +4151 +endobj +163 0 obj +<> +stream +xœÕZQsÛ6~ǯàÛ‘� €It<žiÒtÚ›&—^5sj[²ÝÚŠcÊ—¤¿þ» ‘%O•ZM& )‹Å·‹ÝoŠ„Ãß™€K­DrqÇ>°ÉÉÛóÍfù°N.šää^Is±NNÎyrÕ0Û^�Í–ÉŠýÄ~J>0]æR'ºJT-󪪒~ѵ´mþ›¬™Hì߇«¸/¯­žWºÂó:iÿyQÝÐw‰.LÎeen»‡J¨É­“쟯·F ºãs(AåEJhŸûV_iú[O…碰’á�×ûÅœ�ŹP¥ó¨î±Ô¹á%ˆ4 «*kÀ`~ÇNV3>ãàó[¤/³™Ißg3!ÓûLòôsV¦7ðÌÓ+¸é5Þo°EòÞRcûƒHo°ÉEÆÊt™d¿ÎÿÅLnŒ©´Ó¥{êTBçÂ)ŒÓE„ºeÅËt�ÛÏÙ¬ÐéC&í@Ò*„úÀol”ØÛ_R¸7 Ã¬(Ò_²ŒÙ'|#³B¥Ü^ðNØ ¾ø!›Õé« $Ì­Äïp†øŸqÀÇŒÁsc’ôîF¨Ò5\yziÕK¼&¨Ô2kÅ öøhe±´y�bl_‘6Ф¤ ]víH, »A O~¾?_'§§ÉÉ7›ÇóÛùòÓ&9]-W+ÎËþ™³äì,yñíKBQ8OÏ$?åœË3+åÕë—=�Ñz8¦ŸM��Ð¥· ÍøùµL �ùØÃˆd ÂMžÉ’Qão2è|kåÜvcÆíÞ @ÖÕó¢ä¢Wº„™aT¦�« çÿAÌ7oûʼЦ†‹}çÝ8"AÑŸõÎI³°wóh¯ï¬Œß°5É ¢Û÷þ‡¨¬],}›9ãTÖoëÎyŸà†àç†ívtïçÿÈfÚiÿ£í…¢ýsXW0¬·ŽUû“ú3ÍþÆÿLj’ÄÿÀèD²ÖÊ4“Öçe 'Ž7ŽÏöÂe0¡QGø6è·Ûp¤„+KÊ\H­/¥‹'�Ž ½×:-cëTà:U±uZ8ünB7>ú†35ðïHÂ*›•A¼BŒÐ]Ñ:8[ ÅBK TèK T"§@¬f¼ÖbÚTÆYìI+ â†öNˆÊ.ÉŸp²´ø}Áw�âóÇ ZŽ‚‡ÝÙxØÛÃ�l;å\›‚?6Dd°·�rŸa �þ³›ÍTþl禭HW;š "å»î¶¤Jxla;Ã+j0g‚»±©6³®ýŠß·°XvJŒ.‘¼Ì…€â£,rUBñ UÄyßÚcšãîEn¥Ø…‚û!»�g²¶ž,m"–6XX„—‰å°ÊNÊ®”€¯²»\;0Ët›LØ4ð'ýÂ+­E®Ë´î{ðÔùo±1ÄcT"zǹ£OµMGú¬pÿÿÉ©VÕΩ.(¡‡A4 —]RŠÌ)"—–îKé¸ÍmdÊ(+{(FÕXtÌ +\÷CåƒèdÒ²d�mE| �>+áór +ðâ`€ynUc‘¾FL‚€Ô6}N¤¦ýk¬BÄÛHÜænzS¨³å^›üZ`!ö¬-Ïã{ ˜YÍœþDäqTCêzÂå§JMÿÀ¨ê¦À¶³K �w�Ä)by“±mÖ=]�½… ¶ ìÔ4çD¡})عñü¸P”;ÅT´ßÇ¥ w$ Å3ÆSåŠO«±H¿G&Ið÷ÉqàÂHT<ØèžH°5ëW%#Ž2R=<€ÑE¸¾:òê,?Z.RÙº”+\’–ë ï c®‘Í€#¨:êòp.QÏå¼KDÕh]bPÜö¨¡7n„.ãbSÒU–¾ÞÀ¶A¸rÅ’Ï}­QÎÀZ�a�FÕ8´5š;Ü×":^au8«Tê(ÖHT�ë³a7]#ûú¹2R?%ÙÙ=TFö¿êv÷¼HªÝϪúpV5ú(ÖZT�Eúo ûö&þTÓæu@ôX÷Ê$ü)æm,›*ÃMSòªß!�ê‰d‹wŸPÄ}›êØ–GöhœÛ3ì%ÐñÌÍÂÔ�XMa3¾›D°°.×¾K°ï7a7ä´T œWnæ[ç(±Q‡ªD”¨�¡ô‹«Ñnu/½gÄóA|«íŽ<µ/€%°'mA»ƒ¡+µÜÞ2·fªPÔ3OQC¡W£- ,\#÷ ÚyØ�§¡tôƶú”í8ŠÄVäo:±÷~I_X3·Q# ×ýÚ4¬/‡úB<ÊØX夿@头9†dWc�‡èüT|ÙÀ!úó¶S´>1•½õ¨[TeŽ�“ÅÕø‹ ²µè¦²Ry¨°§ùQì�ÅÕp¬Ïô¼óî»Å€‘U\ŽS-6q’I.ÕÁP–ϹeãQŽª±HÎÚ]ßàHËÇ‘¯Óàø,†þÓÁ¯¾zÎÍ~T�ùt_Ÿ`­·Oê7›<Ûe[ä[s0lËçÜêðØFÕØ:ÏÀ˜Û«Šûåã¹æ Ð]ÅŽD\�EÜÝíýºª‡9Ûôõ0_€z”ü(6âjlmíyà1jödçw‡òÓ“óŸŒî:ž.e¼äÄÈ7ñ]_ð6Åèw¹}nиÂÚupÐ;}Ú‘U^JÁ�ük�Ñ†Ò æ>»§¹vŸH ‚ðjÏÊQ´‡Lcõz¬@Aæv$ϵ4¼n¿úzíò äî ×`¤s÷%‘ÿ9¼¿ÊŠ Sü.c6¸¢®‚œ€ß‘Á›ØžÄß¶Û,t´× ëBtÒ*˼ªŒÝ×h¸/… P”û.Ãc�nú8„Ä9s¸jwO1p¦*वHgU™«šóB²å4£�A)òª¨”(Z^e +÷”J¨,‹•hèø°Ó¡Fððc{YwƯt©ó­ã䮋Fµ•ëNѼÑpñ¶5� Ä—´—�"ÚåÀþËô, +endstream +endobj +164 0 obj +<>>> /Font + <> /Pattern + <>>> +endobj +165 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x24 Do + +endstream +endobj +166 0 obj +<> +stream +xœ+ä +T(ä*äÒO4PH/VЯ0²PpÉç +B]sa +endstream +endobj +167 0 obj +<>>> /XObject <>>> +endobj +168 0 obj +<> +stream +xœ+ä +ä’× +endstream +endobj +169 0 obj +<<>> +endobj +170 0 obj +2322 +endobj +171 0 obj +<> +stream +xœÕÙrܸñ_ÁÚ§aÊCàír©Êצ’”{=©}XçAÇŒ${tX3ŠíýúôM�´µ®Ä*S$ŽFßÝh@:Éág®áÑ–:9¹T_Ô—äàÝÑv»¼½JN6ÉÁM�lN®’ƒ£<9Û(^u�¾]&+õ^½O¾¨ªÎL•TMR¶&kš&©¡¥j Žù5¹R:ÁŸÛ³i0=œƒ <:ë©ÿ8ƒqƒàEèõcJÍ–A¸MT€R¯ÑE�ëÖj4ñ”—äçdÃ^ö•]·©2š‘d¦íC[œ45 �–óBÿFš! ¤Ùx­í"çN- „¬íª<‚¦Hzi7¬ÐŽã²´wY‡E5r[„€è®F ¡ÕÉN„’ ¹YŽ3¯¬ äÇyÀÊ“É4ã:?`—rëùyÚ Yhª`¯Ôeß§<ïÝb^ßÀKuVß¾¼�˜{Źöú熩¡s`Â…n jÉ %øÓ¡+Éa/�Pq½ÓZã—ùBº{×s`³%]e:I­v4÷ÔË\ºtHJRÅÍž*âŸ÷©QJÎÒR'ÌYp…Ñ£ÁÂÓn6GäÙÎzÓEY[�“Zéר]ÔÃìÆf‰á—ÙD|Λ`ÆlÌýrÌü€Ižájìˆ'’ü§QÐ胄IkôÞ2Ù.…FG„�9!Äí^X%4¨¡e1 +w^Ò^½½2Ü|Û”±‡¾mè‹Zõq–û9Ñnʉê�¨™v¢f">úäüˆ:&ìfH² ÊImÊLx ˆ›˜to" à0g•½k¥TºñÌ­§�›-×TDe…;Þ½�pæ%ìyÙ'M^<½ªÂ ‰tO¤Š›‹Þ÷ñÄã>ëœp8ìT˜vü„gùÛ¤ª¨¡®ôªâmñç´®Fn�q¢â²B2í�4<¼KL}_`¤kb5ž¥ÚÈáôÊ<”Æó“ØÀ|a¿ÅÜçÅC$骘£,t‹&~2˜{Ÿ, iaãºO"”Ô¾± Nz$Ö±VuH2%¿öi�4Æ;t}bØœþè0#y§FA!dÀHðS&¨Šzlƒ™ã‚AK0ºd.¼N�K›9^gî'&½ŒÒùÈË�÷2"? �Oª™g„r½¿¬í~ öãN:^E<ýB!½  ìåäw+CÁª˜rô¦‘¾híe)Ä. xäIéUá¢ÂÛ3ÞÖ»ãm9EBÙJ‚¿áÎxœÎ)×u·Y?ÃSBå…à>Ï%¸ò††QÎô/¿1 ->VZ@Ôt¶¶WÆŒ~ÏEi™Ë _W"oBùL¾Ç +¯D_ |ß@|%O½d¾s3�ý^¹�—ö&Њ̀b²¶Ã�Є®ð¶Ós»Þ+â§ra}îÜ4–´ûovTºÈr­Ý�/ë|àÛ9s¾Ybè(W“Å¡KF…J®©wE-É‚:§� êÀA ˜7T.­À‹({]©Š2«ëÞÇD¢I‹?�%³£ò未%Îíöq‹¶1"©Ð7wø¤h.Ÿ=1ëMŸÌ­8´¸œÌïDdwÙx¿Ÿ²9•Lsâ¹CPSá±æ}…Î!™à ßl·,ñö šC›˜w©¥ºA½oñnf”àÍäÌUæ‡ +8._'­Ç {]!±IÈ U¾/S޳‘6Ëe( ‡PK°¯$‚a­ÀŸQ…µ”…¿b´ùŒù�•Kxþjž½DCøÒAú™ÁÇiëÄ~ƒ\ª¬5FkT.)ŒnþäìØ‘$Tû®×wæÿ%kãšQ²ÍuÎk¿ù²õ{ªá9xÌ5ª¨F´ì«BRƒJµ· +ɣ͈¢¨GØ…ƒ?¼0º á÷“r‡ªô¸\£öª×ü&>º älƦlãÒˆŒÒߊ.’Sü`tÚ»çxd²J£âw䙆£uʪ¨FQ'¬æË($NûDÝÅšVT'8¬ˆB—Ü¿JlIãå©Ë@‘¡w¯ÞìùbT�$xOî»LäOÔån\p®-,i[ñZÖ£øÓéhÊ )Äø½·¡ïØ_ 茯•ºäx\Vríø�¡wä\<Œ'KÂÏí8†õß\Øur!J>á¹Vh“êqF阴뜟©óºAó‚ši<=ëcN@¢&áå¢P›†|ð5ñðr4å»ôih=U¨SÛ´ÏF¤õ Ua6ü„ǵƒ8§ú@M€Cùû8mË<žaÿOþ~TÊïóè K7nnȟРÀm�ÎÌ0~žº;:Bïý4:G¾Ò›ñÉðëEôo4ºþo4^,¦vTº6Y]Ñ–ª­²².Û²o©Î½Úl½unžÒ^ô€ömüœ¸PjMOp6r�úÈ�ø{N[$¨Gªé‡XtÂ`h_:y@4<à8è¹I\²ŒsCû‡A…ɺRÃÖsÌ&WDpU8Þi�5ESê¾ì°W5E””Æ¥ª¤¨•RL [粋ÉE‰Œ‹Té[ò–@hdž÷ê¿S½Ä¨ +endstream +endobj +172 0 obj +<>>> /Font + <> + /Pattern <>>> +endobj +173 0 obj +<>>> + /TilingType 1 /XStep 1588 /YStep 2246>> +stream + /x12 Do + +endstream +endobj +174 0 obj +<> /Length + 119 0 R /Resources 175 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +T(ä*äÒO4PH/VЯ04SpÉç +B]W^ +endstream +endobj +175 0 obj +<>>> /XObject <>>> +endobj +176 0 obj +<> /Length + 29 0 R /Resources 177 0 R /Subtype /Form /Type /XObject>> +stream +xœ+ä +ä’× +endstream +endobj +177 0 obj +<<>> +endobj +178 0 obj +3326 +endobj +179 0 obj +<> + /Count 1 /Next 198 0 R /Parent 3 0 R /Title (Abstract)>> +endobj +180 0 obj +<> + /Count 1 /Parent 3 0 R /Prev 181 0 R /Title (Author's Address)>> +endobj +181 0 obj +<> + /Count 3 /First 182 0 R /Last 183 0 R /Next 180 0 R /Parent 3 0 R + /Prev 184 0 R /Title (9. References)>> +endobj +182 0 obj +<> + /Count 1 /Next 183 0 R /Parent 181 0 R /Title + (9.1. Normative References)>> +endobj +183 0 obj +<> + /Count 1 /Parent 181 0 R /Prev 182 0 R /Title + (9.2. Informative References)>> +endobj +184 0 obj +<> + /Count 1 /Next 181 0 R /Parent 3 0 R /Prev 185 0 R /Title + (8. Acknowledgements)>> +endobj +185 0 obj +<> + /Count 1 /Next 184 0 R /Parent 3 0 R /Prev 186 0 R /Title + (7. Security Considerations)>> +endobj +186 0 obj +<> + /Count 1 /Next 185 0 R /Parent 3 0 R /Prev 187 0 R /Title + (6. IANA Considerations)>> +endobj +187 0 obj +<> + /Count 3 /First 188 0 R /Last 189 0 R /Next 186 0 R /Parent 3 0 R + /Prev 190 0 R /Title (5. Mapping to CCNx and NDN packet encodings)>> +endobj +188 0 obj +<> + /Count 1 /Next 189 0 R /Parent 187 0 R /Title + (5.1. Packet encoding for CCNx)>> +endobj +189 0 obj +<> + /Count 1 /Parent 187 0 R /Prev 188 0 R /Title + (5.2. Packet encoding for NDN)>> +endobj +190 0 obj +<> + /Count 1 /Next 187 0 R /Parent 3 0 R /Prev 191 0 R /Title + (4. Dealing with malicious actors)>> +endobj +191 0 obj +<> + /Count 6 /First 192 0 R /Last 193 0 R /Next 190 0 R /Parent 3 0 R + /Prev 194 0 R /Title + (3. Method to enhance congestion control with signaled size information in Interest Messages)>> +endobj +192 0 obj +<> + /Count 1 /Next 201 0 R /Parent 191 0 R /Title + (3.1. How to predict the size of returning Data messages)>> +endobj +193 0 obj +<> + /Count 1 /Parent 191 0 R /Prev 199 0 R /Title + (3.5. Operation when some Interests lack the expected data size option and some have it)>> +endobj +194 0 obj +<> + /Count 1 /Next 191 0 R /Parent 3 0 R /Prev 195 0 R /Title + (2. Requirements Language)>> +endobj +195 0 obj +<> + /Count 1 /Next 194 0 R /Parent 3 0 R /Prev 196 0 R /Title + (1. Introduction)>> +endobj +196 0 obj +<> + /Count 1 /Next 195 0 R /Parent 3 0 R /Prev 197 0 R /Title + (Table of Contents)>> +endobj +197 0 obj +<> + /Count 1 /Next 196 0 R /Parent 3 0 R /Prev 198 0 R /Title + (Copyright Notice)>> +endobj +198 0 obj +<> + /Count 1 /Next 197 0 R /Parent 3 0 R /Prev 179 0 R /Title + (Status of This Memo)>> +endobj +199 0 obj +<> + /Count 1 /Next 193 0 R /Parent 191 0 R /Prev 200 0 R /Title + (3.4. Interactions with Interest Aggregation)>> +endobj +200 0 obj +<> + /Count 1 /Next 199 0 R /Parent 191 0 R /Prev 201 0 R /Title + (3.3. Handling 'too small' cases)>> +endobj +201 0 obj +<> + /Count 1 /Next 200 0 R /Parent 191 0 R /Prev 192 0 R /Title + (3.2. Handling 'too big' cases)>> +endobj +xref +0 202 +0000000000 65535 f +0000000015 00000 n +0000001593 00000 n +0000001707 00000 n +0000001931 00000 n +0000002073 00000 n +0000002902 00000 n +0000011089 00000 n +0000012496 00000 n +0000016256 00000 n +0000017858 00000 n +0000019273 00000 n +0000020093 00000 n +0000021311 00000 n +0000022129 00000 n +0000025107 00000 n +0000029527 00000 n +0000034412 00000 n +0000035937 00000 n +0000038024 00000 n +0000038161 00000 n +0000038666 00000 n +0000039272 00000 n +0000039424 00000 n +0000039652 00000 n +0000039671 00000 n +0000039851 00000 n +0000039870 00000 n +0000039951 00000 n +0000040108 00000 n +0000040127 00000 n +0000040148 00000 n +0000040374 00000 n +0000040693 00000 n +0000040713 00000 n +0000040959 00000 n +0000041601 00000 n +0000041621 00000 n +0000041868 00000 n +0000042522 00000 n +0000042542 00000 n +0000048539 00000 n +0000048560 00000 n +0000048804 00000 n +0000049372 00000 n +0000049392 00000 n +0000054383 00000 n +0000054404 00000 n +0000054425 00000 n +0000058765 00000 n +0000058916 00000 n +0000059065 00000 n +0000059293 00000 n +0000059539 00000 n +0000059620 00000 n +0000059843 00000 n +0000059864 00000 n +0000060074 00000 n +0000060376 00000 n +0000060396 00000 n +0000060639 00000 n +0000061157 00000 n +0000061177 00000 n +0000061198 00000 n +0000064645 00000 n +0000064826 00000 n +0000065298 00000 n +0000065750 00000 n +0000065978 00000 n +0000066158 00000 n +0000066239 00000 n +0000066396 00000 n +0000066417 00000 n +0000066651 00000 n +0000067105 00000 n +0000067125 00000 n +0000074385 00000 n +0000074406 00000 n +0000074652 00000 n +0000075153 00000 n +0000075173 00000 n +0000079477 00000 n +0000079498 00000 n +0000079519 00000 n +0000083400 00000 n +0000083551 00000 n +0000083779 00000 n +0000084025 00000 n +0000084106 00000 n +0000084329 00000 n +0000084350 00000 n +0000084371 00000 n +0000088258 00000 n +0000088409 00000 n +0000088552 00000 n +0000088780 00000 n +0000088960 00000 n +0000089041 00000 n +0000089198 00000 n +0000089219 00000 n +0000089420 00000 n +0000089721 00000 n +0000089742 00000 n +0000089977 00000 n +0000091831 00000 n +0000091853 00000 n +0000091875 00000 n +0000095572 00000 n +0000095710 00000 n +0000095939 00000 n +0000095959 00000 n +0000096207 00000 n +0000096290 00000 n +0000096515 00000 n +0000096537 00000 n +0000096559 00000 n +0000100273 00000 n +0000100411 00000 n +0000100640 00000 n +0000100888 00000 n +0000100908 00000 n +0000100990 00000 n +0000101215 00000 n +0000101237 00000 n +0000101259 00000 n +0000105197 00000 n +0000105335 00000 n +0000105564 00000 n +0000105746 00000 n +0000105828 00000 n +0000105987 00000 n +0000106009 00000 n +0000106031 00000 n +0000110224 00000 n +0000110376 00000 n +0000110605 00000 n +0000110853 00000 n +0000110935 00000 n +0000111160 00000 n +0000111182 00000 n +0000111204 00000 n +0000115793 00000 n +0000115945 00000 n +0000116174 00000 n +0000116422 00000 n +0000116504 00000 n +0000116729 00000 n +0000116751 00000 n +0000116773 00000 n +0000121000 00000 n +0000121167 00000 n +0000121321 00000 n +0000121550 00000 n +0000121798 00000 n +0000121880 00000 n +0000122105 00000 n +0000122127 00000 n +0000122337 00000 n +0000122636 00000 n +0000122657 00000 n +0000122904 00000 n +0000123399 00000 n +0000123420 00000 n +0000123442 00000 n +0000125840 00000 n +0000125978 00000 n +0000126207 00000 n +0000126389 00000 n +0000126471 00000 n +0000126630 00000 n +0000126652 00000 n +0000126674 00000 n +0000130076 00000 n +0000130241 00000 n +0000130470 00000 n +0000130718 00000 n +0000130800 00000 n +0000131025 00000 n +0000131047 00000 n +0000131069 00000 n +0000131224 00000 n +0000131388 00000 n +0000131594 00000 n +0000131771 00000 n +0000131950 00000 n +0000132133 00000 n +0000132323 00000 n +0000132508 00000 n +0000132744 00000 n +0000132925 00000 n +0000133105 00000 n +0000133300 00000 n +0000133585 00000 n +0000133790 00000 n +0000134028 00000 n +0000134214 00000 n +0000134391 00000 n +0000134570 00000 n +0000134748 00000 n +0000134930 00000 n +0000135138 00000 n +0000135335 00000 n +trailer + +<> +startxref +135530 +%%EOF diff --git a/draft-oran-icnrg-flowbalance-06.txt b/draft-oran-icnrg-flowbalance-06.txt new file mode 100644 index 0000000..7246d0c --- /dev/null +++ b/draft-oran-icnrg-flowbalance-06.txt @@ -0,0 +1,896 @@ + + + + +ICNRG D. Oran +Internet-Draft Network Systems Research and Design +Intended status: Experimental 25 October 2021 +Expires: 28 April 2022 + + + Maintaining CCNx or NDN flow balance with highly variable data object + sizes + draft-oran-icnrg-flowbalance-06 + +Abstract + + Deeply embedded in some ICN architectures, especially Named Data + Networking (NDN) and Content-Centric Networking (CCNx) is the notion + of flow balance. This captures the idea that there is a one-to-one + correspondence between requests for data, carried in Interest + messages, and the responses with the requested data object, carried + in Data messages. This has a number of highly beneficial properties + for flow and congestion control in networks, as well as some + desirable security properties. For example, neither legitimate users + nor attackers are able to inject large amounts of un-requested data + into the network. + + Existing congestion control approaches however have a difficult time + dealing effectively with a widely varying MTU of ICN data messages, + because the protocols allow a dynamic range of 1-64K bytes. Since + Interest messages are used to allocate the reverse link bandwidth for + returning Data, there is large uncertainty in how to allocate that + bandwidth. Unfortunately, most current congestion control schemes in + CCNx and NDN only count Interest messages and have no idea how much + data is involved that could congest the inverse link. This document + proposes a method to maintain flow balance by accommodating the wide + dynamic range in Data message size. + +Status of This Memo + + This Internet-Draft is submitted in full conformance with the + provisions of BCP 78 and BCP 79. + + Internet-Drafts are working documents of the Internet Engineering + Task Force (IETF). Note that other groups may also distribute + working documents as Internet-Drafts. The list of current Internet- + Drafts is at https://datatracker.ietf.org/drafts/current/. + + Internet-Drafts are draft documents valid for a maximum of six months + and may be updated, replaced, or obsoleted by other documents at any + time. It is inappropriate to use Internet-Drafts as reference + material or to cite them other than as "work in progress." + + + +Oran Expires 28 April 2022 [Page 1] + +Internet-Draft Maintaining Flow Balance October 2021 + + + This Internet-Draft will expire on 28 April 2022. + +Copyright Notice + + Copyright (c) 2021 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents (https://trustee.ietf.org/ + license-info) in effect on the date of publication of this document. + Please review these documents carefully, as they describe your rights + and restrictions with respect to this document. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 + 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 + 3. Method to enhance congestion control with signaled size + information in Interest Messages . . . . . . . . . . . . 5 + 3.1. How to predict the size of returning Data messages . . . 6 + 3.2. Handling 'too big' cases . . . . . . . . . . . . . . . . 7 + 3.3. Handling 'too small' cases . . . . . . . . . . . . . . . 8 + 3.4. Interactions with Interest Aggregation . . . . . . . . . 9 + 3.5. Operation when some Interests lack the expected data size + option and some have it . . . . . . . . . . . . . . . . . 10 + 4. Dealing with malicious actors . . . . . . . . . . . . . . . . 12 + 5. Mapping to CCNx and NDN packet encodings . . . . . . . . . . 13 + 5.1. Packet encoding for CCNx . . . . . . . . . . . . . . . . 13 + 5.2. Packet encoding for NDN . . . . . . . . . . . . . . . . . 13 + 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 + 7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 + 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 + 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 + 9.2. Informative References . . . . . . . . . . . . . . . . . 14 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 16 + + + + + + + + + + + + + + + +Oran Expires 28 April 2022 [Page 2] + +Internet-Draft Maintaining Flow Balance October 2021 + + +1. Introduction + + Deeply embedded in some ICN architectures, especially Named Data + Networking ([NDN]) and Content-Centric Networking (CCNx + [RFC8569],[RFC8609]) is the notion of _flow balance_. This captures + the idea that there is a one-to-one correspondence between requests + for data, carried in Interest messages, and the responses with the + requested data object, carried in Data messages. This has a number + of highly beneficial properties for flow and congestion control in + networks, as well as some desirable security properties. For + example, neither legitimate users nor attackers are able to inject + large amounts of un-requested data into the network. + + This approach leads to a desire to make the size of the objects + carried in Data messages small and near constant, because flow + balance can then be kept using simple bookkeeping of how many + Interest messages are outstanding. While simple, constraining Data + messages to be quite small - usually on the order of a link Maximum + Transmission Unit (MTU) - has some constraints and deleterious + effects, among which are: + + * Such small data objects are inconvenient for many applications; + their natural data object sizes can be considerably larger than a + link MTU. + + * Applications with truly small data objects (e.g. voice packets in + an Internet telephony applications) have no way to communicate + that to the network, causing resources to still be allocated for + MTU-sized data objects + + * When chunking a larger data object into multiple Data messages, + each message has to be individually cryptographically hashed and + signed, increasing both computational overhead and overall message + header size. The signature can be elided when Manifests are used + (by signing the Manifest instead), but the overhead of hashing + multiple small messages rather than fewer larger ones remains. + + + + + + + + + + + + + + + +Oran Expires 28 April 2022 [Page 3] + +Internet-Draft Maintaining Flow Balance October 2021 + + + One approach which helps with the last of these is to employ + fragmentation for Data messages larger than the Path MTU (PMTU). + Such messages are carved into smaller pieces for transmission over + the link(s). There are three flavors of fragmentation: end-to-end, + hop-by-hop with reassembly at every hop, and hop-by-hop with cut- + through of individual fragments. A number of ICN protocol + architectures incorporate fragmentation and schemes have been + proposed for both NDN and CCNx, for example in [Ghali2013]. + Fragmentation alone does not ameliorate the flow balance problem + however, since from a resource allocation standpoint both memory and + link bandwidth must be set aside for maximum-sized data objects to + avoid congestion collapse under overload. + + The design space considered in this document does not however extend + to arbitrarily large objects (e.g. 100's of kilobytes or larger). As + the dynamic range of data object sizes gets very large, finding the + right tradeoff between handling a large number of small data objects + versus a single very large data object when allocating link and + buffer resources becomes intractable. Further, the semantics of + Interest-Data exchanges means that any error in the exchange results + in a re-issue of an Interest for the entire Data object. Very large + data objects represent a performance problem because the cost of + retransmission when Interests are retransmitted (or re-issued) + becomes unsustainably high. Therefore, the method we propose deals + with a dynamic range of object sizes from very small (a fraction of a + link MTU) to moderately large - about 64 kilobytes or equivalently + about 40 Ethernet packets, and assumes an associated fragmentation + scheme to handle link MTUs that cannot carry the Data message in a + single link-layer packet. + + The approach described in the rest of this document maintains flow + balance under the conditions outlined above by allocating resources + accurately based on expected Data message size, rather than employing + simple interest counting. + +2. Requirements Language + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [RFC2119]. + + + + + + + + + + + +Oran Expires 28 April 2022 [Page 4] + +Internet-Draft Maintaining Flow Balance October 2021 + + +3. Method to enhance congestion control with signaled size information + in Interest Messages + + Before diving into the specifics of the design, it is useful to + consider how congestion control works in NDN/CCNx. Unlike the IP + protocol family, which relies on end-to-end congestion control (e.g. + TCP[RFC0793], DCCP[RFC4340], SCTP[RFC4960], + QUIC[I-D.ietf-quic-transport]), CCNx and NDN employ hop-by-hop + congestion control. There is per-Interest/Data state at every hop of + the path and therefore for each outstanding Interest, bandwidth for + data returning on the inverse path can be allocated. In many current + designs, this allocation is done using simple Interest counting - by + queueing and subsequently forwarding one Interest message from a + downstream node, implicitly this provides a guarantee (either hard or + soft) that there is sufficient bandwidth on the inverse direction of + the link to send back one Data message. A number of congestion + control schemes have been developed that operate in this fashion, for + example [Wang2013],[Mahdian2016],[Song2018],[Carofiglio2012]. Other + schemes, like [Schneider2016] neither count nor police interests, but + instead monitor queues using AQM (active queue management) to mark or + drop returning Data packets that have experienced congestion. It is + worth noting that every congestion control algorithm has an explicit + fairness goal and associated objective function (usually either + [minmaxfairness] or [proportionalfairness]). If your fairness is to + be based on resource usage, pure interest counting doesn't do the + trick, since a consumer asking for large thing can saturate a link + and shift loss to consumers asking for small things. + + In order to deal with a larger dynamic range of Data message size, + some means is required to allocate link bandwidth for Data messages + in bytes with an upper bound larger than a Path MTU and a lower bound + lower than a single link MTU. Since resources are allocated for + returning Data based on arriving Interests, this information must be + available in Interest messages. + + Therefore, one key idea is the inclusion of an _expected data size_ + TLV in each Interest message. This allows each forwarder on the path + taken by the Interest to more accurately allocate bandwidth on the + inverse path for the returning Data message. Also, by including the + expected data size, large objects will have a corresponding weight in + resource allocation, maintaining link and forwarder buffering + fairness. The simpler Interest counting scheme was nominally "fair" + on a per-exchange basis within the variations of data that fit in a + single PMTU packet because all Interests produced similar amounts of + data in return. In the absence of such a field, it is not feasible + to allow a large dynamic range in object size. While schemes like + [Schneider2016] would not employ the expected data size to allocate + reverse link bandwidth, they can still benefit from the information + + + +Oran Expires 28 April 2022 [Page 5] + +Internet-Draft Maintaining Flow Balance October 2021 + + + to affect the AQM congestion marking algorithm, preferentially + marking data packets that exceed the expected data size from the + corresponding Interest. + + It is natural to ask whether the additional complexity introduced + into an ICN forwarder, and the additional computational cost for the + congestion control operations is worthwhile. For congestion control + schemes like [Schneider2016] the additional overhead is not trivial, + since no Interest counting is happening. However, if a congestion + control is _already_ counting Interests, the additional overhead is + minimal, only reading one extra TLV from the Interest and + incrementing the outstanding data amount for the corresponding queue + by that number rather than a constant of 1. The overhead on + returning data is simply reducing the amount by the actual Data + message size, rather than by 1. + +3.1. How to predict the size of returning Data messages + + This of course raises the question "How does the requester know how + big the corresponding Data message coming back will be?". For a + number of important applications, the size is known a priori due to + the characteristics of the application. Here are some examples: + + * For many sensor and other Internet-of-Things applications, the + data is instrument readings which have fixed known size. + + * In video streaming, the data is output of a video encoder which + produces variable sized frames. This information is typically + made available ahead of time to the streaming clients in the form + of a _Manifest_ (e.g [DASH], FLIC [I-D.irtf-icnrg-flic]), which + contains the names of the corresponding segments (or individual + frames) of video and audio and their sizes. + + * Internet telephony applications use vocoders that typically employ + fixed-size audio frames. Therefore, their size is known either a + priori, or via an initialization exchange at the start of an audio + session. + + The more complex cases arise where the data size is not known at the + time the Interest must be sent. Much of the nuance of the proposed + scheme is in how mismatches between the expected data size and the + actual Data message returned are handled. The consumer can either + under- or over-estimate the data size. In the former case, the + under-estimate can lead to congestion and possible loss of data. In + the latter case, bandwidth that could have been used by data objects + requested by other consumers might be wasted. We first consider + "honest" mis-estimates due to imperfect knowledge by the ICN + application; later we consider malicious applications that are using + + + +Oran Expires 28 April 2022 [Page 6] + +Internet-Draft Maintaining Flow Balance October 2021 + + + the machinery to mount some form of attack. We also consider the + effects of Interest aggregation if the aggregated Interests have + differing expected data sizes. Also, it should be obvious that if + the Data message arrives, the application learns its actual size, + which may or may not be useful in adjusting the expected data size + estimate for future Interests. + + In all cases, the expected data size from the Interest can be + incorporated in the corresponding Pending Interest Table (PIT) entry + of each CCNx/NDN forwarder on the path and hence when a (possibly + fragmented) Data object comes back, its total size is known and can + be compared to the expected size in the PIT for a mismatch. Aside: + In the case of fragmentation, we assume a fragmentation scheme in + which the total Data message size can be known as soon as any one + fragment is received (a reasonable assumption for most any well- + designed fragmentation method, such as that in [Ghali2013]). + +3.2. Handling 'too big' cases + + If the returning Data message is larger than the expected data size, + the extra data could result in either unfair bandwidth allocation or + possibly data loss under congestion conditions. When this is + detected, the forwarder has three choices: + + 1. It could forward the Data message anyway, which is safe under + non-congestion conditions, but unfair and possibly unstable when + the output link is congested + + 2. It could forward the data when un-congested (e.g. by assessing + output queue depth) but drop it when congested + + 3. It could always drop the data, as a way of "punishing" the + requester for the mis-estimate. + + Either of the latter two strategies is acceptable from a congestion + control point of view. However, it is not a good idea to simply drop + the Data message with no feedback to the issuer of the Interest + because the application has no way to learn the actual data size and + retry. Further, recovery would be delayed until the failing Interest + timed out. Therefore, an additional element needed in protocol + semantics is the incorporation of a "Data too big" error message + (achieved via the use of an "Interest Return" packet in CCNx). + + Upon dropping data as above, the CCNx/NDN forwarder converts the + normal Data message into an Interest Return packet containing the + existing [RFC8609] T_MTU_TOO_LARGE error code and the actual size of + the Data message instead of the original content. It propagates that + back toward the client identically to how the original Data message + + + +Oran Expires 28 April 2022 [Page 7] + +Internet-Draft Maintaining Flow Balance October 2021 + + + would have been handled. Subsequent nodes upon receiving the + T_MTU_TOO_LARGE error treat identically to other Interest Return + errors. When the Interest Return eventually arrives back to the + issuer of the Interest, the user MAY reissue the Interest with the + correct expected data size. + + One detail to note is that an Interest Return carrying + T_MTU_TOO_LARGE must be deterministically smaller than the expected + data size in all cases. This is clearly the case for large data + objects, but there is a corner case with small data objects. There + has to be a minimum expected data size that a client can specify in + their Interests, and that minimum cannot be smaller than the size of + a T_MTU_TOO_LARGE Interest Return packet. + +3.3. Handling 'too small' cases + + Next we consider the case where the returning data is smaller than + the expected data size. While this case does not result in + congestion, it can cause resources to be inefficiently allocated + because not all of the set-aside bandwidth for the returning data + object gets used. The simplest and most straightforward way to deal + with this case is to essentially ignore it. The motivation for not + worrying about the smaller data mismatch is that in many situations + that employ usage-based resource measurement (and possibly charging), + it is trivial to just account for the usage according to the larger + expected data size rather than actual returned data size. Properly + adjusting congestion control parameters to somehow penalize users for + over-estimating their resource usage requires fairly heavyweight + machinery, which in most cases is not warranted. If desired, any of + the following mechanisms could be considered: + + * Attempt to identify future Interests for the same object or + closely related objects and allocate resources based on some + retained state about the actual size of prior objects + + * Police consumer behavior and decrease the expected data size in + one or more future Interests to compensate + + * For small objects, do more optimistic resource allocation on the + links on the presumption that there will be some "slack" due to + clients overestimating data object size. + + + + + + + + + + +Oran Expires 28 April 2022 [Page 8] + +Internet-Draft Maintaining Flow Balance October 2021 + + +3.4. Interactions with Interest Aggregation + + One protocol detail of CCNx/NDN that needs to be dealt with is + Interest Aggregation. Interest Aggregation, while a powerful feature + for maintaining flow balance when multiple consumers send Interests + for the same Named object, introduces subtle complications. Whenever + a second or subsequent Interest arrives at a forwarder with an active + PIT entry it is possible that those Interests carry different + parameters, for example hop limit, payload, etc. It is therefore + necessary to specify the exact behavior of the forwarder for each of + the parameters that might differ. In the case of the expected data + size parameter defined here, the value is associated with the ingress + face on which the Interest creating the PIT entry arrived, as opposed + to being global to the PIT entry as a whole. Interest aggregation + interacts with expected data size if Interests from different clients + contain different values of the expected data size. As above in + Section 3.3, the simplest solution to this problem is to ignore it, + as most error cases are benign. However, there is one problematic + error case where one client provides an accurate expected data size, + but another who issued the Interest first underestimates, causing + both to receive a T_MTU_TOO_LARGE error. This introduces a denial of + service vulnerability, which we discuss below together with the other + malicious actor cases. + + There are two cases to consider: + + 1. The arriving Interest carries an expected data size smaller than + any of the values associated with the PIT entry. + + 2. The arriving Interest carries an expected data size larger than + any of the values associated with the PIT entry. + + For Case (1) the Interest can be safely aggregated since the upstream + links will have sufficient bandwidth allocated based on the larger + expected data size (assuming the original Interest's expected data + size was itself sufficiently large to accommodate the actual size of + the returning Data). On the other hand, should the incoming face + have bandwidth allocated based on the larger existing Interest's + expected data size, or on the smaller value in the arriving interest? + Here there are two possible approaches: + + a. Allocate based on the data size already in the PIT. In this case + the consumer sending the earlier Interest can cause over- + allocation of link bandwidth for other incoming faces, but there + will not be a T_MTU_TOO_LARGE error generated for that Interest + + + + + + +Oran Expires 28 April 2022 [Page 9] + +Internet-Draft Maintaining Flow Balance October 2021 + + + b. Allocate based on the value in the arriving Interest. If the + returning Data is in fact larger, generate a T_MTU_TOO_LARGE + Interest Return on that ingress face, while successfully + returning the Data message on any faces that do not exhibit a too + small expected data size + + It is RECOMMENDED that the second policy be followed. The reasons + behind this recommendation are as follows: + + 1. The link can be congested quite quickly after the queuing + decision is made, especially if the data has a long link- + occupancy time, so this is a safer alternative. + + 2. The cost of returning the error is only one link RTT, since the + consumer (or downstream forwarder) can immediately re-issue the + Interest with the correct size and perhaps pick up the cached + object from the upstream forwarder's Content Store. + + 3. Being optimistic and returning the data interacts with the + behavior of aggregate resource control and resource accounting, + which in turn raises the messy issue of whether to "charge" the + consumer for the actual bandwidth used or only for the requested + bandwidth in the expected data. + + 4. The rabbit hole goes deeper if you add differential QoS to the + equation or consumers "playing games" and intentionally + underestimating so their interests get satisfied when links + aren't congested. This makes handling malicious actors + (Section 4) more difficult. + + For Case (2) above, the Interest MUST be forwarded rather than + aggregated to prevent a consumer from mounting a denial of service + attack by sending intentionally too small expected data size (see + Section 4 for additional detail on this and other attacks). As above + for Case (1) it is RECOMMENDED that policy (b) above be followed. + +3.5. Operation when some Interests lack the expected data size option + and some have it + + Since the expected data size is an optional hop-by-hop packet field, + forwarders need to be prepared to handle an arbitrary mix of packets + containing or lacking this option. There are two general things to + address. + + First, we assume that any forwarder supporting expected data size is + running a more sophisticated congestion control algorithm that one + employing simple interest counting. The link bandwidth resource + allocation is therefore based directly, or indirectly, on the + + + +Oran Expires 28 April 2022 [Page 10] + +Internet-Draft Maintaining Flow Balance October 2021 + + + expected Data size in bytes. Therefore, the forwarder has to assign + a value to use in the resource allocation for the reverse link. This + specification does not mandate any particular approach or a default + value to use. However, in the absence on other guidance, it makes + sense to do one of two things: + + 1. Pick a default based on the link MTU of the face on which the + Interest arrived and use that for all Interests lacking an + expected data size. This is likely to be most compatible with + simple interest counting which would rate limit all incoming + interests equally. + + 2. Configure some values for given Name prefixes that have known + sizes. This may be appropriate for dedicated forwarders + supporting single use cases, such as: + + * A forwarder handling IoT sensors sending very small Data + messages + + * A forwarder handling real-time video with large average Data + packets that exceed link MTU and are routinely fragmented + + * A forwarder doing voice trunking where the vocoders produce + moderate sized packets, still much smaller than the link MTU + + The second area to address is what to do if an interest lacking an + expected Data size is responded to by a Data message whose size + exceeds the default discussed above. It would be inappropriate to + issue a T_MTU_TOO_LARGE error, since the consumer is unlikely to + understand or deal correctly with that new error case. Instead, it + is RECOMMENDED that the forwarder: + + * Ignore the mismatch if the reverse link is not congested and + return the requested Data message anyway. + + * If the reverse link is congested, issue an Interest Return with + the T_NO_RESOURCES error code + + This specification does not define or recommend any particular + algorithm for assessing the congestion state of the link(s) to carry + the Data message downstream to the requesting consumers. It is + assumed that a reasonable algorithm is in use, because otherwise even + basic Interest counting forms of congestion control would not be + effective. + + + + + + + +Oran Expires 28 April 2022 [Page 11] + +Internet-Draft Maintaining Flow Balance October 2021 + + +4. Dealing with malicious actors + + First we note that various known attacks in CCNx or NDN can also be + mounted by users employing this method. Attacks that involve + interest flooding, cache pollution, cache poisoning, etc. are neither + worsened nor ameliorated by the introduction of the congestion + control capabilities described here. However, there are two new + vulnerabilities that need to be dealt with. These two new + vulnerabilities involve intentional mis-estimation of data size. + + The first is a consumer who intentionally over-estimates data size + with the goal of preventing other users from using the bandwidth. + This is at most a minor additional concern given the discussion of + how to handle over-estimation by honest clients in Section 3.2. If + one of the amelioration techniques described there is used, the case + of malicious over-estimation is also dealt with adequately. + + The second is a user who intentionally under-estimates the data size + with the goal having its Interest processed while the other + aggregated interests are not processed, thereby causing + T_MTU_TOO_LARGE errors and denying service to the other users with + overlapping requests. There are a number of possible mitigation + techniques for this attack vector, ranging in complexity. We outline + two below; there may be others as or more effective with acceptable + complexity and overhead: + + * (Simplest) A user sending Interests resulting in a T_MTU_TOO_LARGE + error is treated similarly to users mounting interest flooding + attacks; the a router aggregating Interests with differing + expected data sizes rate limits the face(s) exhibiting these + errors, thus decreasing the ability of a user to issue enough mis- + estimated Interests to collide and generate Interest aggregation. + + * An ICN forwarder aggregating Interests remembers in the PIT entry + not only the expected data size of the Interest it forwarded, but + the maximum of the expected data size of the other Interests it + aggregated. If a T_MTU_TOO_LARGE error comes back, instead of + propagating it, the forwarder MAY treat this as a transient error, + drop the Interest Return, and re-forward the Interest using the + maximum expected data size in the PIT (assuming it is is bigger). + This recovers from the error, but the attacker can still cause an + extra round trip to the producer or to an upstream forwarder with + a copy of the data in its Content Store. + + + + + + + + +Oran Expires 28 April 2022 [Page 12] + +Internet-Draft Maintaining Flow Balance October 2021 + + +5. Mapping to CCNx and NDN packet encodings + + The only actual protocol needed is a TLV in Interest messages that + states the size in bytes of the expected Data Message coming back, + and in the Interest Return on a "too big" error to carry the actual + data size. In the case of CCNx, this covers the encapsulated Data + Object, but not the hop-by-hop headers. + +5.1. Packet encoding for CCNx + + For CCNx[RFC8569] there is a new hop-by-hop header TLV, and a new + value of the Interest Return "Return Type". + + Expected Data Size (for Interest messages), or Actual Data Size (for + Interest Return messages) TLV + + +============+===========+================================+ + | Abbrev | Name | Description | + +============+===========+================================+ + | T_DATASIZE | Data Size | Expected (Section 3) or Actual | + | | | (Section 3.2) Data Size | + +------------+-----------+--------------------------------+ + + Table 1: Data Size TLV + +5.2. Packet encoding for NDN + + TBD based on [NDNTLV]. Suggestions from the NDN team greatly + appreciated. + +6. IANA Considerations + + Please Add the T_DATASIZE TLV to the Hop-by-Hop TLV types registry of + RFC8609, with fixed length of 2, and data type numeric + + Expected/Actual Data Size TLV encoding. The range has an upper bound + of 64K bytes, since that is the largest MTU supported by CCNx. + + 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +---------------+---------------+---------------+---------------+ + | T_DATASIZE | 2 | + +---------------+---------------+---------------+---------------+ + | Expected/Actual Data Size | + +---------------+---------------+ + + Figure 1: Expected/Actual Datazize using RFC8609 encoding + + + + +Oran Expires 28 April 2022 [Page 13] + +Internet-Draft Maintaining Flow Balance October 2021 + + +7. Security Considerations + + Section 4 addresses the major security considerations for this + specification. + +8. Acknowledgements + + Klaus Schneider and Ken Calvert have contributed a number of useful + comments which have substantially improved the document. + +9. References + +9.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + + [RFC8569] Mosko, M., Solis, I., and C. Wood, "Content-Centric + Networking (CCNx) Semantics", RFC 8569, + DOI 10.17487/RFC8569, July 2019, + . + + [RFC8609] Mosko, M., Solis, I., and C. Wood, "Content-Centric + Networking (CCNx) Messages in TLV Format", RFC 8609, + DOI 10.17487/RFC8609, July 2019, + . + +9.2. Informative References + + [Carofiglio2012] + Carofiglio, G., Gallo, M., and L. Muscariello, "Joint hop- + by-hop and receiver-driven interest control protocol for + content-centric networks, in ICN Workshop at SIGcomm + 2012", DOI 10.1145/2377677.2377772, 2102, + . + + [DASH] "Dynamic Adaptive Streaming over HTTP", various, + . + + + + + + + + + +Oran Expires 28 April 2022 [Page 14] + +Internet-Draft Maintaining Flow Balance October 2021 + + + [Ghali2013] + Ghali, C., Narayanan, A., Oran, D., Tsudik, G., and C. + Wood, "Secure Fragmentation for Content-Centric Networks, + in IEEE 14th International Symposium on Network Computing + and Applications", DOI 10.1109/nca.2015.34, 2015, + . + + [I-D.ietf-quic-transport] + Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed + and Secure Transport", Work in Progress, Internet-Draft, + draft-ietf-quic-transport-27, 21 February 2020, + . + + [I-D.irtf-icnrg-flic] + Tschudin, C., Wood, C., Mosko, M., and D. Oran, "File-Like + ICN Collections (FLIC)", Work in Progress, Internet-Draft, + draft-irtf-icnrg-flic-02, 4 November 2019, + . + + [Mahdian2016] + Mahdian, M., Arianfar, S., Gibson, J., and D. Oran, + "MIRCC: Multipath-aware ICN Rate-based Congestion Control, + in Proceedings of the 3rd ACM Conference on Information- + Centric Networking", DOI 10.1145/2984356.2984365, 2016, + . + + [minmaxfairness] + "Max-min Fairness", various, + . + + [NDN] "Named Data Networking", various, + . + + [NDNTLV] "NDN Packet Format Specification.", 2016, + . + + [proportionalfairness] + "Proportionally Fair", various, + . + + [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, + RFC 793, DOI 10.17487/RFC0793, September 1981, + . + + + + + +Oran Expires 28 April 2022 [Page 15] + +Internet-Draft Maintaining Flow Balance October 2021 + + + [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram + Congestion Control Protocol (DCCP)", RFC 4340, + DOI 10.17487/RFC4340, March 2006, + . + + [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", + RFC 4960, DOI 10.17487/RFC4960, September 2007, + . + + [Schneider2016] + Schneider, K., Yi, C., Zhang, B., and L. Zhang, "A + Practical Congestion Control Scheme for Named Data + Networking, in Proceedings of the 2016 conference on 3rd + ACM Conference on Information-Centric Networking - ACM-ICN + '16", DOI 10.1145/2984356.2984369, 2016, + . + + [Song2018] Song, J., Lee, M., and T. Kwon, "SMIC: Subflow-level + Multi-path Interest Control for Information Centric + Networking, in 5th ACM Conference on Information-Centric + Networking", DOI 10.1145/3267955.3267971, 2018, + . + + [Wang2013] Wang, Y., Rozhnova, N., Narayanan, A., Oran, D., and I. + Rhee, "An Improved Hop-by-hop Interest Shaper for + Congestion Control in Named Data Networking, in ACM + SIGCOMM Workshop on Information-Centric Networking", + DOI 10.1145/2534169.2491233, 2013, + . + +Author's Address + + Dave Oran + Network Systems Research and Design + 4 Shady Hill Square + Cambridge, MA 02138 + United States of America + + Email: daveoran@orandom.net + + + + + + + + + +Oran Expires 28 April 2022 [Page 16] diff --git a/draft-oran-icnrg-flowbalance-06.xml b/draft-oran-icnrg-flowbalance-06.xml new file mode 100644 index 0000000..f3d4128 --- /dev/null +++ b/draft-oran-icnrg-flowbalance-06.xml @@ -0,0 +1,477 @@ + + + + + + + + + + + + + + + + + + + + + + + + Maintaining CCNx or NDN flow balance with highly variable data object sizes + + + + + + Network Systems Research and Design +
+ + 4 Shady Hill Square + + Cambridge + MA + 02138 + USA + + + daveoran@orandom.net + +
+
+ + + + + ICNRG + + icn + + + + Deeply embedded in some ICN architectures, especially Named Data Networking (NDN) and Content-Centric Networking (CCNx) is the notion of flow balance. This captures the idea that there is a one-to-one correspondence between requests for data, carried in Interest messages, and the responses with the requested data object, carried in Data messages. This has a number of highly beneficial properties for flow and congestion control in networks, as well as some desirable security properties. For example, neither legitimate users nor attackers are able to inject large amounts of un-requested data into the network. + Existing congestion control approaches however have a difficult time dealing effectively with a widely varying MTU of ICN data messages, because the protocols allow a dynamic range of 1-64K bytes. Since Interest messages are used to allocate the reverse link bandwidth for returning Data, there is large uncertainty in how to allocate that bandwidth. Unfortunately, most current congestion control schemes in CCNx and NDN only count Interest messages and have no idea how much data is involved that could congest the inverse link. This document proposes a method to maintain flow balance by accommodating the wide dynamic range in Data message size. + + +
+ + +
+ Introduction + Deeply embedded in some ICN architectures, especially Named Data Networking () and Content-Centric Networking (CCNx ,) is the notion of flow balance. This captures the idea that there is a one-to-one correspondence between requests for data, carried in Interest messages, and the responses with the requested data object, carried in Data messages. This has a number of highly beneficial properties for flow and congestion control in networks, as well as some desirable security properties. For example, neither legitimate users nor attackers are able to inject large amounts of un-requested data into the network. + + This approach leads to a desire to make the size of the objects carried in Data messages small and near constant, because flow balance can then be kept using simple bookkeeping of how many Interest messages are outstanding. While simple, constraining Data messages to be quite small - usually on the order of a link Maximum Transmission Unit (MTU) - has some constraints and deleterious effects, among which are: + +
    +
  • Such small data objects are inconvenient for many applications; their natural data object sizes can be considerably larger than a link MTU.
  • +
  • Applications with truly small data objects (e.g. voice packets in an Internet telephony applications) have no way to communicate that to the network, causing resources to still be allocated for MTU-sized data objects
  • +
  • When chunking a larger data object into multiple Data messages, each message has to be individually cryptographically hashed and signed, increasing both computational overhead and overall message header size. The signature can be elided when Manifests are used (by signing the Manifest instead), but the overhead of hashing multiple small messages rather than fewer larger ones remains.
  • +
+ + One approach which helps with the last of these is to employ fragmentation for Data messages larger than the Path MTU (PMTU). Such messages are carved into smaller pieces for transmission over the link(s). There are three flavors of fragmentation: end-to-end, hop-by-hop with reassembly at every hop, and hop-by-hop with cut-through of individual fragments. A number of ICN protocol architectures incorporate fragmentation and schemes have been proposed for both NDN and CCNx, for example in . Fragmentation alone does not ameliorate the flow balance problem however, since from a resource allocation standpoint both memory and link bandwidth must be set aside for maximum-sized data objects to avoid congestion collapse under overload. + + The design space considered in this document does not however extend to arbitrarily large objects (e.g. 100's of kilobytes or larger). As the dynamic range of data object sizes gets very large, finding the right tradeoff between handling a large number of small data objects versus a single very large data object when allocating link and buffer resources becomes intractable. Further, the semantics of Interest-Data exchanges means that any error in the exchange results in a re-issue of an Interest for the entire Data object. Very large data objects represent a performance problem because the cost of retransmission when Interests are retransmitted (or re-issued) becomes unsustainably high. Therefore, the method we propose deals with a dynamic range of object sizes from very small (a fraction of a link MTU) to moderately large - about 64 kilobytes or equivalently about 40 Ethernet packets, and assumes an associated fragmentation scheme to handle link MTUs that cannot carry the Data message in a single link-layer packet. + + The approach described in the rest of this document maintains flow balance under the conditions outlined above by allocating resources accurately based on expected Data message size, rather than employing simple interest counting. +
+ +
+ Requirements Language + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119. +
+ +
+ Method to enhance congestion control with signaled size information in Interest Messages + Before diving into the specifics of the design, it is useful to consider how congestion control works in NDN/CCNx. Unlike the IP protocol family, which relies on end-to-end congestion control (e.g. TCP, DCCP, SCTP, QUIC), CCNx and NDN employ hop-by-hop congestion control. There is per-Interest/Data state at every hop of the path and therefore for each outstanding Interest, bandwidth for data returning on the inverse path can be allocated. In many current designs, this allocation is done using simple Interest counting - by queueing and subsequently forwarding one Interest message from a downstream node, implicitly this provides a guarantee (either hard or soft) that there is sufficient bandwidth on the inverse direction of the link to send back one Data message. A number of congestion control schemes have been developed that operate in this fashion, for example ,,,. Other schemes, like neither count nor police interests, but instead monitor queues using AQM (active queue management) to mark or drop returning Data packets that have experienced congestion. It is worth noting that every congestion control algorithm has an explicit fairness goal and associated objective function (usually either or ). If your fairness is to be based on resource usage, pure interest counting doesn't do the trick, since a consumer asking for large thing can saturate a link and shift loss to consumers asking for small things. + + In order to deal with a larger dynamic range of Data message size, some means is required to allocate link bandwidth for Data messages in bytes with an upper bound larger than a Path MTU and a lower bound lower than a single link MTU. Since resources are allocated for returning Data based on arriving Interests, this information must be available in Interest messages. + + Therefore, one key idea is the inclusion of an expected data size TLV in each Interest message. This allows each forwarder on the path taken by the Interest to more accurately allocate bandwidth on the inverse path for the returning Data message. Also, by including the expected data size, large objects will have a corresponding weight in resource allocation, maintaining link and forwarder buffering fairness. The simpler Interest counting scheme was nominally "fair" on a per-exchange basis within the variations of data that fit in a single PMTU packet because all Interests produced similar amounts of data in return. In the absence of such a field, it is not feasible to allow a large dynamic range in object size. While schemes like would not employ the expected data size to allocate reverse link bandwidth, they can still benefit from the information to affect the AQM congestion marking algorithm, preferentially marking data packets that exceed the expected data size from the corresponding Interest. + + It is natural to ask whether the additional complexity introduced into an ICN forwarder, and the additional computational cost for the congestion control operations is worthwhile. For congestion control schemes like the additional overhead is not trivial, since no Interest counting is happening. However, if a congestion control is already counting Interests, the additional overhead is minimal, only reading one extra TLV from the Interest and incrementing the outstanding data amount for the corresponding queue by that number rather than a constant of 1. The overhead on returning data is simply reducing the amount by the actual Data message size, rather than by 1. + +
+ How to predict the size of returning Data messages + + This of course raises the question "How does the requester know how big the corresponding Data message coming back will be?". For a number of important applications, the size is known a priori due to the characteristics of the application. Here are some examples: + +
    +
  • For many sensor and other Internet-of-Things applications, the data is instrument readings which have fixed known size.
  • +
  • In video streaming, the data is output of a video encoder which produces variable sized frames. This information is typically made available ahead of time to the streaming clients in the form of a Manifest (e.g , FLIC), which contains the names of the corresponding segments (or individual frames) of video and audio and their sizes.
  • +
  • Internet telephony applications use vocoders that typically employ fixed-size audio frames. Therefore, their size is known either a priori, or via an initialization exchange at the start of an audio session.
  • +
+ + The more complex cases arise where the data size is not known at the time the Interest must be sent. Much of the nuance of the proposed scheme is in how mismatches between the expected data size and the actual Data message returned are handled. The consumer can either under- or over-estimate the data size. In the former case, the under-estimate can lead to congestion and possible loss of data. In the latter case, bandwidth that could have been used by data objects requested by other consumers might be wasted. We first consider "honest" mis-estimates due to imperfect knowledge by the ICN application; later we consider malicious applications that are using the machinery to mount some form of attack. We also consider the effects of Interest aggregation if the aggregated Interests have differing expected data sizes. Also, it should be obvious that if the Data message arrives, the application learns its actual size, which may or may not be useful in adjusting the expected data size estimate for future Interests. + + In all cases, the expected data size from the Interest can be incorporated in the corresponding Pending Interest Table (PIT) entry of each CCNx/NDN forwarder on the path and hence when a (possibly fragmented) Data object comes back, its total size is known and can be compared to the expected size in the PIT for a mismatch. Aside: In the case of fragmentation, we assume a fragmentation scheme in which the total Data message size can be known as soon as any one fragment is received (a reasonable assumption for most any well-designed fragmentation method, such as that in ). +
+ +
+ Handling 'too big' cases + If the returning Data message is larger than the expected data size, the extra data could result in either unfair bandwidth allocation or possibly data loss under congestion conditions. When this is detected, the forwarder has three choices: + +
    +
  1. It could forward the Data message anyway, which is safe under non-congestion conditions, but unfair and possibly unstable when the output link is congested
  2. +
  3. It could forward the data when un-congested (e.g. by assessing output queue depth) but drop it when congested
  4. +
  5. It could always drop the data, as a way of "punishing" the requester for the mis-estimate.
  6. +
+ + Either of the latter two strategies is acceptable from a congestion control point of view. However, it is not a good idea to simply drop the Data message with no feedback to the issuer of the Interest because the application has no way to learn the actual data size and retry. Further, recovery would be delayed until the failing Interest timed out. Therefore, an additional element needed in protocol semantics is the incorporation of a "Data too big" error message (achieved via the use of an "Interest Return" packet in CCNx). + + Upon dropping data as above, the CCNx/NDN forwarder converts the normal Data message into an Interest Return packet containing the existing T_MTU_TOO_LARGE error code and the actual size of the Data message instead of the original content. It propagates that back toward the client identically to how the original Data message would have been handled. Subsequent nodes upon receiving the T_MTU_TOO_LARGE error treat identically to other Interest Return errors. When the Interest Return eventually arrives back to the issuer of the Interest, the user MAY reissue the Interest with the correct expected data size. + + One detail to note is that an Interest Return carrying T_MTU_TOO_LARGE must be deterministically smaller than the expected data size in all cases. This is clearly the case for large data objects, but there is a corner case with small data objects. There has to be a minimum expected data size that a client can specify in their Interests, and that minimum cannot be smaller than the size of a T_MTU_TOO_LARGE Interest Return packet. +
+ +
+ Handling 'too small' cases + Next we consider the case where the returning data is smaller than the expected data size. While this case does not result in congestion, it can cause resources to be inefficiently allocated because not all of the set-aside bandwidth for the returning data object gets used. The simplest and most straightforward way to deal with this case is to essentially ignore it. The motivation for not worrying about the smaller data mismatch is that in many situations that employ usage-based resource measurement (and possibly charging), it is trivial to just account for the usage according to the larger expected data size rather than actual returned data size. Properly adjusting congestion control parameters to somehow penalize users for over-estimating their resource usage requires fairly heavyweight machinery, which in most cases is not warranted. If desired, any of the following mechanisms could be considered: +
    +
  • Attempt to identify future Interests for the same object or closely related objects and allocate resources based on some retained state about the actual size of prior objects
  • +
  • Police consumer behavior and decrease the expected data size in one or more future Interests to compensate
  • +
  • For small objects, do more optimistic resource allocation on the links on the presumption that there will be some "slack" due to clients overestimating data object size.
  • +
+
+ +
+ Interactions with Interest Aggregation + + One protocol detail of CCNx/NDN that needs to be dealt with is Interest Aggregation. Interest Aggregation, while a powerful feature for maintaining flow balance when multiple consumers send Interests for the same Named object, introduces subtle complications. Whenever a second or subsequent Interest arrives at a forwarder with an active PIT entry it is possible that those Interests carry different parameters, for example hop limit, payload, etc. It is therefore necessary to specify the exact behavior of the forwarder for each of the parameters that might differ. In the case of the expected data size parameter defined here, the value is associated with the ingress face on which the Interest creating the PIT entry arrived, as opposed to being global to the PIT entry as a whole. Interest aggregation interacts with expected data size if Interests from different clients contain different values of the expected data size. As above in , the simplest solution to this problem is to ignore it, as most error cases are benign. However, there is one problematic error case where one client provides an accurate expected data size, but another who issued the Interest first underestimates, causing both to receive a T_MTU_TOO_LARGE error. This introduces a denial of service vulnerability, which we discuss below together with the other malicious actor cases. + + There are two cases to consider: + +
    +
  1. The arriving Interest carries an expected data size smaller than any of the values associated with the PIT entry.
  2. +
  3. The arriving Interest carries an expected data size larger than any of the values associated with the PIT entry.
  4. +
+ + For Case (1) the Interest can be safely aggregated since the upstream links will have sufficient bandwidth allocated based on the larger expected data size (assuming the original Interest's expected data size was itself sufficiently large to accommodate the actual size of the returning Data). On the other hand, should the incoming face have bandwidth allocated based on the larger existing Interest's expected data size, or on the smaller value in the arriving interest? Here there are two possible approaches: + +
    +
  1. Allocate based on the data size already in the PIT. In this case the consumer sending the earlier Interest can cause over-allocation of link bandwidth for other incoming faces, but there will not be a T_MTU_TOO_LARGE error generated for that Interest
  2. +
  3. Allocate based on the value in the arriving Interest. If the returning Data is in fact larger, generate a T_MTU_TOO_LARGE Interest Return on that ingress face, while successfully returning the Data message on any faces that do not exhibit a too small expected data size
  4. +
+ + It is RECOMMENDED that the second policy be followed. The reasons behind this recommendation are as follows: + +
    +
  1. The link can be congested quite quickly after the queuing decision is made, especially if the data has a long link-occupancy time, so this is a safer alternative.
  2. +
  3. The cost of returning the error is only one link RTT, since the consumer (or downstream forwarder) can immediately re-issue the Interest with the correct size and perhaps pick up the cached object from the upstream forwarder's Content Store.
  4. +
  5. Being optimistic and returning the data interacts with the behavior of aggregate resource control and resource accounting, which in turn raises the messy issue of whether to "charge" the consumer for the actual bandwidth used or only for the requested bandwidth in the expected data.
  6. +
  7. The rabbit hole goes deeper if you add differential QoS to the equation or consumers "playing games" and intentionally underestimating so their interests get satisfied when links aren't congested. This makes handling malicious actors () more difficult.
  8. +
+ + For Case (2) above, the Interest MUST be forwarded rather than aggregated to prevent a consumer from mounting a denial of service attack by sending intentionally too small expected data size (see for additional detail on this and other attacks). As above for Case (1) it is RECOMMENDED that policy (b) above be followed. +
+ +
+ Operation when some Interests lack the expected data size option and some have it + + Since the expected data size is an optional hop-by-hop packet field, forwarders need to be prepared to handle an arbitrary mix of packets containing or lacking this option. There are two general things to address. + + First, we assume that any forwarder supporting expected data size is running a more sophisticated congestion control algorithm that one employing simple interest counting. The link bandwidth resource allocation is therefore based directly, or indirectly, on the expected Data size in bytes. Therefore, the forwarder has to assign a value to use in the resource allocation for the reverse link. This specification does not mandate any particular approach or a default value to use. However, in the absence on other guidance, it makes sense to do one of two things: + +
    +
  1. Pick a default based on the link MTU of the face on which the Interest arrived and use that for all Interests lacking an expected data size. This is likely to be most compatible with simple interest counting which would rate limit all incoming interests equally.
  2. +
  3. + Configure some values for given Name prefixes that have known sizes. This may be appropriate for dedicated forwarders supporting single use cases, such as: +
      +
    • A forwarder handling IoT sensors sending very small Data messages
    • +
    • A forwarder handling real-time video with large average Data packets that exceed link MTU and are routinely fragmented
    • +
    • A forwarder doing voice trunking where the vocoders produce moderate sized packets, still much smaller than the link MTU
    • +
    +
  4. +
+ + The second area to address is what to do if an interest lacking an expected Data size is responded to by a Data message whose size exceeds the default discussed above. It would be inappropriate to issue a T_MTU_TOO_LARGE error, since the consumer is unlikely to understand or deal correctly with that new error case. Instead, it is RECOMMENDED that the forwarder: + +
    +
  • Ignore the mismatch if the reverse link is not congested and return the requested Data message anyway.
  • +
  • If the reverse link is congested, issue an Interest Return with the T_NO_RESOURCES error code
  • +
+ This specification does not define or recommend any particular algorithm for assessing the congestion state of the link(s) to carry the Data message downstream to the requesting consumers. It is assumed that a reasonable algorithm is in use, because otherwise even basic Interest counting forms of congestion control would not be effective. +
+
+ +
+Dealing with malicious actors + First we note that various known attacks in CCNx or NDN can also be mounted by users employing this method. Attacks that involve interest flooding, cache pollution, cache poisoning, etc. are neither worsened nor ameliorated by the introduction of the congestion control capabilities described here. However, there are two new vulnerabilities that need to be dealt with. These two new vulnerabilities involve intentional mis-estimation of data size. + + The first is a consumer who intentionally over-estimates data size with the goal of preventing other users from using the bandwidth. This is at most a minor additional concern given the discussion of how to handle over-estimation by honest clients in . If one of the amelioration techniques described there is used, the case of malicious over-estimation is also dealt with adequately. + + The second is a user who intentionally under-estimates the data size with the goal having its Interest processed while the other aggregated interests are not processed, thereby causing T_MTU_TOO_LARGE errors and denying service to the other users with overlapping requests. There are a number of possible mitigation techniques for this attack vector, ranging in complexity. We outline two below; there may be others as or more effective with acceptable complexity and overhead: + +
    +
  • (Simplest) A user sending Interests resulting in a T_MTU_TOO_LARGE error is treated similarly to users mounting interest flooding attacks; the a router aggregating Interests with differing expected data sizes rate limits the face(s) exhibiting these errors, thus decreasing the ability of a user to issue enough mis-estimated Interests to collide and generate Interest aggregation.
  • +
  • An ICN forwarder aggregating Interests remembers in the PIT entry not only the expected data size of the Interest it forwarded, but the maximum of the expected data size of the other Interests it aggregated. If a T_MTU_TOO_LARGE error comes back, instead of propagating it, the forwarder MAY treat this as a transient error, drop the Interest Return, and re-forward the Interest using the maximum expected data size in the PIT (assuming it is is bigger). This recovers from the error, but the attacker can still cause an extra round trip to the producer or to an upstream forwarder with a copy of the data in its Content Store.
  • +
+
+ +
+ Mapping to CCNx and NDN packet encodings + The only actual protocol needed is a TLV in Interest messages that states the size in bytes of the expected Data Message coming back, and in the Interest Return on a "too big" error to carry the actual data size. In the case of CCNx, this covers the encapsulated Data Object, but not the hop-by-hop headers. + +
+ Packet encoding for CCNx + For CCNx there is a new hop-by-hop header TLV, and a new value of the Interest Return "Return Type". + + Expected Data Size (for Interest messages), or Actual Data Size (for Interest Return messages) TLV + + Data Size TLV + + + + + + + + + + + + + + +
AbbrevNameDescription
T_DATASIZEData SizeExpected () or Actual () Data Size
+
+ +
+ Packet encoding for NDN + TBD based on . Suggestions from the NDN team greatly appreciated. +
+
+ + + + + +
+ IANA Considerations + Please Add the T_DATASIZE TLV to the Hop-by-Hop TLV types registry of RFC8609, with fixed length of 2, and data type numeric + + Expected/Actual Data Size TLV encoding. The range has an upper bound of 64K bytes, since that is the largest MTU supported by CCNx. + +
+ Expected/Actual Datazize using RFC8609 encoding + +
+ +
+
+ Security Considerations + addresses the major security considerations for this specification. + +
+ +
+ Acknowledgements + Klaus Schneider and Ken Calvert have contributed a number of useful comments which have substantially improved the document. +
+ +
+ + + + + + + + References + + Normative References + + + + + + + + Informative References + + + + + + + + + Secure Fragmentation for Content-Centric Networks, in IEEE 14th International Symposium on Network Computing and Applications + + + + + + + + + + + + + MIRCC: Multipath-aware ICN Rate-based Congestion Control, in Proceedings of the 3rd ACM Conference on Information-Centric Networking + + + + + + + + + + + + Joint hop-by-hop and receiver-driven interest control protocol for content-centric networks, in ICN Workshop at SIGcomm 2012 + + + + + + + + + + + + An Improved Hop-by-hop Interest Shaper for Congestion Control in Named Data Networking, in ACM SIGCOMM Workshop on Information-Centric Networking + + + + + + + + + + + + + + SMIC: Subflow-level Multi-path Interest Control for Information Centric Networking, in 5th ACM Conference on Information-Centric Networking + + + + + + + + + + + A Practical Congestion Control Scheme for Named Data Networking, in Proceedings of the 2016 conference on 3rd ACM Conference on Information-Centric Networking - ACM-ICN '16 + + + + + + + + + + + + + Named Data Networking + + various + + + + + + NDN Packet Format Specification. + + + + + + + + Max-min Fairness + + various + + + + + + Proportionally Fair + + various + + + + + + Dynamic Adaptive Streaming over HTTP + + various + + + + + + + + +