diff --git a/changelogs/unreleased/8342-kaovilai b/changelogs/unreleased/8342-kaovilai new file mode 100644 index 0000000000..b3601c42e2 --- /dev/null +++ b/changelogs/unreleased/8342-kaovilai @@ -0,0 +1 @@ +breaking: Namespaces included by labelSelector act as IncludedNamespaces, all items including unlabeled under a namespace with labelSelector selected by backup selector will be included in the backup. diff --git a/config/crd/v1/bases/velero.io_backups.yaml b/config/crd/v1/bases/velero.io_backups.yaml index 11a70e1fb9..30ab4c5196 100644 --- a/config/crd/v1/bases/velero.io_backups.yaml +++ b/config/crd/v1/bases/velero.io_backups.yaml @@ -337,7 +337,9 @@ spec: description: |- LabelSelector is a metav1.LabelSelector to filter with when adding individual objects to the backup. If empty - or nil, all objects are included. Optional. + or nil, all objects are included. + If matched object is Namespace, the namespace will act as IncludedNamespaces, + and all resources in the namespace are included in the backup. Optional. nullable: true properties: matchExpressions: diff --git a/config/crd/v1/bases/velero.io_schedules.yaml b/config/crd/v1/bases/velero.io_schedules.yaml index 6d1f1a3f09..e617e0621c 100644 --- a/config/crd/v1/bases/velero.io_schedules.yaml +++ b/config/crd/v1/bases/velero.io_schedules.yaml @@ -378,7 +378,9 @@ spec: description: |- LabelSelector is a metav1.LabelSelector to filter with when adding individual objects to the backup. If empty - or nil, all objects are included. Optional. + or nil, all objects are included. + If matched object is Namespace, the namespace will act as IncludedNamespaces, + and all resources in the namespace are included in the backup. Optional. nullable: true properties: matchExpressions: diff --git a/config/crd/v1/crds/crds.go b/config/crd/v1/crds/crds.go index 397042b4af..cd411a207a 100644 --- a/config/crd/v1/crds/crds.go +++ b/config/crd/v1/crds/crds.go @@ -30,14 +30,14 @@ import ( var rawCRDs = [][]byte{ []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xccXO\xaf\xdb6\f\xbf\xe7S\x10\xdduNZl\x87!\xb76[\x81bm\xf1\x90\x14\xef\xae\xd8t\xa2>Y\xd2$*]\xf6\xe7\xbb\x0f\x94\xecı\x95\xf8\xe5\r\x18\xa6\x9b%\x92\"\xf9#\x7fTR\x14\xc5LX\xf9\x88\xceK\xa3\x97 \xac\xc4\xdf\t5\x7f\xf9\xf9\xd3O~.\xcd\xe2\xf0f\xf6$u\xb5\x84U\xf0d\x9a5z\x13\\\x89?c-\xb5$i\xf4\xacA\x12\x95 \xb1\x9c\x01\b\xad\r\t\xde\xf6\xfc\tP\x1aM\xce(\x85\xaeء\x9e?\x85-n\x83T\x15\xbah\xbc\xbb\xfa\xf0z\xfe\xe6\xc7\xf9\xeb\x19\x80\x16\r.a+ʧ`\x1dZ\xe3%\x19'\xd1\xcf\x0f\xa8Й\xb943o\xb1d\xeb;g\x82]\xc2\xf9 i\xb77'\xaf\xdfEC\xeb\xce\xd01\x1e)\xe9\xe9\xd7\xec\xf1G\xe9)\x8aX\x15\x9cP9Gⱗz\x17\x94p#\x01\xbe\xc0\x97\xc6\xe2\x12>\xb3/V\x94X\xcd\x00\xdaH\xa3o\x05\x88\xaa\x8a\xb9\x13\xea\xc1IM\xe8VF\x85\xa6\xcbY\x01_\xbd\xd1\x0f\x82\xf6K\x98wٝ\x97\x0ecb\xbf\xc8\x06=\x89\xc6F\xd9.aow\xd8~ӑ/\xaf\x04\xe1\xd8\x18gn~\xf6\xf5\xcb\xd1⅕s\"\xa0w\x96,zrR\xeffg\xe1Û\x94\x8ar\x8f\x8dX\xb6\xb2Ƣ~\xfb\xf0\xe1\xf1\x87\xcd\xc56\x80uƢ#\xd9\xc1\x93V\xaf\xfcz\xbb\x00\x15\xfa\xd2IK\xb18\xfe*.\xce\x00\xf8\x82\xa4\x05\x15\xd7!z\xa0=v9ƪ\xf5\tL\r\xb4\x97\x1e\x1cZ\x87\x1eu\xaaL\xde\x16\x1a\xcc\xf6+\x964\x1f\x98ޠc3\xe0\xf7&\xa8\x8a\xcb\xf7\x80\x8e\xc0aivZ\xfeq\xb2\xed\x81L\xbcT\tBO\x10Q\xd4B\xc1A\xa8\x80߃\xd0\xd5\xc0r#\x8e\xe0\x90\uf120{\xf6\xa2\x82\x1f\xfa\xf1\xc98\x04\xa9k\xb3\x84=\x91\xf5\xcb\xc5b'\xa9k\xca\xd24MВ\x8e\x8b\xd8_r\x1b\xc88\xbf\xa8\xf0\x80j\xe1\xe5\xae\x10\xae\xdcK\u0092\x82Å\xb0\xb2\x88\x81\xe8ؘ\xf3\xa6\xfaεm\xec/\xae\x1d\x01\x9dV\xec\xa4;\xe0\xe1\xd6\x02\xe9A\xb4\xa6R\x88g\x14x\x8bS\xb7\xfee\xf3\x05:O\x12R\t\x94\xb3\xe8(/\x1d>\x9cM\xa9ktI\xafv\xa6\x896QW\xd6HM\xf1\xa3T\x125\x81\x0f\xdbF\x12\x97\xc1o\x01=1tC\xb3\xabH\\\xb0E\b\x96[\xa7\x1a\n|а\x12\r\xaa\x95\xf0\xf8\x1fcŨ\xf8\x82Ax\x16Z}:\x1e\n\xa7\xf4\xf6\x0e:*\xbd\x02\xed\x90\x1e7\x16KF\x96\x93˪\xb2\x96e\xea\xa9\xda8\x10#\xf9\xcbL\xe5)\x80W\"\xd1\r\x19'v\xf8\xd1$\x9bC\xa1\xa9\xb2\xe3\xf5.g\xa8\xf3\x98i+q\x02\xe6\x053\x06i/\xa8G\x06$\xa4>qJ6\xc8\x1b\xc8Dt\x043\x85\x16\xba\xc4\xf7\xb1\x1euy\x9c\b\xf4SF\x85Cڛo`jB\xdd7\xda\xfa\x9a\x89d\x8b\xe0\x82\xbe\xcb\xd9s\x8c+\xa3k\xb9\x1b;\xda\x1fd\xd7\xc0\x9d\xb8d\x10\xedzp'G\xca\xc5u\xf6\xa5\xe8*\x8f\x01\xa9\xe5.\xb8k\xe0\xd5\x12U5\xa2\x10\x00\x1d\x94\x12[\x85K \x17\xf0JFF\xbdr\x99\x11\x9e\x8f\x13\xc0\xad/\x84Aꊻ\xa5\x1dV|IW\x8c\\\xfe\xa8+p\x97ϔ\xfeB\x1d\x9a\xf1u\x05<\x19+Efߡ'Yf\x0e^\xbd\xba\xaf\x02\xd8̇\x8a騖\xe8^ғ끍\xae\x1d\xeb\xa0T{AQ\x9a\xc6\n\x92[\x85\xdd\xcc`\xcce\xd29\xe6\x8a\x06\xfeU\x1b\x1e\xf8\xbd\x85\xa7\x17\xdaK\xc2z\xbc4\xd1'\x99\xb4\x11\xfdK\xcc\xd6s\xb3c\x11\x9f1iM\xd5z\xd6\xea\xc5ҿ#0\xa6\a\xe9p0\xad\x8b<\xbf\x0edr\xcc4\x10\x19V\xc3\xe0x\x90\xd4g\xcd\x1f\x12\x14\xfc=\x13(*t\xc9.\x83sq§]~ؽx\x06)\xe1\xa9G\xb5\xfc̞(\x8b\x8fc\x8d\xce16\x06\xc4\x1b\x8c|?\xb7\x19\xd8}(K\xc4j\xfc\xe8\x00\x86\xbf\x11\x94\x9e\xf3\x05\xdb{\x19\x97\xe5G\x11z/vSA~JR\xe9=ת\x80ؚ@W\x10\xa0}.\xc6ۨLxj\xf7\xc2O\xf9\xf9\xc02\xb9\xba\x18\x8c\xfc[.\\#\xd9\xcf\xf8-\xb3\xbbFQ\x8d\x89\xba\x80φ\xf2G7y\xb6D\xdd/\xa6\xc9\xd12\x90\xe7\xc8/0hM\x8e\xeao\x1c\xb5$l\xb2C\xfbz\xaf\xa4Ť\xad\x90\xf0\xf4\x8b4/6p}5\xd4:\x81\x96\x0e\xf8\xc1\x16;\xe7j-u)\x9b\n,\xad\xe9\x16Jk\xa2\x91Һ\xf9\x8e\x81[M\x95\xc9Ľ\xadu5\x15\t\xee\xe7\xa5c2\x02\x87>(zV\x00\xeb(\xda\xe1\x97\x14\xcf\xe5\xf7<\x7f\xf2=\x97V\x01\x9b\x8e\x1a\xafJ\xbc\x17R]=\x9e\f֓pt_\xfdn.TN\xbf\x86x\xb7_\xb7\xff\xcb\xfa\xbc\xf1\xb2\xed\x0e\x85s\xe28=\xbaG\x9b\x9e\x7f\x98W=\xe7|zm\xf4w\xc2\xf6\xf4\xbf\xc3\x12\xfe\xfc{\xf6O\x00\x00\x00\xff\xff\x1e(\xcb\xee\x81\x14\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}_s\xdb8\x92\xf8{>\x05ʿ\x87\xd9ݒ\xecI\xfd\xf6\xe1\xcao\x19'\xb9Q\xedL\xe2\x8a=\xd9g\x88lI\x18\x83\x00\x17\x00ek\xef\xee\xbb_\xa1\x01\xf0\x8f\b\x92\xa0,{\xb2{\xe1Kb\x11l\x00ݍ\xfe\x0f`\xb9\\\xbe\xa1%\xfb\nJ3)\xae\t-\x19<\x19\x10\xf6/}\xf9\xf0\x1f\xfa\x92ɫ\xfd\xdb7\x0fL\xe4\xd7\xe4\xa6\xd2F\x16_@\xcbJe\xf0\x1e6L0äxS\x80\xa195\xf4\xfa\r!T\bi\xa8\xfdY\xdb?\tɤ0Jr\x0ej\xb9\x05q\xf9P\xada]1\x9e\x83B\xe0\xa1\xeb\xfd\x8f\x97o\xffz\xf9\xe3\x1bB\x04-\xe0\x9a\xaci\xf6P\x95\xfar\x0f\x1c\x94\xbcd\xf2\x8d.!\xb3 \xb7JV\xe55i^\xb8O|wn\xa8?\xe1\xd7\xf8\x03g\xda\xfc\xad\xf5\xe3/L\x1b|Q\xf2JQ^\xf7\x84\xbfi&\xb6\x15\xa7*\xfc\xfa\x86\x10\x9d\xc9\x12\xae\xc9'\xdbEI3\xc8\xdf\x10\xe2G\x8d].\xfd\x80\xf7o\x1d\x84l\a\x05uc!D\x96 \xdeݮ\xbe\xfe\xff\xbb\xceτ\xe4\xa03\xc5J\x83s\xff\xefe\xfd;\xf1\xa3$L\x13J\xbe\xe2\x1c\x89\xf2('fG\rQP*\xd0 \x8c&f\a$\xa3\xa5\xa9\x14\x10\xb9!\x7f\xab֠\x04\x18\xd0-x\x19\xaf\xb4\x01E\xb4\xa1\x06\b5\x84\x92R2a\b\x13İ\x02ȟ\xdeݮ\x88\\\xff\x0e\x99ф\x8a\x9cP\xadeƨ\x81\x9c\xec%\xaf\np\xdf\xfe\xf9\xb2\x86Z*Y\x822, \xdd=-Nj\xfd:6W\xfbX\xf4\xb8\xafHnY\nܴ<\x8a!\xf7\x18\xb5\xf33;\xa6\x9b\xe9#\x93ٟ\xa9\xf0ÿ<\x02}\aʂ!z'+\x9e[N܃\xb2\b\xcc\xe4V\xb0\x7fְ51\x12;\xe5Ԁ\xb6\x981\xa0\x04\xe5dOy\x05\v\x8b\x94#\xc8\x05=\x10\x05\xb6OR\x89\x16<\xfc@\x1f\x8f\xe3W\xa9\x800\xb1\x91\xd7dgL\xa9\xaf\xaf\xae\xb6̄\xf5\x95ɢ\xa8\x043\x87+\\*l]\x19\xa9\xf4U\x0e{\xe0W\x9am\x97Te;f \xb3d\xbe\xa2%[\xe2D\x04\xae\xb1\xcb\"\xff\x7f\x81=t\xa7[s\xb0l\xab\x8dbb\xdbz\x81\xebc\x06y\xec\xd2q\xcc\xe8@\xb9)6T\xb0?Y\xd4}\xf9pw\xdffT\xa6=QZ\xfc:D\x1f\x8bM&6\xa0\xdcw\x1b%\v\x84\t\"w\xac\x8a|\xce\x19\bCt\xb5.\x98\xb1l\xf0\x8f\n\xb4]\x03\xf2\x18\xec\r\xca \xb2\x06R\x95\xb9e\xe3\xe3\x06+Anh\x01\xfc\x86jxeZY\xaa\xe8\xa5%B\x12\xb5ڒ\xf5\xb8\xb1Co\xebE\x10\x90\x03\xa4u\x82宄\xac\xb3\xd0\xecWl\xc32\xb7\x9c6R5r\xc7\xc9\xc0.\x86\xe2K\xdf>\x99fw\x82\x96z'\xcd=+@V\xe6\xb8\xc5\x14\xaf!\xf1\xeeVGP\xc2\b\xfdxQfU\x1ar\xbbh\x1f)38曻\x15\xf9\x8a\xc2*|\x8dB\xab\xd2\xc4TJX.\x89\xf4\xf5\x05h~\xb8\x97\xbfi y\x85̝)@<,\xc8\x1a6\x96\x13\x14\xd8\xef\xed+P\xca\xe2F\xe3\x00d\xd5\x136\xf6\xb9߁\xc5-\xad\xb8\xf1\xeb\x84i\xf2\xf6GR0Q\x99\x1e\xab\rR\x1d1E\r-\xe4\x1e\xd4)H|O\r\xfd\xd5~|\x84;\v\x94 T\x8b\xbc\xb5\xc7\xe3\xfa\x80/c\xd4v\xcfjӂ\xc84\xb9\xb8 R\x91\v\xa7\x81/\x16\xee\xeb\x8aq\xb3d\xa2\xdd\xc7#\xe3<\xf42o\xf2\x0e\x87\x8e\xa0\xfa^~ԎyO\xc2\xc5\x00\xac\x16j\x1ew`v\xa0H)k\x8d\xb7a\x1c\x88>h\x03\x85GL\xd0\"~>\x91\x9ep\xedp\xeeAh\x8bW?\x91\xfe\xe4E\xc59]s\xb8&FU0\x80\x9b\xb5\x94\x1c\xa8\x98@\xce\x17Іe\xe7@\x8d\x83\x14A\x8c\xf2/:\x18@\xa5I\x1f\x80\xd0\bh\x8f3\xab\x9d9o!\xb6\x8b\x957\xd1A\x95\n2+\xb6\xaf\xbd:`\xc0Q\x05\tI\xb8\x14[P\xae{k\xaa\x04\x0eS`9.'V\xd2*\xe0V\x9d\x90Me\x85\xf0%\xb1\xcb{\x90\t\x98\xd0\x06h\x84;\x9fA x\xcax\x95C~\xe3,\xaf;k@\xe6\xc1l\xee\x89\xcd\x14B}\x18\x85\xe8\xd53g\x19Z\x81\xde\xe0[\xa2\xe1\x1a\xe3\xd3FK\x1fJp\xb6\xb3\xa5\xa5\x1fv\xa3~G\x05\x82\x06c?\xba\xf8\xcb\xc5\x02I\xdc\xed\xb5ۇ&TA\x8d\x96d\xc1\tEi\x0e\xfd\xd6\xcc@\x11\xc1\xe2\xa8@I\xa4'U\x8a\x1e\x06\xa8Y;\x00g\xa4\xe7\x10\xcc#\x8a\x8a\xd0\xec\x95iz\xdc\xef\xbf3U\xcfCG\x8d\xee.e\xc2\xd2\xcfz\x9e\x1d\xf2i\xe7\xc0Y\xb4\ti\"\xf0\x98p\xf0\xd07\x1b\xa1\xd6\x1f\x84\xac\xb3\xf0\xfc\x10\x93\u05fc\xe5\x99\xf7_\x12S;)\x1f\xa6\xb0\xf3\xb3m\xd3xE$ð\nYÎ\xee\x99T~ꍮ\x85'\xc8*\x13]\xf5Ԑ\x9cm6\xa0,\x9crG5h\xe7'\x0f#d\xd8~'-1\x12}y4\x8f\x86\x90\x96L8\xf3\xa1\xa1[C\xe2XK\x86\xc7\x0e\xd4\xdaר\x8cs\xb6gyE9\xeae*27\x1fZ\x8f+&eF\x88\xdc\x1bs\x943\xdd\xe3\f\x820)K\xa4\x8e\xab$\x05X\xa3\xb7\xb0NA\xbf\xe9\xf0\xcc\xd7\xd4\xda*rh\xf6\x04\x89\xa5*\x0e\xdaw\x95\xa3\x1d\xd9ȌEC\x14\x8cD\x10N\xd7\xc0\x89\x06\x0e\x99\x91*\x8e\x91):\xbb'E\b\x0e 2\"\xf9\xba\xaeF3\x81\x11\x90\x04}\xb8\x1d\xcbv\xceԳL\x84pH.\xc1\x1a|\x86в\xe4\x11u\xd1<\xa3\xc4\xf7\x9d\x8c\xad\xf5\xe6\x99X\xf5\xc7\xf0b\xeb\xbfy\x12df\xf3DQ۬\xaf.fkv\x88;\xb5\xcd\xf3\xef\x89\xd8 \xf9O`ڑ\xd5O0,\x94\xccӃ|k\xb1\xca@_Zs\n-\x9d\x05a&\xfc:\xb5\x12:6W/Z\xd6A·M\x9b\xf9L\x9fH\x9a\x945\xf1B\x84\xa9\xbb\xf8\x17\xa4\v\xaa\x8c;\xaf1\x92i\xf2K\xfb\xab\x05a\x9b\x1a\xe9\xf9\x82l\x187\xa0\x8e\xb0\x7f\x92\xa8\x0f\x949\a2R\xb4\x1e\xc1\xf8\xbd\xc9v\x1f\x9e\xac\t\xa6\x9bTU\"^\x8e?v\x86l\xb0\xf6\xbb\xeay\x02.\xc186SP`|\x1c=\xa6\xf6/hZ\xbd\xfb\xf4>\xee_\xb5\x9f\x04\xce\xebMdbѹ\xe7\xddь\xda\xe3\xf3&|x\x836P\xed\x00\xb9\\ȂP\xf2\x00\ag\xbaPA,}hh\x9cн\x02L\xca \x9f=\xc0\x01\xc1ij,\xfd'\x95\x1b\xdc\xf3\x00\x87\x94fG8\xb4cb\xdag\x8f,\x9e\xec\x0f\x88\b\f\xae\xa7\xb2\x81{\xfcR\x88\xe44\xe2O\xa2,\tO\xc0\xfd\t\xd3Lb\x95v\x1f\xed4%r\xc0\x0f\xda\xd1Ү\x98\x1d+Q\xacb\xc4An\x92\tꞯ\x94\xb3\xbc\xeeȭ\x91\x95X\x90O\xd2\xd8\x7f><1\xed3\x99\xef%\xe8O\xd2\xe0//\x82Q7\xf0\x97ħ\xeb\x01\x17\x9apR\xde\"\xac\x9d\x8bs:\xcdr[\x8d{\xa6\xc9JXwš$\xb1+L\xbb\xba\xee\\GE\xa51\x8d&\xa4X\xba\xb0M\xac'\x8fo\xa9:\xe8~v\xa7\xbe\xc3{\xab,\xdc\x1b\x97\xfc\xe54\x83<\xe4k0+I\rlY\x96\xd8_\x01j\v\xa4\xb4\"<\x8d#\x12\x05\xab\x9f\xcd<\xf6I\xd3\xde\xed\xe7i\xf9P'\xf9\x97V\xe5,=\x04#\x8b\x04\x1cxٝO\xcfgi\xd7lB\xab\xc0\t\x93M\a\x92\x96\xc3MS\x90\xf2\ft\xa0\x16G\x13g\x92\xba4ϱЅ\xf2\xdb\x19\x1ae\x06/\xcc\x15\r\xad\xb1;\x15\\P̵\xfc\x97մ\xb8\x9a\xfe\x87\x94\x94)}I\xdeaM\v\x87\xce;\x1f4k\x81I\xe8\x12kR,\xff\xec)\xb7\xba\xdf\npA\x80;K@nzvт<\xee\xa4vj\xbbN\xe2\\<\xc0\xc1\xa5\f'\xbbl\v\x99\x8b\x95\xb8p6DO`\xd4\x06\x87\x14\xfc@.\xf0\xdd\xc5sL\xa9DNMl\xd6aт\x96i\x1c\x8a5E\xa9\x86\xbauX\x83\x11b?\xacke\xac\x91=6\xdb$\x16-\xa5\x8ed\xf2\a\x862\xc1\xbc\xb7R\x1b\x17/\xeb\xd8\xccр\x9a\fA4B7\xae\x80I\xaaPmb\x85\xf2T\xe8\xb7\xfd\xdc\xef@\x83\xcfW\xf8\xc0\x9c\x03j=\xbb\x8bf};i\x7f\xe1\xf2%\xd8\t\xcd\xd0b\xc1oK%3\xd0\xd1dv\xf3$\xe8\x8bHYF{\xeeȗ:/\xc9\xd5d\x8c\x87@Ón\xf2ZD\xcc\xf4\x17><\xb5\x02\xa2v\xedۿ\xa7xl\xee\xb8\b\xd6\f\x16\x05=\xaeSJ\x1a\xe2\x8d\xfb2\xac\x06\x0f\xc89\x1fj[\xa1$H\xd5\xe55\x03~\v\x86B\xc1\xc4\n; o_\xc0\xb0\xf024Vm\x12{N3eoB'\ru\xea\x1f\xdcR.%\xa6\n\x14t\x88\u05cf\xaa\xa3\x1d*\xa4i\x05$f\x98\x9b\xa5\xcc\x7f\xd0dÔ6\xed!\xe8\x81:\x95(\x98\x99\x8e\x97\xf8\xa0\xd4I~\xd7g\xf7e+ܵ\x93\x8f\xa1>\xcb!&q\xe6\x98_\x02\xc26\x84\x19\x02\"\x93\x95\xc0\x00\x8e]\xc7\u0605C\xae\x93\xb0,u\x91\xa4\xad~\xfb\x80\xa8\x8a4\x04,\x91S\x98\x18\x8d\xf4\xb4\x9b\x7f\xa4\x8c\xbf\x04\xd9\xccP\x19[\xec9mM\x84\x1a\xb7vE^A\x9fXQ\x15\x84\x16\x96F\xa8\xccY\x01]\xa27\x95o\xf6\vT\x13F\xda\x15Sr0\xe0\xab\xd7\x12ǐI\xa1Y\x0e\xb5r\xf5\x8c \x05\xa1dC\x19\xafT\xa2\x04\x9c\x85\xde9\xae\x88\x97\x04\xe7\xf31\xd2:_\"*\x12\xa2\xb9\x89\xb6\xe2\xb84.U\xba\xc57ef)\x98oe\x95\x8aI\xac\v<\xb3\xa1\xe5+)\xa98|\xb7\xb4R\x87\xfa\xdd\xd2\x1a{\xbe[Z\x13\xcfwK뻥\x95\xd2\xf2\xbb\xa5\xf5\xdd\xd2j?\xff',\xad\xa9\x11\xb9\r}\x03/'G\x91\x90\xaa\x1e\x1b\xe2\b|_\\\xe1k\xc0\x9fU\x8b\xb9\x8a\x83\x8aT\xfe\x0f\x94uDŽV\xa3<\xea\xe2L\xbbj\x02ϻ\xfdE\x13\xa6\xe43\xaa\xeeC\xa7竺_\x8dBΠ\xcdw\xe4s\xe9bO\xb3\xed\x8e\xf1\x98JZ1\xe1\xc9%\x84\xdd\x12\xc1\x01\xbbtn\xb6\xfb,[&\xfe\x90\xd2\xc0\xf9\x05\x81)\x11\xb1\x89\xe2\xbf\x13J\xfe\x12k\x8b\x9f\x9d\x9eO)\xea\x9b\xe31\xbfX\x01\xdf\xf9\xcb\xf6\x92\xf03]\xa27\a;/^\x8e\xf7\x8aEx\xafSz\x97Xpw\xbe\xca\xf9\xb4x\xecI\x95cӡ\x83ᢹ\xc9R\xb9\xc9\xd0\xc2\xd4\xc4fOi\xb2\x04nN\xe1\xdb$uҖ٫\x95\xb6\xbdZA\xdb떱\x8dr\xd1\xe8\xcb9\x85j\xf1siȤ\xb2\xe5\xaf\xc5l\xa7\xa2A\xaa\x8e\xf9z\x92\x7f\xf5\xf9\b\x86%|0\xed^\xc9F.*nX\xc91\x91\xbagy4\xd8`vp\xa8\x0f\xd0\xf8]\xe2\xd6S\x7f\x14\xcc\xe7/5\xd7^\x1eY\xfaT\x93G\xe0\x9c\xd0غ\xea\xcd\x9b2\x90SwK\xbd\xac\x8b3\xdfə\xb4*\xd2-\xbf?h\x17\xd4)\xbb\x9f\xd2\n\x00&w;\xbd\x94\xcb3\xe5\xf4$\xdbyi\xbb\x99\xe6%\v_p\xf7\xd2K\xecZJ\xc4T\xca.\xa5yxz\x85]I\xaf\xba\x1b\xe9\xb5v!%\xef>J*qI\xce\x02\xa7\x96\xa8\x9c\xb8\x9df:\xc7;\xbe\x9b(a\x17QB\xf6wz\x92'L/a\x97м\xddA\t4K]\x8a\xaf\xb8\v\xe8\x15w\xff\xbc\xf6\xae\x9f\tΚx=ow\xcf\xc9)\v\xa9rP\xa3i\x9fT.\x1c\xe5\xbf\x14ߦ;\x90\xa3|G8\xf6϶\xea\xd8˨\x1e\xfcI\xa3x\xa6\xecP\xfa\xd2rZ\xcb\xda\xe8\xe4\xa2\x1a\xf3\xa7kL\xfa\x83f]\xbaJCI\x15\x1e^\xbc>\xb8r\x96\xa8j\xfe@\xb3\xdd\x11\xf4\x1d\xd5d#UA\r\xb9\xa8\x13\x80W\x0e\xb8\xfd\xfb⒐\x8f\xb2\xae\x89h\x9fˣYQ\xf2\x83\xf5P\xc8E\xfb\x83\xd38 \xcam\xa1\xb7[\xc9Y\x16\xb1ݢg3\xb9ƽ\xc32\xf0Ĩ\xac]2Pچq\xd3\rͼ\xee\x19\x98\x1bɹ|\x9c\xe9\xfbӒ\xfd'\x1e\xdd\xfd\x8c\xe8л\xdb\x15\xc2\b\xec\x81g\x81\xd7\xc5Y\xf5l\xd6`\xd5r3ϡ\xb5\xbf\xdat v\xeb\x1cۧ\xe3B\xee\x0eB\x0ef\x81\x17\x9d\x99\xb4\xd2\xe5v\xe5\xc61ԋ\xe5\x19*\x0eDbE\x8d\xd91\x95/K\xaa\xcc\xc1\x15j,:c\b\xbat,\xba3\xa8=\xfa\x87;G\xd1\x1b\xcet\xc6\f\xe5\xa1\xec&}\x8fqw\xca8\x86w/N\xee[<\xe38\x86͒%b*\xf2s\xb4\xf2\xeblQ3\xed\x8f&\xfeU\xee\xe1}4z\xd6A\xcf\xddQ\xf3HyV\x80\xe8N\xdd\x1d\xacR]\x03\x9e\xc8\xdb\x7f\xf5\x8cz\xabе?S\xf5\x94@\xd9]\x17Dd~\xe1\x88\xd9\xd0YL>\xe1\t\xf0\ar\xfb\x15}\xb4Z\xb4\xf9%\xea}\xb4\x10*\v\xc9\xe0\b\x1c\xff\xc1O\xe7/M\xd3F*\xba\x85_\xa4;d{\x8a\xec\xdd֝\xc3\u05fd\xd5\x13\xeaGâ\x89\x9d\xc0\xeb\x8f\xfb>\x02\xd6\xd4|\xf7N5\xb6\xa3\x9cyN\xb31\xfc\x14\xba\xdf\xdf\xff\xe2feX\x01\x97\xef+W\xee`e\xa2\x06\x8b\xe20[\aim\xff\xbb\x93\x8fx\xf8o<\x8e\x19.Mh&\xa3\x00\x8bͱ\x04q֔\xaa\x92K\x9a\x83\xba\x91bö\x13\xb3\xfb\xad\xd3\xf8H\xcdf\xf8\xa3\x9f\\\xad\xa3\x02\xfc3\xd7 X\x9b\x87s\xe0\x1f\x19\a톕 \x80o\xfb_\xd5\xf2\xb8*\xd6Ά\xdbؗu\a\x03:\xceM\vC\xd1%(kE\xb9\xa0u\xa5\x03\xaf\x0eO\xbc\xa1\b\x13\x06\xb6\xd0\xf7\x02G$\xf0\xbes\xe8{\xe0\xf3)q\xf45\xfeUˬl\xad4gW\xcaMd\xe0CpZWh<2㏼:\xef\x19\xa5C\xce\xc2\xd0\xe5\x00x\x1a\xfe\xf4\xf5\x00\xee\xd0|\x7f\xa9\x88g\xe4J\xe1\x01\xa3\xfe@}<\x90\xf3\xa4\x1b\x02\xd6u\xa9S]6\xa5\xdf\x19\x03EibZzZ\x90\xfc4\x06\xb0\xb6p\xa4\xa1\xbc\xc5\xcf44\x88٨\xfa \xb2\xb1\x92,\xbf\x8eG\xa89\xc6\xc91\x04\xdc\xf8\x9d\x04gC@\rp\b\x01\xba\xca2\xd0zSq~\xa872|#\xd8\xf8H\x19?\x1f*\x1c\xb4AF\xb0\xd3\x1b\x8549a_(\r\"\x0f+=l\xf2\x99\x87\nO\x05_G\xa8\r-N\xba\xeb\xe0\xa6\x0f\x06o\xbbQy\xab\x1c\x91\xd6c\xa7\xba!\x7fL,7\xe0ܗ\xe8\x9eXh\x90\x13\u0603 V\xaf9\x14\x87\xeb\x9afB\xf1{C\x9dn\b\x9a\"\x04\x11\xa2w\xfa\x10\x1f'\xd0xw\xcc\x0f\xba\x86\x89U\x96x\x15H\x1f\t}\xb3\xd1\xf9\xf9\xd7\xd6n\x86\xa5\x05q\x9a\xbd\x17\x95͙f]\xbd\xf0\xd4\r-nІD\xea4ע\x01g[f\xbd\x04K\xb9-Uk\xba\x85e&9\a\x94\xd6\xfdq\xbd\xe4Z\xf7\xbb\xf6\xbe\x00ՓS\xfb\xd8n\xebsg\x8e\xda.eL]\xa18^|e\x98\x82\xe6\x0e\xbaހ$v<˱qX\x88^\xd0\xd6\x1fi\xbbmXu^,\xfb\b\xa9\xbf\x9fm\xe1=\xea8?\x16\xf4w\xa9\x16\xa4`\xc2\xfeCE\xeeR_\xe1\xe3Y\xe3\xdfI\xf9p\x171b{\x83\xff\xb9n\xd8$\t\x98p\xc3ƭ\x96kY\xf9\xbcum\xd0\xc6\x13\x12x\xa6\xfd\x99\x1d5\x849\xa2\x0fz\xd3\x19\x8c\x85\xfe܁4\xa9\n\\\xcf\x03\xb0\xee\xc2%`\x9c\x1f\x16ǐ\x8f.\x1cl`\xb7\xce\xfc\xf7f@\xb3\x93\x7f\xa0\xa3\x90ˉ\x02\xa9\x8f\x8ch\v\xf4S\xfcE\x8f\xe6!c\xb2\x87㟛\xd6Cxt\xc3l\x99{\x03\x13\xec\x18\x81\xe7uu\xf1\x82\x87\t濵m\xea]\xff-\xc7-\xd4W\rƷ\xe2\xbbƗ\xe4\x13\xf4\x03\xfdn#8\xe4XӀ\xab*\xd2d%n\x95\xdc*\xd0}\xa6[\x92\xbfSf\x98\xd8~\x94\xea\x96W[&>\x0foz\x19k|K\x95a\x96i\xddxb\x03e\x82r\xf6Ϙ|j\xbf\x9c\x06t3\xe8(-I\xc20\x86^\xbc\ak\xab\x0e\xfa\xf7QQXz\xbc\x9ebw\x04\x9aL\xc9\xc6\xda&hl\x8a\xd0\xed%\xf9$\xa3\v\xdc\x17\x04\xb1.LkZ\x816K\xd8l\xa42._\xbb\\\x12\xb6\tA\x04+;0r\xe4\xaek$,\x96h\xadK-\x1a5\x84a_\x85\xda\x14\x0fs/\xe8\xc1\xe5fh\x96U\xd6R\xba҆\xf2\x88\xa1\xf2,\x01\x8e\xd1\x1a\xbb\x88 \xff\xedY\xb9\xacU\x1bP?\xec\x86\xfd8\x94\xe2q\x12\xcez\xe3v\x8a ȣb\xc6X\xdbH\x8e$\xd3=\xaa\x8c\xb5\x918'ڢ\xfa\xa4\xf8\x1bq\xe2p5\\\x94\x926\xe5\xfb\x1aʐ\x98\xf5\xb3\xc6\xcb\t\u05c8\x1bb\xedW\xac\xbf\xf1\xad,\x99\xb3\x1d\x15\xdb\xc1=\xfa;%\xab\xed.p\xf2\x80QL\xf2\n0\\\x89\"E\x87\xbbuM\xa5D+\x99>\xb2\xf1\x99\x04f\xc0\xe1\xd2\xec\x81T\xe5\xc2\xdf]\xeb\xaf&\xbe\xf2\xb7\x80,7J\x16K\xdf/\x16\xd0-|.[1i-\x10\xb3\x8bb\x9d8\xeb\xdb\x1f\xb4\x8f\x9cP\x96 \bվ焳\x92NV7\xdaPe\x9e\x15\x8e\xb8\xeb@\x98\x88D`w\xf1I\xdc\xf9\x94\xbe;,\xea\xc6\xdf\xd1Y\x03^\x10\xcdD\xb8\x1dٕ\a8\xfe\x88f\x8b\x04\xdef(U\xbcbo<\xb4Н\xd0\xebF\x15\xf6\xb5\xae\xfdp\xb2\xd3\xf9\xf5\b\xc6\xd1\xc6_\xbc\xbc\xb2n\x12\x1c\xc5?\xb1X\xe4\x1bK=3;\x95?\xff\xe1\x1bz\xf7INM\x1c#c>\x0e\xba/\xc3\xceJ\xf7\xae\xca[\x0e\xd6\xf4\xd2\x00]\xf7i\x96\x9b\xbc?c\xdc\xe8\x9cA\xa3p\x0f\xf8y\xa2&\xfb3\x86\x8b^,Vt\xde)?R\xbcE\xf8\xa4U\xfbw\xffm$X\xe4\xc1\x9e;\\Ԋ\x16\x85\x81\xbfj\xbc(\xaa\x95z?\xa2\x9c\xce[\xd2\xc2\xf7\xe4\x7f\xf9\xdf\x00\x00\x00\xff\xffU\xf5M\xfa݀\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}_s\xdb8\x92\xf8{>\x05ʿ\x87\xd9ݒ\xecI\xfd\xf6\xe1\xcao\x19'\xb9Q\xedL\xe2\x8a=\xd9g\x88lI\x18\x83\x00\x17\x00ek\xef\xee\xbb_\xa1\x01\xf0\x8f\b\x92\xa0,{\xb2{\xe1Kb\x11l\x00ݍ\xfe\x0f`\xb9\\\xbe\xa1%\xfb\nJ3)\xae\t-\x19<\x19\x10\xf6/}\xf9\xf0\x1f\xfa\x92ɫ\xfd\xdb7\x0fL\xe4\xd7\xe4\xa6\xd2F\x16_@\xcbJe\xf0\x1e6L0äxS\x80\xa195\xf4\xfa\r!T\bi\xa8\xfdY\xdb?\tɤ0Jr\x0ej\xb9\x05q\xf9P\xada]1\x9e\x83B\xe0\xa1\xeb\xfd\x8f\x97o\xffz\xf9\xe3\x1bB\x04-\xe0\x9a\xaci\xf6P\x95\xfar\x0f\x1c\x94\xbcd\xf2\x8d.!\xb3 \xb7JV\xe55i^\xb8O|wn\xa8?\xe1\xd7\xf8\x03g\xda\xfc\xad\xf5\xe3/L\x1b|Q\xf2JQ^\xf7\x84\xbfi&\xb6\x15\xa7*\xfc\xfa\x86\x10\x9d\xc9\x12\xae\xc9'\xdbEI3\xc8\xdf\x10\xe2G\x8d].\xfd\x80\xf7o\x1d\x84l\a\x05uc!D\x96 \xdeݮ\xbe\xfe\xff\xbb\xceτ\xe4\xa03\xc5J\x83s\xff\xefe\xfd;\xf1\xa3$L\x13J\xbe\xe2\x1c\x89\xf2('fG\rQP*\xd0 \x8c&f\a$\xa3\xa5\xa9\x14\x10\xb9!\x7f\xab֠\x04\x18\xd0-x\x19\xaf\xb4\x01E\xb4\xa1\x06\b5\x84\x92R2a\b\x13İ\x02ȟ\xdeݮ\x88\\\xff\x0e\x99ф\x8a\x9cP\xadeƨ\x81\x9c\xec%\xaf\np\xdf\xfe\xf9\xb2\x86Z*Y\x822, \xdd=-Nj\xfd:6W\xfbX\xf4\xb8\xafHnY\nܴ<\x8a!\xf7\x18\xb5\xf33;\xa6\x9b\xe9#\x93ٟ\xa9\xf0ÿ<\x02}\aʂ!z'+\x9e[N܃\xb2\b\xcc\xe4V\xb0\x7fְ51\x12;\xe5Ԁ\xb6\x981\xa0\x04\xe5dOy\x05\v\x8b\x94#\xc8\x05=\x10\x05\xb6OR\x89\x16<\xfc@\x1f\x8f\xe3W\xa9\x800\xb1\x91\xd7dgL\xa9\xaf\xaf\xae\xb6̄\xf5\x95ɢ\xa8\x043\x87+\\*l]\x19\xa9\xf4U\x0e{\xe0W\x9am\x97Te;f \xb3d\xbe\xa2%[\xe2D\x04\xae\xb1\xcb\"\xff\x7f\x81=t\xa7[s\xb0l\xab\x8dbb\xdbz\x81\xebc\x06y\xec\xd2q\xcc\xe8@\xb9)6T\xb0?Y\xd4}\xf9pw\xdffT\xa6=QZ\xfc:D\x1f\x8bM&6\xa0\xdcw\x1b%\v\x84\t\"w\xac\x8a|\xce\x19\bCt\xb5.\x98\xb1l\xf0\x8f\n\xb4]\x03\xf2\x18\xec\r\xca \xb2\x06R\x95\xb9e\xe3\xe3\x06+Anh\x01\xfc\x86jxeZY\xaa\xe8\xa5%B\x12\xb5ڒ\xf5\xb8\xb1Co\xebE\x10\x90\x03\xa4u\x82宄\xac\xb3\xd0\xecWl\xc32\xb7\x9c6R5r\xc7\xc9\xc0.\x86\xe2K\xdf>\x99fw\x82\x96z'\xcd=+@V\xe6\xb8\xc5\x14\xaf!\xf1\xeeVGP\xc2\b\xfdxQfU\x1ar\xbbh\x1f)38曻\x15\xf9\x8a\xc2*|\x8dB\xab\xd2\xc4TJX.\x89\xf4\xf5\x05h~\xb8\x97\xbfi y\x85̝)@<,\xc8\x1a6\x96\x13\x14\xd8\xef\xed+P\xca\xe2F\xe3\x00d\xd5\x136\xf6\xb9߁\xc5-\xad\xb8\xf1\xeb\x84i\xf2\xf6GR0Q\x99\x1e\xab\rR\x1d1E\r-\xe4\x1e\xd4)H|O\r\xfd\xd5~|\x84;\v\x94 T\x8b\xbc\xb5\xc7\xe3\xfa\x80/c\xd4v\xcfjӂ\xc84\xb9\xb8 R\x91\v\xa7\x81/\x16\xee\xeb\x8aq\xb3d\xa2\xdd\xc7#\xe3<\xf42o\xf2\x0e\x87\x8e\xa0\xfa^~ԎyO\xc2\xc5\x00\xac\x16j\x1ew`v\xa0H)k\x8d\xb7a\x1c\x88>h\x03\x85GL\xd0\"~>\x91\x9ep\xedp\xeeAh\x8bW?\x91\xfe\xe4E\xc59]s\xb8&FU0\x80\x9b\xb5\x94\x1c\xa8\x98@\xce\x17Іe\xe7@\x8d\x83\x14A\x8c\xf2/:\x18@\xa5I\x1f\x80\xd0\bh\x8f3\xab\x9d9o!\xb6\x8b\x957\xd1A\x95\n2+\xb6\xaf\xbd:`\xc0Q\x05\tI\xb8\x14[P\xae{k\xaa\x04\x0eS`9.'V\xd2*\xe0V\x9d\x90Me\x85\xf0%\xb1\xcb{\x90\t\x98\xd0\x06h\x84;\x9fA x\xcax\x95C~\xe3,\xaf;k@\xe6\xc1l\xee\x89\xcd\x14B}\x18\x85\xe8\xd53g\x19Z\x81\xde\xe0[\xa2\xe1\x1a\xe3\xd3FK\x1fJp\xb6\xb3\xa5\xa5\x1fv\xa3~G\x05\x82\x06c?\xba\xf8\xcb\xc5\x02I\xdc\xed\xb5ۇ&TA\x8d\x96d\xc1\tEi\x0e\xfd\xd6\xcc@\x11\xc1\xe2\xa8@I\xa4'U\x8a\x1e\x06\xa8Y;\x00g\xa4\xe7\x10\xcc#\x8a\x8a\xd0\xec\x95iz\xdc\xef\xbf3U\xcfCG\x8d\xee.e\xc2\xd2\xcfz\x9e\x1d\xf2i\xe7\xc0Y\xb4\ti\"\xf0\x98p\xf0\xd07\x1b\xa1\xd6\x1f\x84\xac\xb3\xf0\xfc\x10\x93\u05fc\xe5\x99\xf7_\x12S;)\x1f\xa6\xb0\xf3\xb3m\xd3xE$ð\nYÎ\xee\x99T~ꍮ\x85'\xc8*\x13]\xf5Ԑ\x9cm6\xa0,\x9crG5h\xe7'\x0f#d\xd8~'-1\x12}y4\x8f\x86\x90\x96L8\xf3\xa1\xa1[C\xe2XK\x86\xc7\x0e\xd4\xdaר\x8cs\xb6gyE9\xeae*27\x1fZ\x8f+&eF\x88\xdc\x1bs\x943\xdd\xe3\f\x820)K\xa4\x8e\xab$\x05X\xa3\xb7\xb0NA\xbf\xe9\xf0\xcc\xd7\xd4\xda*rh\xf6\x04\x89\xa5*\x0e\xdaw\x95\xa3\x1d\xd9ȌEC\x14\x8cD\x10N\xd7\xc0\x89\x06\x0e\x99\x91*\x8e\x91):\xbb'E\b\x0e 2\"\xf9\xba\xaeF3\x81\x11\x90\x04}\xb8\x1d\xcbv\xceԳL\x84pH.\xc1\x1a|\x86в\xe4\x11u\xd1<\xa3\xc4\xf7\x9d\x8c\xad\xf5\xe6\x99X\xf5\xc7\xf0b\xeb\xbfy\x12df\xf3DQ۬\xaf.fkv\x88;\xb5\xcd\xf3\xef\x89\xd8 \xf9O`ڑ\xd5O0,\x94\xccӃ|k\xb1\xca@_Zs\n-\x9d\x05a&\xfc:\xb5\x12:6W/Z\xd6A·M\x9b\xf9L\x9fH\x9a\x945\xf1B\x84\xa9\xbb\xf8\x17\xa4\v\xaa\x8c;\xaf1\x92i\xf2K\xfb\xab\x05a\x9b\x1a\xe9\xf9\x82l\x187\xa0\x8e\xb0\x7f\x92\xa8\x0f\x949\a2R\xb4\x1e\xc1\xf8\xbd\xc9v\x1f\x9e\xac\t\xa6\x9bTU\"^\x8e?v\x86l\xb0\xf6\xbb\xeay\x02.\xc186SP`|\x1c=\xa6\xf6/hZ\xbd\xfb\xf4>\xee_\xb5\x9f\x04\xce\xebMdbѹ\xe7\xddь\xda\xe3\xf3&|x\x836P\xed\x00\xb9\\ȂP\xf2\x00\ag\xbaPA,}hh\x9cн\x02L\xca \x9f=\xc0\x01\xc1ij,\xfd'\x95\x1b\xdc\xf3\x00\x87\x94fG8\xb4cb\xdag\x8f,\x9e\xec\x0f\x88\b\f\xae\xa7\xb2\x81{\xfcR\x88\xe44\xe2O\xa2,\tO\xc0\xfd\t\xd3Lb\x95v\x1f\xed4%r\xc0\x0f\xda\xd1Ү\x98\x1d+Q\xacb\xc4An\x92\tꞯ\x94\xb3\xbc\xeeȭ\x91\x95X\x90O\xd2\xd8\x7f><1\xed3\x99\xef%\xe8O\xd2\xe0//\x82Q7\xf0\x97ħ\xeb\x01\x17\x9apR\xde\"\xac\x9d\x8bs:\xcdr[\x8d{\xa6\xc9JXwš$\xb1+L\xbb\xba\xee\\GE\xa51\x8d&\xa4X\xba\xb0M\xac'\x8fo\xa9:\xe8~v\xa7\xbe\xc3{\xab,\xdc\x1b\x97\xfc\xe54\x83<\xe4k0+I\rlY\x96\xd8_\x01j\v\xa4\xb4\"<\x8d#\x12\x05\xab\x9f\xcd<\xf6I\xd3\xde\xed\xe7i\xf9P'\xf9\x97V\xe5,=\x04#\x8b\x04\x1cxٝO\xcfgi\xd7lB\xab\xc0\t\x93M\a\x92\x96\xc3MS\x90\xf2\ft\xa0\x16G\x13g\x92\xba4ϱЅ\xf2\xdb\x19\x1ae\x06/\xcc\x15\r\xad\xb1;\x15\\P̵\xfc\x97մ\xb8\x9a\xfe\x87\x94\x94)}I\xdeaM\v\x87\xce;\x1f4k\x81I\xe8\x12kR,\xff\xec)\xb7\xba\xdf\npA\x80;K@nzvт<\xee\xa4vj\xbbN\xe2\\<\xc0\xc1\xa5\f'\xbbl\v\x99\x8b\x95\xb8p6DO`\xd4\x06\x87\x14\xfc@.\xf0\xdd\xc5sL\xa9DNMl\xd6aт\x96i\x1c\x8a5E\xa9\x86\xbauX\x83\x11b?\xacke\xac\x91=6\xdb$\x16-\xa5\x8ed\xf2\a\x862\xc1\xbc\xb7R\x1b\x17/\xeb\xd8\xccр\x9a\fA4B7\xae\x80I\xaaPmb\x85\xf2T\xe8\xb7\xfd\xdc\xef@\x83\xcfW\xf8\xc0\x9c\x03j=\xbb\x8bf};i\x7f\xe1\xf2%\xd8\t\xcd\xd0b\xc1oK%3\xd0\xd1dv\xf3$\xe8\x8bHYF{\xeeȗ:/\xc9\xd5d\x8c\x87@Ón\xf2ZD\xcc\xf4\x17><\xb5\x02\xa2v\xedۿ\xa7xl\xee\xb8\b\xd6\f\x16\x05=\xaeSJ\x1a\xe2\x8d\xfb2\xac\x06\x0f\xc89\x1fj[\xa1$H\xd5\xe55\x03~\v\x86B\xc1\xc4\n; o_\xc0\xb0\xf024Vm\x12{N3eoB'\ru\xea\x1f\xdcR.%\xa6\n\x14t\x88\u05cf\xaa\xa3\x1d*\xa4i\x05$f\x98\x9b\xa5\xcc\x7f\xd0dÔ6\xed!\xe8\x81:\x95(\x98\x99\x8e\x97\xf8\xa0\xd4I~\xd7g\xf7e+ܵ\x93\x8f\xa1>\xcb!&q\xe6\x98_\x02\xc26\x84\x19\x02\"\x93\x95\xc0\x00\x8e]\xc7\u0605C\xae\x93\xb0,u\x91\xa4\xad~\xfb\x80\xa8\x8a4\x04,\x91S\x98\x18\x8d\xf4\xb4\x9b\x7f\xa4\x8c\xbf\x04\xd9\xccP\x19[\xec9mM\x84\x1a\xb7vE^A\x9fXQ\x15\x84\x16\x96F\xa8\xccY\x01]\xa27\x95o\xf6\vT\x13F\xda\x15Sr0\xe0\xab\xd7\x12ǐI\xa1Y\x0e\xb5r\xf5\x8c \x05\xa1dC\x19\xafT\xa2\x04\x9c\x85\xde9\xae\x88\x97\x04\xe7\xf31\xd2:_\"*\x12\xa2\xb9\x89\xb6\xe2\xb84.U\xba\xc57ef)\x98oe\x95\x8aI\xac\v<\xb3\xa1\xe5+)\xa98|\xb7\xb4R\x87\xfa\xdd\xd2\x1a{\xbe[Z\x13\xcfwK뻥\x95\xd2\xf2\xbb\xa5\xf5\xdd\xd2j?\xff',\xad\xa9\x11\xb9\r}\x03/'G\x91\x90\xaa\x1e\x1b\xe2\b|_\\\xe1k\xc0\x9fU\x8b\xb9\x8a\x83\x8aT\xfe\x0f\x94uDŽV\xa3<\xea\xe2L\xbbj\x02ϻ\xfdE\x13\xa6\xe43\xaa\xeeC\xa7竺_\x8dB\xce`B\a\xae|\xd6\x1a\xf2\xb0[\x9d\xe9樇E\xb7\xea\xd7\xed6\xa4\x99!TGdQ\xcc1\xc6hHg%\xf8\x05\xd3\x00m\x0f\xf1x9}.]\xb0l\xb6\xa14\x1e\x04J\xab~<\xb9\xe6\xb1[\xd38`H\xcfMϟe\x8f\xc7\x1fR\xcb8\xbf\x821%\x847Q\xadxB\x8dbb1\xf4\xb3\xeb\tR\xaa\x10\xe7\xb8\xf8/Vqx\xfe:\xc3$\xfcL\xd7\x14\xce\xc1\u038b\xd7\x0f\xbeb\xd5\xe0\xeb\xd4\n&V\b\x9e\xaf\xd4?-\x80|R\xa9\xdbt\xacc\xb8\xcao\xb2\xb6o2\x1625\xb1\xd9S\x9a\xacٛS\xa97I\x9d\xb4e\xf6j\xb5x\xafV\x81\xf7\xbauw\xa3\\4\xfarNe]\xfc \x1d2\xa9l\xf9k1۩h\x90\xaaco\x9f\xe4\x10~>\x82a\t\x1fL\xbbW2ꋊ\x1bVr\xcc\xfc\xeeY\x1e\x8d\x8e\x98\x1d\x1c\xea\x13?~\x97\xb8W֟]\xf3\xf9K͵\x97G\xae\t\xd5\xe4\x11\xac\xdd\x1e[W\xbd\x99g\xee\xec\xa8L.\xc1\xea#\xbb:\xfdQ&\xfe\xc0\xa9\x85cw\xdc\x0e\x8cZ\xad\x88\xc5Ĩ\x18>\xf7fPq\xa4ț\x9e\x05\xeb\xecp\xfc\xed\x1f\x15\xa8\x03\xc1\x93wj;\xa7ٵ\xe6\x17\xa6\xb6\x9ec\x10\x15^l\r\x05\xfc{F\x7f\xb3\x94\xc9;\xe1\xb4\xee\xf1x\x9c;\xa5\xdb^\x98\x15|\xd6_\x89\xf61\xf0\xb9\x90\xf5בϦ\f\xe4\xd4\xed]/\xeb\xe2\xccwr&\xad\x8at\xcb\xef\x0fڶu\xcav\xad\xb4\x8a\x85\xc9\xedY/\xe5\xf2L9=\xc9v^\xda\xf6\xaby\xd9\xcd\x17\xdcn\xf5\x12۬\x121\x95\xb2\xadj\x1e\x9e^a\x1bիn\x9fz\xadmS\xc9ۥ\x92jr\x92\xd3֩55'\xee\xff\x99NJ\x8fo\x7fJ\xd8\xf6\x94\x90\xae\x9e\x9e\xe4\t\xd3K\xd8\xd64o;S\x02\xcdR\x97\xe2+n[z\xc5\xedJ\xaf\xbdMi\x82\xb3&^\xcfێtr\x8eE\xaa\x1c\xd4h\x9e*\x95\vG\xf9/ŷ\xe9\x0e\xe4(A\x13\xce)\xb4\xad:\xf62\xaa\a\x7f4*\x1e\x82;\x94o\xb5\x9cֲ6:ɳ\xc6\xfc\xe9\x1a\x93>\xd7\xe0\xf2k\x1aJ\xaa\xf0\xb4\xe5\xf5\xc1\xd5\xdfDU\xf3\a\x9a펠\xef\xa8&\x1b\xa9\nj\xc8E\x9dP\xb8r\xc0\xed\xdf\x17\x97\x84|\x94u\x11G\xfb !͊\x92\x1f\xac\x87B.\xda\x1f\x9c\xc6\x01Qn\v\xbd\xddJβ\x88\xed\x16=L\xca5\xee\x9d\xee\x81G\\e\xed\x1a\x87\xd26\x8c\x9bnh\xe6u\x0f\xed\xdcH\xce\xe5\xe3Lߟ\x96\xec?\xf1\xac\xf1gD\x87\xdeݮ\x10F`\x0f<\xbc\xbc\xae&\xabg\xb3\x06\xab\x96\x9by\x0e\xad\xfdզ\x03\xb1[\x98\xd9>\xce\x17rwrs0\v\xbc\xe8̤\x95.\xb7+7\x8e\xa1^,\xcfPq \x12K\x80̎\xa9|YRe\x0e\xae\xb2d\xd1\x19CХcѝA\xed\xd1?\x8d:\x8a\xdep\b5\xa6T\x0fe7K}\x8c\xbbS\xc61\xbc\xddrr\xa3\xe5\x19\xc71l\x96,\x11S\x91\x9f\xa3\xa5jg\x8b\x9ai\x7f\x96\xf2\xafr\x0f\xef\xa3ѳ\x0ez\ue39aG\xea\xc9\x02DwL\xf0`Y\xed\x1a\xf0\b\xe1\xfe\xabg\x14\x88\x85\xae\xfd!\xb0\xa7\x04\xca\xee\xba \"\xf3\vg\xe2\x86\xceb\xf2\t\x8f\xac?\x90ۯ\xe8\xa3բ\xcd/Q\uf8c5PYH\rG\xe0\xf8\x0f~:\x7f-\x9d6R\xd1-\xfc\"ݩ\xe0Sd\xef\xb6\xee\x9c\x16ﭞP\xf0\x1a\x16M\xec\xc8`\x7f>\xf9\x11\xb0\xa6H\xbdw\f\xb3\x1d\xe5̃\xa5\x8d\xe1\xa7\xd0\xfd\xfe\xfe\x177+\xc3\n\xb8|_\xb9\xfa\f+\x135X\x14\x87\xd9:Hk\xfbߝ|\xc4ӊ\xe3q\xccp\xcbC3\x19\x05X\x1d\x8f5\x93\xb3\xa6T\x95\\\xd2\x1cԍ\x14\x1b\xb6\x9d\x98\xddo\x9d\xc6Gj6\xc3\x1f\xfd\xe4j\x1d\x15\xe0\x9f\xb9\x06\xc1\xda<\x9c\x03\xff\xc88h7\xac\x04\x01|\xdb\xff\xaa\x96\xc7U\xb1v6\xdcƾ\xac;\x18\xd0qnZ\x18\x8a.AY+\xca\x05\xad+\x1dxux\xe2\rE\x980\xb0\x85\xbe\x178\"\x81\xf7\x9dS\xea\x03\x9fO\x89\xa3\xaf\xf1\xafZfek\xa59\xbbRn\"\x03\x1f\x82Ӻ\xf3\xe3\x91\x19\x7fF\xd7y\x0fU\x1dr\x16\x86n3\xc0\xe3\xfb\xa7\xef3p\xa7\xfc\xfb[P<#W\nOD\xf57\x00\xe0\t\xa2']i\xb0\xaek\xb3\xea:/\xfd\xce\x18(J\x13\xd3\xd2ӂ\xe4\xa71\x80\xb5\x85#\r\xe5-~\xa6\xa1A\xccF\xd5\a\x91\x8dՐ\xf9u\xa6\xa0帅\xfa\xaa\xc1\xf8V|\x9b\xfb\x92|\x82~\xa0\xdf\xed\\\x87\x1ck\x1apUE\x9a\xacĭ\x92[\x05\xba\xcftK\xf2w\xca\f\x13ۏR\xdd\xf2j\xcb\xc4\xe7\xe1]:c\x8do\xa92\xcc2\xad\x1bOl\xa0LP\xce\xfe\x19\x93O\xed\x97Ӏn\x06\x1d\xa5%I\x18\xc6Ћ\xf7`m\xd5A\xff>*\nK\x8f\xd7S\xec\x8e@\x93)\xd9X\xdb\x04\x8dM\x11\xba\xbd$\x9fdt\x81\xfb\x82 օiM+\xd0f\t\x9b\x8dT\xc6\xe5k\x97K\xc26!\x88`e\aF\x8e\xdc\xfd\x92\x84\xc5\x12\xadu\xa9E\xa3\x860\xec\xabP\x9b\xe2\xe9\xf3\x05=\xb8\xdc\fͲ\xcaZJW\xdaP\x1e1T\x9e%\xc01Zc\x17\x11\xe4\xbf=+\x97\xb5j\x03\xea\x87ݰ\x1f\x87R<\xff\xc2Yo\xdcN\x11\x04yT\xcc\x18k\x1bɑd\xbaG\x95\xb16\x12\xe7D[T\x9f\x14\x7f#N\x1c\xae\x86\x8bRҦ|_C\x19\x12\xb3~\xd6x\x9b\xe2\x1aqC\xac\xfd\x8a\xf57\xbe\x95%s\xb6\xa3b;x\xa8\xc0N\xc9j\xbb\v\x9c<`\x14\x93\xbc\x02\fW\xa2H\xd1\xe12`S)\xd1J\xa6\x8f\xec\xd4&\x81\x19p\xb84{ U钆\xf5]\xcaW\xfeڒ\xe5F\xc9b\xe9\xfb\xc5\x02\xba\x85\xcfe+&\xad\x05bvQ\xac\x13g}\xfb\x9b\x01\x90\x13\xca\x12\x04\xa1\xda\xf7\x9cp\xb8\xd3\xc9\xeaF\x1b\xaa̳\xc2\x11w\x1d\b\x13\x91\b\xec.>\x89;\x9f\xd2w\xa7[\xdd\xf8KEk\xc0\v\xa2\x99\b\xd79\xbb\xf2\x00\xc7\x1f\xd1l\x91\xc0\xeb\x17\xa5\x8aW썇\x16\xba\x13zݨ¾ֵ\x1fNv:\xbf\x1e\xc18ک\x8c\xb7m\xd6M\x82\xa3\xf8'\x16\x8b|c\xa9gf\xa7\xf2\xe7?|\a\xf2>ɩ\x89cd\xcc\xc7A\xf7e\xd8Y\xe9^\xaey\xcb\xc1\x9a^\x1a\xa0\xeb>\xcdr\x93\xf7g\x8c\x1b\x9d3h\x14..?O\xd4d\x7f\xc6pыŊ\xce;\xe5G\x8a\xd7\x1e\x9f\xb4j\xff\uefcd\x04\x8b<\xd8s\x87\x8bZѢ0\xf0W\x8d\x17E\xb5R\xefG\x94\xd3yKZ\xf8\x9e\xfc/\xff\x1b\x00\x00\xff\xff\xe0\x03G\x8e\x8e\x81\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xccYK\x93Z\xbb\x11\xde\xf3+\xba\xee]xc\xc0\xceM\xa5nؤ0\x93T\xb92\xceL\x99\xc9dk!5\xa0\x8b\x8et\xa2\a\x98<\xfe{\xaa\xf5\x80\xc3y\f\x8c\x93r\xae63\xe8\xd1\xeaw\x7f\xad3\x1e\x8fG\xac\x96\xcfh\x9d4z\x06\xac\x96\xf8գ\xa6_n\xb2\xfb\xd9M\xa4\x99\xeeߏvR\x8b\x19,\x82\xf3\xa6\xfa\x8c\xce\x04\xcb\xf1\x0e\xd7RK/\x8d\x1eU\xe8\x99`\x9e\xcdF\x00Lk\xe3\x19M;\xfa\t\xc0\x8d\xf6\xd6(\x85v\xbcA=م\x15\xae\x82T\x02m$^\xae\u07bf\x9b\xbc\xff\xed\xe4\xdd\b@\xb3\ng\xb0b|\x17j\xe7\x8de\x1bT\x86'\x92\x93=*\xb4f\"\xcd\xc8\xd5\xc8醍5\xa1\x9e\xc1y!Qȷ'\xce?Db\xcbD\xec>\x13\x8b\xebJ:\xff\xe7\xe1=\xf7\xd2\xf9\xb8\xafV\xc125\xc4V\xdc\xe2\xb6\xc6\xfa\xbf\x9c\xaf\x1e\xc3ʩ\xb4\"\xf5&(f\a\x8e\x8f\x00\x1c75\xce \x9e\xae\x19G1\x02Ȫ\x89\xd4\xc6\xc0\x84\x88\xcaf\xea\xd1J\xed\xd1.\x8c\n\x95>\xdd%\xd0q+k\x1f\x95\x99d\x81,\f\x14i\xc0y\xe6\x83\x03\x17\xf8\x16\x98\x83\xf9\x9eI\xc5V\n\xa7\x7fլ\xfc\x1f\xe9\x01\xfc\xe2\x8c~d~;\x83I:5\xa9\xb7̕\xd5d\xa3\xc7ƌ?\x92\x00\xce[\xa97},\xdd3矙\x92\"r\xf2$+\x04\xe9\xc0o\x11\x14s\x1eQ\x89:\xea\xe7Tu\xee\xba`\x9bX\x81\xe7\x16\x95\xc4?\xcdd\xee\x1bd\x8b\x7fO\xb8\xc5\x13I\xe7YU_Нop\x88\u0605*\xeep͂\xf2MQ\xc9J\xaa闗b\xd5\xc8'\"\x9d\xba\xb8\xf1\xeeb.ݺ2F!KTҮ\xfd\xfb\xe4\x85|\x8b\x15\x9b\xe5ͦF=\x7f\xfc\xf8\xfc\xd3\xf2b\x1a\xfa\x1c\xa9\x15\x14d8ְ\xcd\x16-\xc2s\x8c\xbfd7\x97E;\xd1\x040\xab_\x90\xfb\xb3\x11kkj\xb4^\x96`I\xa3\x91\x8b\x1a\xb3-\x9e\xfe5\xbeX\x03 1\xd2)\x10\x94\x940\xf9U\x8e\x1f\x14Yr0k\xf0[\xe9\xc0bmѡNi\x8a\xa6\x99\xce\fNZ\xa4\x97h\x89\f\xc5vP\x82r\xd9\x1e\xad\a\x8b\xdcl\xb4\xfclj\xb6\x03o\xb23{t\x1eb\x84j\xa6\xc8Y\x03\xbe\x05\xa6E\x8brŎ`\x91\ue120\x1b\xf4\xe2\x01\xd7\xe6\xe3\x13E\x83\xd4k3\x83\xad\xf7\xb5\x9bM\xa7\x1b\xe9K\x86榪\x82\x96\xfe8\x8d\xc9V\xae\x827\xd6M\x05\xeeQM\x9d܌\x99\xe5[\xe9\x91\xfb`q\xcaj9\x8e\x82\xe8\x94R+\xf1\xa3\xcd9\xdd]\\\xdb\t\xe94bJ}\x85y(\xbd&\x97I\xa4\x92\x88g+\xd0\x14\xa9\xee\xf3\x1f\x97OP8I\x96JF9o\xed\xe8\xa5؇\xb4)\xf5\x1am:\xb7\xb6\xa6\x8a4Q\x8b\xdaH\xed\xe3\x0f\xae$j\x0f.\xac*\xe9\xc9\r\xfe\x1e\xd0y2]\x9b\xec\"V1X!\x84:&\x89\xf6\x86\x8f\x1a\x16\xacB\xb5`\x0e\xbf\xb3\xad\xc8*nLF\xb8\xc9Z\xcd\xda\xdcޜ\xd4\xdbX(5u\xc0\xb4\xbd\xd9`Y#\xbf\x88;\x81NZ\x8a\f\xcf<\xc6\xe8j)(\xa7\x8a\xe1\xa2\\F\x7f\x92\xa0\xc18G\xe7>\x19\x81\xed\x95\x16\xcb\xf3\xd3\xc6\v\x1ek\xb4\x95t\xb1\xbc\xc2\xda\xd8v\xe5a\xa7L\xde\x1c%\xe3\xb5\r\x0e\x80:T]F\xc6\xf0\x19\x99x\xd0\xea8\xb0\xf47+}\xf7\xa2\x01C\xd2H,.\x8f\x9a?\xa2\x95F\\\x11\xfeCk\xfbI\x05[s\x80u\xf4\x7f\xedՑr\x97;j\xde\xcd\xdae\xcc\x1f?\x96\f\x9eb+\af\xd6\xd5\x04\xe69\xa8\xcd\x1aށ\x90\x8e\x80\x84\x8bD\xbb\xca\xd2AE\xa01\x03oë\xc4\xe7F\xaf\xe5\xa6+t\x13\x1b\ry\xcc\x15\xd2-\xcd-\xe2M\x94\xb5\xc8;jk\xf6R\xa0\x1dS|ȵ䙓`S\x05YKT\xa2\x93\x9b\x06\xa3,\x8abQPP3uņ\x8b\xd3ƈ\xa4\x99\xd4Ƀ\xcf\x04b\xae\xb1U.\xcdڣ\x16خ6\x91\x1b\x13\x13\x9aC\x01\a\xe9\xb7)S\xaa\xbe\xb8\x83\x17c\x8f\xc6\x0e\x8f}\xd3-ޟ\xb6H;S\xe1Ep\xc8-\xfa\xe8m\xa8\xc8}ȕ&\x00\x9f\x82\x8b\xb9\xb6\x9d'ʈ\x80\xaf\x9c\xdeᱫh\xb8f\xdc\f\x85\x06X\x8e j\x06?\xfcp]\xa4Nu+\x83\xa0{\x11\xd4\xe2\x1a-\xea\x0e\x9a(\xe3)\xd6(r\x1a\xf20\\\xaf\x91{\xb9Gu\x8c5\x89\x92\xe7[X\x05\x0f\"`\xb4\x1a\xe3\xbb\x03\xb3\xc2\x017Uͼ\\I%\xfd\x11\xa4\x1b\xa0ϔ2\a\x14\xd9\xe2X\xd5\xfe8\x81\x8f\xday\xa69\xba\x13\x0e\"\x8d%W`:\xed\xcaQ\x1c\x01\x1d\xb3}90\x91\xaf\x8c\xf3\xc0ђ;\xaa#\x1c\xacћAa\x1f\xee\x1ef0\x17\x02\x8cߢ%\a\\\aUb\xa6\x01\xf9\xdeFd\xf1\x16\x82\x14\x7f\x18\xa0\xd5SZ\xa9\x9f\xb4\x1a=\xc6\xea*\fwTX9\xd6\xdeM\xcd\x1e\xed^\xe2az0v'\xf5fL\u008es\"\x9b\xc6.q\xfac\xfc\xf3\"\xefw\xd6\xd4\xf0\xa5Ѹβ\xcb|!\xec\xab[\x1d.\b\x83N\xbf\xf1\xa0\x11\x05H\xdf\x04\x01۰\x9apS5\x98\x1e;\xb9q\xd3\x06\xed\xa9t.\xa0\x9b\xfe\xf4\xf3\xef\x7f\xf7M\x8en\xea\x94\no\x88\xcfeLgG\x92\"\x9a\x86|w\x99\xc2\xccX \x8cD\xd1[\xe5\xf0Lţ/\xb3\xf4\xb5\x1e\xcdQ\xbc\xba\xafD\xee\xb0[\x1d_ț\x00_\xc7\r\xedU\xac\x1e\xa7\xdd̛J\xf2Q[\xda\x14\xda/\xa7\xd8ҏI-$'\xfc~\x99\x1aK\x9f*.ڶ\x1e5\xb4\x1b\xb9\xa1\x82Я\xa6$n\x86CW8~h\xee=w\xf7\xa9:e\x88\xe3\xd0\x13\xb4v\xa0\x91 \x10\xb3]=ǚ\xc0\x8d֔\x8c\xbd\x01v\xaato\\\xbbĿ\xb2@\xac\x02\xdfa\x8f\xe2;\xa2|\x88\x1b\x8b\x8e\xd31\xe2%8\x8c\xb5\xf7\x1a\x1bp=\"8[\xa0\xbd\x85\x97Ŝ6\x9eP\x12\x83\xc5\x1cVA\v\x85\x85\xa3\x18\xef{\xb4r}쿋\xc6\xd3\xfd\xb2h5\x02\xcc\xdc\x1a\x16\xdd\xf6ːJ\xf8\fV\xc7\x1eHx\x83\x90\xb5ŵ\xfcz\x83\x90\x8fqcQx\xcd\xfc\x16\xa4vR \xb0\x1e\xf5'\xac> \xe8\t\xfe=\xe4\x9c\xf3\r\xe6y)7$v^\x93\x1e\x8a\x8e\xaf\xc4\xcfc\xdev\xd2B\xf9\x9d\v\xf8e+0\x14ǽ\x12\xedO\xefN\x7fJ\x00\x9b\xf7 \xa5\vf\x9e\xbb'^\x00\xea\xe5\xf5\xab/\x98\t\x16\x1ak\xd1\xd5F\vj\xabo\x83\xe9g\x96\xffw`\xbd߬\xe3\xcb,\xd7Z+V\xb8\xa9S\x8d/}\xaf\xeeU\xd3\xfbg\xb3\x134+\x87v\xdfhW[2~\x97.\xb5\x17U6ZW\xe9\b\xa2\x05\x1d\xc1{DN\x93Ѩ\xe7\xc8\x1d\xd6\x16\xa9\x84\x89\x19\tg\xe3Im\x0et\xbaA.AO\xa3S\xc1\xa7\xfe\x9di\x91_Nh\xa9\x87\xf2A*E \xc0beH[\xd4zXB\xac,\xe2\xc9\xfdo&\xef\xfe\x7fm\xb1b\xceS\x97\x8b\xe23\xeee\xf7\xf9\xf06}\xdfw\xa8\x94\xf4p\n\x1a\xfa\U00065f28Lm\xde\xf6\x05\xd6R\x11.m\xe4\x8e\x1b\xe0A\xcf\xe3\xf7\x87\xe5\xfd\x1b\x17\xf1$j\xef\xe0@\x16t\x91%j\xecL~\xc5\n\xceS\x15\xb9\xee\x00\xcd.C\x1bPFo\b\x80\xa7'-\x82xɟ\x8c\x05\x81\x9e\xaa\x95\xde\x00\xdf2\xbd\xa1\xd8\xe8K\xfa\x91\xe3\xcc~\x93Qr\x9fA\x0f\x91z\xc0=n\xb2\xe8\x93\xec\xeb\xdb^c\xcd\xe1o\r'\xfe\xb3i\xcfO\xda-\xc5\x0f%\xdbb\x8a\xf6b)\xe6\xa4\xe8\xb1?\x7f\x7f8\x8fo\x7f\x04\xe9~\xdc\xf8V\xf5\xfcW\x9fc:\x9fa~\x15ʩ\b\xe9^\x85ϟҮ\xf4(\x9d\x8f\x00[\x99\xe0{\xaa\x7f\xc3\xe1{\x83:~qz\r\x8f\xf1;\xda5\x80B{\x8aEx\xb06>\\\x97\a\u0558*\xfa\xea\xd2\xed)x\xde\xfa\xdc\xd7\\\xeb~\f\xbcA\xae\xde:ݙL\xb5\xb6a\u05ec\xe4\xe6LX\x9d>G\xcc\xe0\x9f\xff\x1e\xfd'\x00\x00\xff\xff\xa1\a\xb8\x04\xa5\x1e\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xbcVMs\xdb6\x10\xbd\xebW\xecL\xaf%\x15O{\xe8\xf0\xd689x\xdaf4v&w\bX\x89\x88A\x00\xdd]\xc8u?\xfe{\a\x00)K\x14\xe5$\x97\xf0&`\xb1\xfb\xf0\xde\ue0da\xa6Y\xa9h?!\xb1\r\xbe\x03\x15-\xfe%\xe8\xf3/n\x1f\x7f\xe1ֆ\xf5\xe1f\xf5h\xbd\xe9\xe06\xb1\x84\xe1\x1e9$\xd2\xf8\x0ew\xd6[\xb1\xc1\xaf\x06\x14e\x94\xa8n\x05\xa0\xbc\x0f\xa2\xf22\xe7\x9f\x00:x\xa1\xe0\x1cR\xb3G\xdf>\xa6-n\x93u\x06\xa9$\x9fJ\x1f\u07b47?\xb7oV\x00^\r\u0601A\x87\x82[\xa5\x1fS$\xfc3!\v\xb7\atH\xa1\xb5a\xc5\x11uο\xa7\x90b\a/\x1b\xf5\xfcX\xbb\xe2~WR\xbd-\xa9\xeek\xaa\xb2\xeb,\xcbo\xd7\"~\xb7cTt\x89\x94[\x06T\x02\xd8\xfa}r\x8a\x16CV\x00\xacC\xc4\x0e>dXQi4+\x80\xf1\xda\x05f\x03ʘB\xa4r\x1b\xb2^\x90n\x83K\xc3D`\x03\x06Y\x93\x8dR\x88\xfa\xd8c\xb9\"\x84\x1dH\x8fPˁ\x04\xd8\xe2\x88\xc0\x94s\x00\x9f9\xf8\x8d\x92\xbe\x836\xf3\xd5\xd6\xd0\fd\f\xa8T\xbf\x9d/\xcbs\x06\xccB\xd6\xef\xafA`Q\x92x\x02Q\xea\xda\xe0\x81N\xf8=\aP\xe2\xdb\xd8+>\xaf\xfeP6\xaeU\xae1\x87\x9bʴ\xeeqP\xdd\x18\x1b\"\xfa_7w\x9f~z8[\x86s\xac\v҂eP\x13\xd2L\\e\r\x82G\b\x04C\xa0\x89Un\x8fI#\x85\x88$vj\xad\xfa\x9d\f\xcf\xc9\xea\f¿\xcd\xd9\x1e@F]O\x81\xc9S\x84\\H\x1c\x9b\x02\xcdx\xd1J\xaee \x8c\x84\x8c\xbe\xceU^V\x1e\xc2\xf63jig\xa9\x1f\x90r\x1a\xe0>$g\xf2\xf0\x1d\x90\x04\bu\xd8{\xfb\xf717\xe7{\xe7\xa2NI\xa1$\xb7\x9dW\x0e\x0e\xca%\xfc\x11\x947\xb3̃z\x06\xc2\\\x13\x92?\xc9W\x0e\xf0\x1c\xc7\x1f\x99D\xebw\xa1\x83^$r\xb7^\xef\xadL\x96\xa2\xc30$o\xe5y]\xdc\xc1n\x93\x04\xe2\xb5\xc1\x03\xba5\xdb}\xa3H\xf7VPK\"\\\xabh\x9br\x11_l\xa5\x1d\xcc\x0f4\x9a\x10\x9f\x95\xbd\xe8\x9e\xfa\x15\x17\xf8\x06y\xb2'\xd4\x1e\xa9\xa9\xea\x15_T\xc8K\x99\xba\xfb\xf7\x0f\x1faBR\x95\xaa\xa2\xbc\x84^\xf02\xe9\x93ٴ~\x87T\xcf\xed(\f%'z\x13\x83\xf5R~hg\xd1\vp\xda\x0eVx\xea\xd8,\xdd<\xedm\xb1\xdd\xec\x00)\x1a%h\xe6\x01w\x1enՀ\xeeV1~g\xad\xb2*\xdcd\x11\xbeJ\xad\xd3\xc7d\x1e\\\xe9=٘\x9e\x81+\xd2.\f\xffCD\x9d\xc5\xcd\xfc\xe6\xd3vgu\x1d\xab] x\xea\xad\xee\xa7\xe1\x9f\xd1t4\x8as\xfe\x96\x8d!\x7f/v;߹zy(\"[\xc2Y\xc36p\xe1ݯ\xf3RL\xf5\x1b\x99\xa9\x8e>r\xa3\x13Qi\xbe\xa3ϫ\xa5C_\xcb\x05\x12\x05\xbaX\x9d\x81z_\x82\xca?\x06e=\x83\xf2\xcf\xe3A\x90^\t\xfe\xa5\x13ǂ\xf5#\x96mɚ\x13\x06 Y\x8f~\x9a\x16\xea\x12\x06\x98m\xf4Y$c\x7f3\r\xcc+\v\n\x8b\xdd!\xa6ӣ\xf9C\x13\xfb\xf9\x03\n\xf8=a\xbe\xb7\xed\xc5\xf5\xb55\xc4sq\xd1\xe9\xc9\xea\xd8\xe3\xc6\b\x17:\xfb\x86\xef\x1da\xff\xa7C\x9f\xafዮ\xe3m\xbe\xbb\xfa.8F}\xf6\xdcG\xe4\x1b\x04\xcfg:8\\\x15\xe5\nL\x83\xe7U\x89\xae7w\xef\xa1\xf0\x8c\xfb;\x8atg\x1a\xfbF\x8a{\xc7Y\xbf320~\xe9\r\xf1vO\xf3+d\xeciޒ\xefN\x84ϱBo\x900\xec\x95\xfaEQ7\x1b\x11\xe0\xa5S\xb2K\x1b\xd3@\xf0%\x10\x82\x95jNR\xaf\x80\xcf:\xa2<\xce\fe\x91\x86u\xc6\xcc\xe0O\xccg\xd4\xef\xdc\x01ŠHW)(\t\x8a\xe1\x1d\x1a\x9a\xfcG\xaae\xf4>]Q\xd9\xca/\x93\xe9\x86kEtT\x9e\xbf\x1e\xef\xdfP\xd2۽gzq\ve2\x1a\xe7\xb1\b\xaa\xe5\x17\x14\xaf\xb1\x96&\x8d;%#\x7f\xc7/\xbcc\xa2f+\x8aߜ\xca\x03\xf8\x06\xc4O;\xc7,\xf8h\xf2=?}æ\x80\x18\xf8\xb9\x05R\x98\x19\x8c\x15B\x8d\x1a\tk\xa8^\xf3\xcd\xf5\x1a\b\xfbS܍\xf5\xbd\xa0\x15\xf0\xfd_\x90\x9ai#\x13\xb5\x16\x95\xc6\x15\x90\x8f\xe7\xbal6q\u05c903\x86G9?\xb0\xcf\\c\xec\x86\xf1bg\xc0\xd9\xfb\xa5\x80/\xf82c}\xf0Vb\bx:Fg3\x99\x1d\x82\x13c\xe0GZ}\xc0\xd2\xf0\x97a\xb0\xfc\x1f\x00\x00\xff\xff\xc02\xee\xedJ\x0e\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4ZKs\x1b7\x12\xbe\xebWt)\x87$U\x1e2\xf6\xa6\xb6\xb6x\xb3\xe5͖v\x13Yeʾ\xa4r\x00\a=3\x88f\x00\x04\xc0\x90\xe2f\xf3߷\x1a\x0fr^$E:\xb1\xe7b\x13\x8f\xee\x0f\xfdFCY\x96]1->\xa2\xb1B\xc9\x050-\xf0ɡ\xa4_v\xf6\xf8\x0f;\x13j\xbe~y\xf5($_\xc0Mk\x9djޣU\xad\xc9\xf1-\x16B\n'\x94\xbcj\xd01\xce\x1c[\\\x010)\x95c4l\xe9'@\xae\xa43\xaa\xae\xd1d%\xca\xd9c\xbb\xc2U+j\x8e\xc6\x13O\xac\xd7\xdf\xcd^~?\xfb\xee\n@\xb2\x06\x17\xa0\x15_\xab\xbamp\xc5\xf2\xc7V\xdb\xd9\x1ak4j&ԕ\u0558\x13\xedҨV/`?\x11\xf6F\xbe\x01\xf3\xbd\xe2\x1f=\x997\x9e\x8c\x9f\xa9\x85u\xff\x99\x9a\xfdQX\xe7W\xe8\xba5\xac\x1e\x83\xf0\x93VȲ\xad\x99\x19M_\x01\xd8\\i\\\xc0\x1d\xc1\xd0,G~\x05\x10\x8f\xe8ae\xc08\xf7Bc\xf5\xbd\x11ҡ\xb9!\nIX\x19p\xb4\xb9\x11\xday\xa1\xdc+\x0e\x01 \x04\x84`\x1ds\xad\x05\xdb\xe6\x150\vw\xb8\x99\xdf\xca{\xa3J\x836\xc0\x03\xf8\xd5*y\xcf\\\xb5\x80YX>\xd3\x15\xb3\x18g\x83x\x97~\"\x0e\xb9-\x81\xb6\xce\bYN\xc1x\x10\r¦B\t\xae\x12\x16\xc2ia\xc3,\xc11Οr\x9a\xb1\x9f\xa7\xedֱF\xf7\x10\xdc\x18d\xfb\xad\x01\x02g\x0e\xa7\x00\xec\xe4\t\xaa\x00W!I\xde\x1b\x16\x13R\xc8\xd2\x0f\x05M\x80S\xb0B\x0f\x119\xb4z\x02\x99\xc6|\xa6\x15\x9f\xc9D\xb4\a\xebn0zJ6\xb4\xfe\xcfF\xd5\x03t\xaf\xf8\x05P\xce\xe2\x1b\x16\xf7\xb8~\xec\x0e\x9d\xb4\x8f\n\xfd\x9aļյb\x1c\r\xb1\xaf\x98\xe45\x92f\x198ä-\xd0\x1c\x80\x91\xb6=lu\x1ḟD\xaf3s\x8e0\xa2\xef,\x9d2\xacD\xf8Q\xe5>@\x91I\x1b\xecٴ\xadT[sX%.\x00\xd6)3i\xe0\x848\xec\x8at\x13ف\x9f\xf5y\x1eFߡ\x9d\xe2\xe9,'\x1f\x11JN{\xd0\xeb\x12\xa7\xbd'L\xaf_\x86p\x95WذE\\\xa94\xca\xd7\xf7\xb7\x1f\xff\xb6\xec\r\x03h\xa34\x1a'R\xf8\f_'9tF\xa1/\xea\xffe\xbd9\x00b\x10v\x01\xa7,\x816\xd8d\x18C\x1e1\x05\xf5\b\v\x06\xb5A\x8b2\xe4\r\x1af\x12\xd4\xeaW\xcc\xddl@z\x89\x86\xc8$E\xe5J\xae\xd180\x98\xabR\x8a\xff\xeeh[\xb2=bZ3\x87ց\x0f\xb5\x92հfu\x8b/\x80I>\xa0ܰ-\x18$\x9e\xd0\xca\x0e=\xbf\xc1\x0eq\xfc\xa4\f\x82\x90\x85Z@圶\x8b\xf9\xbc\x14.\xa5\xcc\\5M+\x85\xdb\xce}\xf6\x13\xab\xd6)c\xe7\x1c\xd7Xϭ(3f\xf2J8\xcc]kpδ\xc8\xfcA\xa4O\x9b\xb3\x86\x7feb\x92\xb5=\xb6#\xab\t\x9f\xcftg\xa8\x87r\x1f\b\v,\x92\nG\xdck!Ů\xf7\xff\\>@B\x124\x15\x94\xb2_:\x92K\xd2\x0fISȂb\x00\xed+\x8cj\xa98\x9e8ܝ\xe28\x05\x9b\xb6\x82\xabX\xb0n*\xde(\xb8\xb5R\x8e\xb9Ч\xe4Y\xc0\xb4\xe2'pE\x8e\f\f\x16hP昢\xe0\xb1\xcad\x02Y\xb7f\x18c\x8a\xfc'\xe5C_!\xb0\xe6>\x8b\x9e\xe6=i\xa2\xf4\xdd\x16\x01\x84\x8f\x8dN\x01\x03-0Ԟ\xbb\xbc\x04BZ\x87\x8c\xc7A\n\a\x06\xe3܋\x10\xf3\x0e\x82\xa4o\x9f\xbfH'\xc0(\x06\v\x0e\xff^\xbe\xbb\x9b\xffK\x85s\x00\xcbs\xb4\xbe\xc8vؠt/vu?G+\fr\xaa\xe2q\xd60)\n\xb4n\x16\xa9\xa1\xb1?\xbf\xfaeZ~\x00?(\x03\xf8\xc4\x1a]\xe3\v\x10A滰\x9e\xccF\xd8p\xf0\x1dE\xd8\bWy\xa0Z\xf1x\xc0\x8d?\x82c\x8f\b*\x1e\xa1E\xa8\xc5\xe3\x84\xff\x84\xef\xdaWM{\x98\xbf\x93\xf7\xfcq\r\xdf\x047\xbe\xa6\x9f\xd7\x01\xc6.\x81w\x1dl\x0f'x\x99\x11e\x89\xfb\xf2ld,\x94p(T\x7f\v\xca\xd0Y\xa5\xea\x90\xf0\x84IO!R\"\x1f\xc1\xfb\xf9\xd5/\xd7\xf0M_\x06\aX\t\xc9\xf1\t^\x81\x88w$\xad\xf8\xb73x\xf0v\xb0\x95\x8e=\x11\xa7\xbcR\x16%(YoCi\xbcF\xb0\x8a\xeeVX\xd7Y(\x958l\xd8\x16Tq\x80OR\x11\x99&\x03͌;Z.\xa5\xef\xe1\xdd\xdbw\x8b\x80\x8cL\xa7\xf4Q\x972j!\xa8(b\x92\xc7<\xed\xed\x8e@\xb7\xc1$\x9c\x82\xbcb\xb2\xc4p2\x84\xa2\xa5)\xb8|\xb8}\xfb%=\xaa\x15\x97D\x92\x03\xb7\x86\xf0=e{TY\xc3t\x16V3\xa7\x1a\x91\x0fVS\xd5|\xcbII\x85@s\xa2\xcc|\xdf[\x9c\n\xe1\x89\xfa{\xb7\xe6\xac:ױr\xa2\xb0\xec\xf6M\x8f\x95\x9fG\xe5u\xda\x14\x1eXi\x81\x19\x04\x06\r\xd3d\x11\x8f\xb8\xcdBe\xa3\x99\xa0\xb2\x84*\x8f]\x9f\b\x98\xd65\xd5\x0e\xa1Z\x99\xa0\x18\xeb\xec(\x1ef\xfd\xf9\x0e\tdR\x95\xa9/\xb6DGw\xf3/'\x9c\x0f\x03 \x7f\xae\xa0v]\xc3\\\xc9B\x94\xad\xf1w\xbe\xb1\xa4d[\xd7lU\xe3\x02\x9ciDŽ\x9e!\xc8\aZr\xfc\xfc\x1f:K\x93\x85\x9fhqN\x9f\xaa\xd7\xf8\x1c\x1f\x06eی\xa1d\xf0\xa8\xb4`\x13\xe3\x06\xad\x1by/M\\_\x9f\xe3c\xc1(/\xb9\xc3\xc7爉\xdbo4\xf4xQH7\xe0n\azR\xe9g\xc4\x06\x83\xbf\xb5t\xed\xe9\xe3Φ\x1b\x14\x835t7\x1f\fi\xc5\a#\xfd08\x98\xecuɻH\xc7]\x1b\xff\xf8qF\xdf&<\xeaD\x99\x86\xe4\xe8\xd2S\x0f\x95\xf7\x97vnrE\u05fc^\a\xf9\x12\x9dߌ\xc9\xf8\x8e\xab\xe1\xd11DCq\xa0\xf3.\x14\x19O\xb5^\xba\xe4\xc2N_\xa3\x105\xe4\xfe\xbaF\xb7ɂ\x89\x1a9\xa4ǿ3\xa9\xac\xb0\xa0\x1c\x1d\x9c45<\"\xbc\xc3\x17\xa5\x87\n\xc1\xfa\xfe\xe5\xd7vG\xb3\xb5\xc8}\xfblB\b\xe3\x8c](\xd30\x17Z\xf1\x19\x91\xb8,zM\xfal\x83ֲ\xf2\x94\xd3\xfe\x14V\x85>P\xdc\x02l\xa5Z\xb7k\x04\xf52\xd2\xd76\x1a\xday\xbd\xa8\xc9\x16K\xdfƙ\xab\x92I\x17m]\xfb=\xdd\xe8\xb0\x7f\x18\xf6\xa8V8]\xd7\x1diD\x1d\x03X1{JT\xf7\xb4f\xca\xebv!\xed\xa8\xdb\xc1\x91\xf0}\x87\x9b\x89\xd1\xd1Kmw\xf2&\xb9\xcc\xc4\xdc\x0f\xde\x1b\xce:\x7fdt\x89\xbb'\x90P\xa9:y\xb8r\xac\x06\xd96+4$\x9c\xd5֡\x1d\x04\xfe\xd0D\xd8Ir\xea\xf6\xb7ߟ\x94\x1a(\xc5NIΤo\xf1\xdbP&pauͶ\xbb\xb3\xf8\x9a\x9b\xfck\xba\x15\xbc7\xf2\xe4\xe9\x1a\x0f\xd5\x10\xc7[\x98\x1e\xd3[%\x0f\xdcR\x93\x93\v\xe9\xfe\xfe\xfd\x91\xa2]H\x87\xe5 \x8d\xc4y\x12\xe7\x1b\xe2\xf2\xd7p8R\x03Yɴ\xad\x94\xbb}{\xc24\x96\xbb\x85\xc9E\xf6\xf5\xbc\x0f\x88\xfe\x95!.\x8a\xa60\x01u\x1fp\xce\xf2\xdf\xfe\x1f\x0e\\b\xc5\xcb\x1e\x85\x13\xf9*\xfe\x1d\xc3TVX\xa2f\x86b\x82\x7fú\x19\xbeȾ\x00+|\xa3\x9d\xaa\xddP\xfe\x86\x86\xd9\xd4uNI_\xc0)3~P\x84\x93\t\xa8\x7f\xa0ϙ{&\xcdi4\xe8\x91\xf3\x0e\xed\xf8|\xd3\x1diW\xbb\x97\xcd\x05\xfc\xfe\xc7\xd5\xff\x03\x00\x00\xff\xff\x8b\xcb\x17\x16\x81$\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y_s\xdb6\x12\x7f\xf7\xa7\xd8q\x1f\xda΄R\x93\xeb\xdc\xdc\xe8-q\xae7\xbek\x1dO\xe4\xe4\xa5Ӈ\x15\xb1\"Q\x93\x00\n\x80\x92u\xbd~\xf7\x9b\x05H\x8a\xff$YJ\x9b\xe0\xc5\x16\xb0X\xfc\xb0\xff\xb1L\x92\xe4\n\x8d\xfcH\xd6I\xad\x16\x80Fғ'ſ\xdc\xec\xf1\x1fn&\xf5|\xf3\xf2\xeaQ*\xb1\x80\x9b\xcay]\xbe'\xa7+\x9b\xd2[ZK%\xbd\xd4\xea\xaa$\x8f\x02=.\xae\x00P)푧\x1d\xff\x04H\xb5\xf2V\x17\x05\xd9$#5{\xacV\xb4\xaad!\xc8\x06\xe6\xcdћ\xeff/\xbf\x9f}w\x05\xa0\xb0\xa4\x05\x18-6\xba\xa8J\xb2伶\xe4f\x1b*\xc8\xea\x99\xd4W\xceP\xca\xcc3\xab+\xb3\x80\xfdB\xdc\\\x1f\x1cA\xdfk\xf11\xf0y\x1f\xf9\x84\xa5B:\xff\x9f\xc9\xe5\x1f\xa5\xf3\x81\xc4\x14\x95\xc5b\x02GXuReU\x81v\xbc~\x05\xe0Rmh\x01w\f\xc5`J\xe2\n\xa0\xbeg\x80\x96\x00\n\x11$\x87Ž\x95ʓ\xbda\x16\x8d\xc4\x12\x10\xe4R+\x8d\x0f\x92i\xf9\x80^\x83ω\x8f\fRE\xa9\xa4\xca\xc2T\x84\x00^Ê\xa0F\"\x023\x80_\x9dV\xf7\xe8\xf3\x05\xccXp3\xa3\xc5L5?\x81>N\xc4\xe5\xcd\xcb\x18\xcaҜJ\\Ԕڐz}\x7f\xfb\xf1o\xcb\xde4\x80\xb1ڐ\xf5\xb2\x89\xaeqt\x92Gg\x16\xfa\x92\xfd_\xd2[\x03\xe0\x03\xe2.\x10\x9cE\xc8E'\x89s$jL\xd1y\xa4\x03Kƒ#\x15\xf3\nO\xa3\x02\xbd\xfa\x95R?\x1b\xb0^\x92e6\xe0r]\x15!\"m\xc8z\xb0\x94\xeaL\xc9\xff\xb6\xbc\x1d\xfb\"\x1fZ\xa0'烬\xad\xc2\x026XT\xf4\x02P\x89\x01\xe7\x12w`\x89τJu\xf8\x85\rn\x88\xe3'\xb6\x1f\xa9\xd6z\x01\xb9\xf7\xc6-\xe6\xf3L\xfa&\xa5\xa6\xba,+%\xfdn\x1e\xb2\xa3\\U^[7\x17\xb4\xa1b\xeed\x96\xa0Ms\xe9)\xf5\x95\xa59\x1a\x99\x84\x8b\xa8\x90Vg\xa5\xf8\xca\xd6I\xd8\xf5\x8e\x1dyd\x1c!\x11\x9e\xa1\x1eΌ \x1d`\xcd*^q\xaf\x85&\xbe\xbf\xff\xe7\xf2\x01\x1a$QSQ){ґ\\\x1a\xfd\xb04\xa5Zs\x84\xe6}k\xab\xcb\xc0\x93\x940Z*\x1f~\xa4\x85$\xe5\xc1U\xabRz6\x83\xdf*r\x9eU7d{\x13\xca\x0e\x0e\xae\x95a3\x17C\x82[\x057XRq\x83\x8e>\xb3\xaeX+.a%Vf\xe9\xb5Ō~ԑ\xe7\x90\xe8\x94\xd9\xf1x3ŨA\xac:\t5\x9e\b.RBQ\x93N\xb0\xdc\xe6d\xa9\xbbǒ\xd1Nzmw\xcc8\xa6\xe2\xa1I\x1c\xd4N\x90\x83\x16'\xeeƹ$8\x90\xa55YR)5\xe1\xe6X\x994\x01\xbeS-\x8c!\x1e\xd6\a\x1c\t͓\x80_\xdf\xdf6᷑p\r}\x14aO\x8a\x87\xc7ZR!B\xb6:}\xf6\xa4!\xf0\xb8]G\x10!\x06y\r\bFR,\x83\xdb\xf8\x0fR9O(\xeaIv;K\xf5ڋ\x18[\x0e\x82\xe4\xb1\xcf\x13\xac\x12@\x8euR\xc0\xbf\x97\xef\xee\xe6\xff\xd2\xf1\x1e\x80iJ΅r\x80JR\xfeE[\x12\brҒຈf%*\xb9&\xe7g57\xb2\xee\xe7W\xbfL\xcb\x0f\xe0\am\x81\x9e\xb04\x05\xbd\x00\x19eކ\xcf\xc6j\xa4\x8b\x17o9\xc2V\xfa<\x005Z\xd4\x17܆+x|$\xd0\xf5\x15*\x82B>Ҵ\xf4\x01\xaeC\xa1\xb9\x87\xf9;\xbb\xd6\x1f\xd7\xf0Mt\x96k\xfey\x1da\xb4\x89\xb2\xeb}{8>G\x0f\xde\xca,\xa3}E;2\x16\x0e\xec\x1c\x12\xbf\x05m\xf9\xaeJwX\x04Ƭ\xa7\x18\x90H\x8c\xe0\xfd\xfc\xea\x97k\xf8\xa6/\x83\x03GI%\xe8\t^\x81TQ6F\x8bog\xf0\x10\xec`\xa7<>\xf1Ii\xae\x1d)Ъ\xd8\xc5\a\u0086\xc0\xe9\x92`KE\x91ĒD\xc0\x16w\xa0\xd7\a\xceiTĦ\x89`\xd0\xfa\xa3eI3\x1e\u07bd}\xb7\x88\xc8\xd8t\xb2\x10\xdb8s\xad%\x17\x1f\xa8D\x9d\x0f\x83\xdd1\xe8*\x9a\x84א\xe6\xa82\x8a7#XW\x9co.r\xceq=Ќ\xe7\xf9e\xa8\x0f\x9e\x15%\xbeXn}\xa6$B!\xfc\t\x92\xe8>\xf1.\x90\xc4c\xb5\"\xab\xc8S\x10\x86Щc9\xa4d\xbc\x9b\xeb\rٍ\xa4\xed|\xab\xed\xa3TY\xc2F\x9fD\xebr\xf3\xf0~\x9f\x7f\x15\xfe\\z\xf1\xf0\xd2\xff\xd4\xdb\xf7\x1a\x13\x9f_\x04|\xba\x9b_\"\x81\xa6n}~\x8e<(\x87e]I\ry\xb2\xd3ns\x99\xe6\xcd+\xa6\x13\xd5K\x141\xec\xa3\xda}!\xdfa9W\x96\x11풺I\x97\xa0\x12\xfc\xbf\x93\xce\xf3\xfc%\x82\xad\xe4'\x05\x97\x0f\xb7o\xbf\xa4GU\xf2\x92Hr\xa0:\x8f\xe3)٣JJ4I\xa4F\xafK\x99\x0e\xa8\xb96\xbd\x15\xac\xa4\xb5${\xa2\xca|\xdf#n\xaa\xe4\x89*\xb7\xa59\xab\xccu\n\x8d˵\xbf}{\x02Dz%l0\xecuX\x17\xb7\r\xafA\a\xec<<\xc1\xb7\xee\x0eG\xae>\xa8>u\x83L[\x99\x85Tۆ\x8f\xf0\xf4QXb\xb7\xf3\xd9\x1d%\x1a#Uv\x16֦\x91\xb8$\xcf\xcf\xe5\x89\x02\xbd\xdb\x02>V\xc6\x1f\xb5\xbb\xd3.\xf5a\x00\x04\xd0\x12 ߉5\xf4H\xbb$V\x8b\x06%\x97z\\\xcd\xd5%\xf1\x8a\x00\x8d)\xb8\x1e\x8b\x15\xe0\x94\xaf7m\xd1T\xab\xb5\xcc*\x1b\x1eacI\xa9\xaa(pU\xd0\x02\xbc\xadƌ\x8e\xb8O\xb7#{B\xe3\x1f:\xa4\x8d\xbaO\xf4\x84\xa7o\xd5\xeb\x14\x8f/C\xaa*\xc7P\x12x\xd4F\xe2\xc4<\x1b\xfb\xc8\xd1y\xe1\xfa\xfa\x1c\x93\x8a\x9etB\x06u\x03s\xe2\xc1\\;b\xfd|\xe0\x19~\xa4\x06w\x9cΎ\xe7:\xa8\xa5\xdf*~\v\xf5\x11&ӽ\x81\x01\x8d\xd1\xe2j(\xb4nl\x1b,\xee#\xd3p\xa1\xef\xf4\x83\xd5^c\xbd{\x9bq[%tm\xcfi\xac\xc4Nq-\xf7\x98V}\xd3?\xe6\x87\xc1ŭ\x95T\xf3\v\xb1\xd7佤\xb1r3f\x13\x9a\xa2VԎ\"K\n\xfd\x8a\xd8\xf9ޢkN\x9e2\x82.\xbf\xb85\xd47̎Dx\xea\xf1Kt\x8d\xb2 \x01\xed\a\xbc\t6\x0f9\x81\v-\xc1\xaf]˨r$BT\x9e\x00=N\xceM\x03^\xa0\xa7\x84Y\\\x16}&}\xae$\xe70;\xe5t?E\xaa\xd8\xf1\xa9\xb7\x00\xaet\xe5ۖO\xed}\xb5(\xbev\xb5i\x9c\xd7v\xcaѝ\x82r\xcf4Sf\xd8Ɓ\xe3v\bG\xe2\xdb\x1dm'fG\x1fD\xba\x8b7\x8d\tM\xac\xfd\x10\xac\xe3,\x01\xd4\a]b\xff\rH\xc8uј\xbc\xf6\\\aT\xe5\x8a,K'|\x9ai\xc4\xd4\x16,\xf1I\xde\ns\xea-\xd5rh\xa2fdU\xb7\x1dRT\xa1/\xedb\"\x15ҙ\x02w\xedeB\x01\xcb\x16<ݽܛQ\xe3\x9a\x1c(\x0e\xa4\xd9\xe3\r\xc1\xf6\xd3\xd3ty>\xf5!\xab?\xc6_\xa5\x06\xeb\xed7\xb7\xbf\xe6\x84#e\x82\xf3h\xfd'\x05\xc8e\x8fé\xd8\x18Λ\x8e\x8c\xc7CZ\xff\x98\xcf\x19\xcd&\xa57\x9a\f\xc8E\x87w\xdda\xef\xceT\xab\xf6\xf3\xd3\x02~\xff\xe3\xea\xff\x01\x00\x00\xff\xff\xc5p\x17\xe3F\"\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xdc=]s۸v\xef\xf9\x15\x98\xf4a\xdb\x19˹\x99އ\x8e\xdf\\\xafӸ\xf7\xae\xe3\xb1\xd3\xec3D\x1e\x89\xb8\x06\x01.\x00JѶ\xfd\xef\x1d\x1c|\x90\x94@\x12\x92-o\xb6xɘ\x02\x0e\x80\xf3}\x0e\x0e\x90\xc5b\xf1\x8e6\xec\x1b(ͤ\xb8\"\xb4a\xf0݀\xb0\x7f\xe9\xcb\xe7\x7fӗL~\xd8||\xf7\xccDyEnZmd\xfd\bZ\xb6\xaa\x80\x9fa\xc5\x043L\x8aw5\x18ZRC\xaf\xde\x11B\x85\x90\x86\xda\xcf\xda\xfeIH!\x85Q\x92sP\x8b5\x88\xcb\xe7v\t˖\xf1\x12\x14\x02\x0fSo\xfer\xf9\xf1\xaf\x97\x7fyG\x88\xa05\\\x11\x05\xdaH\x05\xfar\x03\x1c\x94\xbcd\xf2\x9dn\xa0\xb00\xd7J\xb6\xcd\x15\xe9~pc\xfc|n\xad\x8fn8~\xe1L\x9b\xbf\xf5\xbf\xfe\x9di\x83\xbf4\xbcU\x94w\x93\xe1G\xcdĺ\xe5T\xc5\xcf\xef\bхl\xe0\x8a\xdc\xdbi\x1aZ@\xf9\x8e\x10\xbft\x9cv\xe1W\xbd\xf9\xe8@\x14\x15\xd4ԭ\x87\x10ـ\xb8~\xb8\xfb\xf6\xafO\x83τ\x94\xa0\v\xc5\x1a\x83\b\xf8\x9fE\xfcN\xc2B\tӄ\x92o\xb8Q\xbb\x1aD<1\x155DA\xa3@\x830\x9a\x98\n\bm\x1a\xce\n\xc4;\x91\xab\x1e\xa40J\x93\x95\x92u\amI\x8b\xe7\xb6!F\x12J\fUk0\xe4o\xed\x12\x94\x00\x03\x9a\x14\xbc\xd5\x06\xd4e\x04\xd4(ـ2,`ٵ\x1e\xef\xf4\xbeNm\xcc6\x8b\v7\x8a\x94\x96\x89\xc0m\xc1\xe3\x13J\x8f>\"W\xc4TLw[\r\xdb#T\x10\xb9\xfc\a\x14\xe6r\x0f\xf4\x13(\v\x86\xe8J\xb6\xbc\xb4\xbc\xb7\x01e\x91Uȵ`\xbfG\xd8\xdan\xdcNʩ\x01m\b\x13\x06\x94\xa0\x9cl(o\xe1\x82PQ\xeeA\xae\xe9\x8e(\xb0s\x92V\xf4\xe0\xe1\x00\xbd\xbf\x8e_\x90xb%\xafHeL\xa3\xaf>|X3\x13$\xaa\x90u\xdd\nfv\x1fP8ز5R\xe9\x0f%l\x80\x7f\xd0l\xbd\xa0\xaa\xa8\x98\x81´\n>І-p#\x02\xa5\xea\xb2.\xff)\x12u0\xad\xd9Y\x1e\xd5F1\xb1\xee\xfd\x80\x02q\x04y\xac\xa88\xc6s\xa0\xdc\x16;*\xd8O\x16u\x8f\xb7O_\xfbLɴ'J\x8f7\xc7\xe8c\xb1\xc9\xc4\n\x94\x1b\x87\xacia\x82(\x1bɄ\xc1?\n\xce@\x18\xa2\xdbe͌e\x83\xdfZЖ\xdf\xe5>\xd8\x1b\xd4:d\t\xa4mJj\xa0\xdc\xefp'\xc8\r\xad\x81\xdfP\roL+K\x15\xbd\xb0DȢV_\x97\xeewv\xe8\xed\xfd\x104\xe2\bi\xbd\x16yj\xa0\x18H\x9a\x1d\xc6VA]\xac\xa4\x1a(\x19;d\x88\xa3\xb4\xf0\xdb洈U\x8b\xfb\xbf\xccq\x99m\xff\x1eG[~\xb3+k\x05\xfb\xad\x05T\xa6N\xfc\xe1P_\xa9\x9ej\x1f6\xcbF\xfb\xd4\x1dE\xb4m\xf0\xbd\xe0m\te\xd4\xeb\a\x1b\xcc\xd9\xc6\xed\x01\x144z\x94\t+D\xd6\xfaؽ\x88\xeeWT\xe0T\x01\x11\xd2$\xe01\xe1\xe0\x11&\x10\x03I\x9a`G\x03ubœ[&D\xb4\x9c\xd3%\x87+bT{\x88F7\x96*Ew#\xd8\n\x1e\xc0\x8b\x90\x15\x81xU\xc3Y\x81$\x8f\n\x05\xf1\xf5\xe7E\x15\xd3VQ\x86]>HΊ\xdd\f\xben\x93\x83\x82\xb4z\xd9\xf5;$K\xa8\xe8\x86I\x95\x12\x03\xa9\xb0kϞwjZZ-\xe9\x81\xec۸\xcc\r'\x91UI\xf9<\xc7\x10\x9fm\x9f\xce:\x90\x02\x1dʸ\x15Omo\xbb\x97@\xe0;\x14\xadI,\x93\x90\xb2E\xd3$\x15i\xa46\xe3t\x1fW]\xa4\xef\x1c\xa5~\x9c`\x9a\x83\x9d%Y\xdd5\xaf\x84\x03Q-\x0e\x06\nY\n\xb0ۨ-Q\xbb\xbeJ\xb6\xae\xef(RȒj(\x89\x14\xa33#\xbb\xb4\x1c\xb4\x9f\xabD\xce\xe8\xf4\xd0E\xb7\x7f\xf4x\b\xa7K\xe0D\x03\x87\xc2Hu\x88\xcc\x1c\x94\xba\x96\xa3XGP\x99ЦC\t\xe860\x01\x92XN\xdfV\xac\xa8\x9c\x87a\xd9\x13\xe1\x90R\x82\xb6\xda\x04]\xe6\xdd\xd8&\xc9\x1c\xf9\xfd$Sڣk3b\xb5\x0f/\xa5Q\xba\x96\xa1\x86\xbb\x96Dm\xa7{\x0ft\x8b\xffn\xe4\xe4\xb6\xff\x7f\"6\x18\x93\x13\x98vB\xfe\t\xba\x9f\xd9<=ʷ\x18ၾ$w+\x02ucv\x17\x84\x99\xf0uN\x12(\xe7\xbd9\xfeĴ9\x9e\xe93I\x93#\x13g\"L\x9c\xe2OH\x174\x19O\xdebd\xd3\xe4\xef\xfdQ\x17\x84\xad\"\xd2\xcb\v\xb2b܀\xda\xc3\xfeI\xaa>P\xe65\x90\x91c\xf5\b\xe6\tLQ\xdd~\xb7.\x8e\xee\x92`\x99x\xd9\x1f\xec|\xe3\x10A\f\xcd\xf3\f\\\x82\xf12SPc\x1cN\xbe\"6\xbb/\xe8T_\xdf\xff|\x18+\xef\xb7\f\xce;\xd8Ȍйv\xbd\xb7\xa3\xfe\xfa|T\x10~A\x1f(\x06U.\xe7rA(y\x86\x9ds]\xa8 \x96>4tΘ^\x01&\x7f\x90Ϟa\x87`\xd2ٜÖ\xcb\r\xae=C\xc2\xf5O\xb5\x01\x0e\xed\x9a|X\xec\xf0d? \"0\x86\xcfe\x03\u05fc($r'閩KB\v\xb8?a\x9bY\xacҟ\xa3\x9f\xfaD\x0e\xf8I;ZZ\x89\xa9\x98\xcfij@\x99\xc9%\xa8k\xdf(ge\x9c\xc8\xc9ȝ\xb8 \xf7\xd2\xd8\x7f0@\xd3\xc8(?K\xd0\xf7\xd2\xe0\x97\xb3`\xd4-\xfc\x9c\xf8t3\xa0\xa0\t\xa7\xe5-\xc2\xfa9?g\xd3,\xb7E\xdc3M\ue10dW\x1cJ2\xa7\xc2\xf4\xae\x9b\xceMT\xb7\x1a\xd3uB\x8a\x05\xda\xcc\xe4L\x1e\xdfR\r\xd0\xfd\xe2I\xfd\x84_\xad\xb1p\xbf\xb8$3\xa7\x05\x94!\xb2\xc4\xec'5\xb0fE\xe6|5\xa85\x90ƪ\xf0<\x8e\xc8T\xac~7DZO\x9e\xf5\xee\xb7\xef\x8b\xe7\x98/XX\x93\xb3\xf0\x10\x8c\xac3p\xe0uw9\xbf\x9f\x85\x95ٌ^\x81\x13f\xbb\x8e$Gǻ\xe6 \xe5\x05\xe8@+\x8e.\xce,uiY\xe2\x11\x1a\xe5\x0fGX\x94#x\xe1X\xd5\xd0[\xbb3\xc15m\xacZ\xf8okiQ\x9a\xfe\x974\x94)}I\xae\xf1\xa4\x8c\xc3\xe07\x9f\x87\xeb\x81ɘ\xb2\xb1SY\xfe\xd9Pnm\xbfU\xe0\x82\x00w\x9e\x80\\\x1d\xf8E\x17d[I\xed\xcc\xf6\x8a\x01\xc7\xf3\x8a\xf7ϰ{\x7fa\xa7\x9f\x9d\xb2\xafd\xde߉\xf7·8P\x18\xd1ᐂ\xef\xc8{\xfc\xed\xfdK\\\xa9LN\xcd\xec6`њ6y\x1c*\x92\xc9\xfa\xae\r8\xa6\x9f\x9b\xef\x92\xf2\xdeɞ\xdam\x16\x8b6R\x9b\xcf\xe9\xbc\xe1\xc8z\x1e\u0088\xa1g\x9cȱ\xcdF\f>\x8f\x16\xf5\xbdu\"W\x06\x94\xcf%:\x1b\x10\xe2\x8f\x17Ff\xa9S\x99\xfebc2\x90\xc6\xfc\xaeE\xf0\f7\xb9\x83\x9b\x9c%\x1e\xe3\xb0Z\xbc\x1c\xe9\xed\xdf~\xef\xe53\xad\xe4ڿ\xfb\x1bym\x87\xba\x90uM\xf7O5\xb3\x96z\xe3F\x06\x9e\xf6\x80\x1c\xf5պEyε\xc8\x1d\x0f\xe1\xf9喙\x8a\tB\x83\xda\x00\xe5\x19\x8a\x92F\xa6rةVQM\x96\x00\"\xa6\xe8\x7f\x04W\xa2f\xe2\x0e' \x1f\xcf\xe0zDt\x9d\xd3ٽ\x894\x89\x94\x8f\x1f\x9c\xc9jdI\xb6\x15(\x180\xc6a\xde\x1d=U!M/eq\x84C\xda\xc8\xf2'MVLi\xd3_\x82&\xadΥ\xf5\x91\xe4\xb3\xeb\xfe\xcaj\x90\xad9'\x82o\xbbi\x06g\xcd5\xfd\xce\xea\xb6&\xb4\x96\xad3\xe6\x86\xd5\xf1TףwK\x99\x89\xc7V\x98\xbf1Ғ\xa0\xe1`\x80,a\x95>\xefM\xb5B\n\xcdJP\xa1J\xc1\x91\x8dI+\x98+\xcax\x9b:%J\xb5c#`q\xab\xd4I\x01\xf0\x177\xb2\x97w\xac\xe4v\x88\xa0̽\xe3A\x1a\x10\xb6\"\xcc\x10\x10\x85\xc58(\xa7\x92q\n\x8f\fD\r\xcb\xd5sy\n\xdc6\x10m\x9d\x87\x80\x05\n$\x13\x93)\xb7~\xf7O\x94\xf1s\x90\xcdr\xde'\xa9\x1e\x81\x96\xa7\xe4h~\xed\r' t\xab\xf0\xf0\xdf\xe9\x8e-\xe3yk\xb6\x94#\x9c\xb6\xa2\xa8\x00\x95\x90\x18\xea\x06\a\x9e\tm\x80\xe6\xf2\x82\xf5\x8aZ!\x98X\xe7\xd1.;\x11\xda5\x87\ua954\x1c\xe8\xf8)d\xd7,\xae\xdf@\x13\xfd\xdaM\xf3BM\xd4\x11\xc1\x1d\x9b#\x1d\xb2)j\x95\x16\xa1\xc6@\xdd8\x91\x93D\xb5\xa2o]Π\x88\x8e\t\xc3\xfd*^3\xbef\x82e\xd0v@\xd7;\xc1L\xdfy\xb4 \xce\xea<\xda\t\xa2;pJ\x86\xedn\x00\xc0\nh\x88Cp\xed\x91k\x8ep$\x97@hYB\xe9r\x97\xd6\x15\xf1a\x89+|\x1b)nH\xee\xeexO0\x8b\xb2\xa1\r\x82N\xccê\r,Z\xf1,\xe4V,0\x18\xd7G\xeb\x90\x13\xb3T/\x9dޜ\xac\x8c\xe6\xf5K\xbe\x9a\x9e\xd3BC~\xcd\xe7\xa9\xe0?\x9dA\xcbd\xf3\xcdQ\t\x8f).\x98\xd3k\xae\x00{\xe4\xc7\xd9UL\xcd?1\xd8\x1fJ߸b\xe9\x17\x95\xc5ݥA\xf5\x9c\xc2m\x05\xa6\x02\x15J\xb3\x17X\x92^N\x9e\x90v\xc1K\xac\x93\xb3L\x15\\dW\xfe\xb9W9\x87\xd1M\xcb\xf9\x85\xe5m\xda\xf2d8l$\x8a\xd8!geՏ\xa5=\x86\x9c\xea\x8bl<\xf6+-\x86\xf5\x85\xb1\n\"\x14\x18\xca0\xb3\xa7qj\xbfXX\xda;\xdf\x1f\x96S`\xfe/,\xff\x0f/=̨\x94\xc8Gcn\x95fDb\x02V\x82\xc1zh\xec\xea+|?_\xe8\xfbc\xe1\xd4@\xfd\xa5\xf1\x123\xea\xc2f\xa05\x01g\xaf\xde\x04\xadA\xab\x9d+\x10\xed\x80\xcf\x19\xda\xf1ׅ\xbb\x05\x11\xc0\xa4\xf8\xf5k\x05A|}\xf5>\xd3䯤\x92m\xa2\xaao\x02e3\xd5\x1d\xf3\x1b\x1e\x14z\xf8\x03\x050t\xf3\xf1r\xf8\x8b\x91\xbe\xec\x03\xb3h\t@\x18\x14u\x99Y&J\xb6aeKy\x90\xda\xee\x0e\x81c\xa0\x8e\xcf\x12Ф\"\x82qǀa\xfc\x80\xe1ȗ\xc6\x1d\xcb\x1c\xad\xe2\xa6}ѼꐓkB\x865\x1f#\xd6\xf0\xd8\xe3\x8bW\xa9\x82\xfdCj=\x8e\xaf\xf0ȉ$f\xaa9N\xa8\xe1\xc8,\x16{\xf1yKN\x95\xc611\xf7\xd9*2^\xbf\x0e#\v?\xf35\x17\xc7`\xe7\xec\xf5\x15oXU\xf16\xb5\x14\x99\x15\x14\xafW\n\x99\x17}\x9eT\n0\x1f\xb0\x8cWA\xcc\xd6>\xbc(\xa09iK\xb35\r\xc7T2\xccR'O\xccެV\xe1\xcd*\x14\u07b6.a\x92\x8b&\x7f<\xa6\xf2 \xc6I\xbfЦab}\xc8\x14\xb9\xac3\xc96\xf3,s\xbf\xb7\x90\x01\xcf\xf4Ù.:\x1c\t}\xddu\xe9D$\x19ҖL\x18yI\xae\xc5\xce\xc3M\xc0酏B\x9a\x83\x8blvY[\xc6y\xff\xb6\x16\x82\x9d\x06\xe5\xefLjZ\xbbU\x8dy\xfbI\xbaJ5p\xcaO\n\x1c\xbf\xec\xc1\xe8gG\xdf\xd2\xf3\xaf[nX\xc3\xc1zt\x1bV&\uf419\nv\x11\xc9\xff\x90xCj\xb9CH_\x1e\xa3,^\xee\x051T\x93-pNh\x8a;\x0e\xb6_\xb8\x9bɅ\\\xe0\x95@K\xde\xc0$\xfe>\xf3\x85\x93b\xbc\x06\x86ԫ\x13p\v*\xf0v\xb3Nld\xd4\x1c\xe6h\xd1\x03\xbf\xdcE\x17\xf8\xed\xb7\x16Ԏ\xc8\r\x960xﭻ\xab\xe0Ս\xb61fP\x80^\x19\x8f\x1d*\x1c\x842\x9d\x82\"\xd7\xc2\xf9\x12\xfb\xeb\xc11V\xf3u\xa1\x9aU\xe76\nK\xce12\\\xc88:1l\xce\xed\xcf-\xea?o\xe0v|\xe86\xeb+\xe5\xfb\xb3\x7fP\xb1\xfe)E\xfay\xc7A\xb3E\xf9\xe7\n\xe4\xe6B\xb9l\xef5\xaf\xe8\xfe\xb8C\xd43\x16ٟ\xa3\xb8>\x13S9\xc5\xf4\xc7\xe1\xe9\r\x8a\xe7ߴh\xfe\xad\x8a峋\xe4\xb3\xce1\xb3\x0f\xadr\x8f\x19O\xac\xfa\x9e?u\x9f.z\xcf(v\xcf8I\x9b\xdf\xe4\t\xdb\xcb(f?\xae\x88=\x83f\xb9\xa2\xf8\x86\xc5\xeaoX\xa4\xfe\xd6\xc5\xe93\x9c5\xf3\xf3qE\xe8'\x9f\xc0\x84\xa3\xfe{Y\u0083Tf.8y\xd8\xef\x9f8I\xed\x05l\x92\x97D\x84\xae\x89]b\x88\xe1Ë\xd36\x95>\xf4\f\xee\xf4/\xb2\xb4k\x9b;cy\xdc\xeb~pWy\x05\n\x84{\xe6\xe3?\x9f\xbe\xdcG\xf8)\x9f\xd7{\xc6{\xcfK8\x0f\xa6\xf4\xc8\xf1Gs\xbe\x98\xc9a\v}\x80W>\x17\xa1\r\xfb\x0f|\xd5\xed\x05\xe9\xa0\xeb\x87;\x84\x11\xfc4|&.VQ\xc4\x13\xcb%X\x8b\x15Q5*\x16w\xab\x01\xc4a\xc5o\xff\x19%(ݓY\xc1b\xb2P\xe3e\x05\xef\xe1έcl\x96O\xd6i\x14;\"\x1dGVL\x95\x8b\x86*\xb3C\xb6\xd1\x17\x835\x0433\x95\xce\x19U\xac\x87π%\xd1\x1b^\xff³\xc8]3<\xed\xdd\xc7\xdd)\xeb\x18\xbf\x7f2{\xf3\xe4\x15\xd71n\xb1\x17\x88\xa9\xc4\xe7d\x81ɫ\xa5ɼ&z\xf8vR\xda\xe51\x8e\x9e\xd6s6\x8a\x0e\xa9\xa6\x04\x18;\x1eU\x9d\x16\xb4\xd1U\xe2ɥ\x97\xe9:|\x8d\xccPӾd\x93\x0e\xc0`\x9f\xac\xa8z\xdaj\vA\x9f\x85m\xa3\xb4Ⱄn\xb7\xb6\xd9ս0~\xd1\xcb\x14\xbc͑p\xe6s.'?\xe4\xe2\xd03\xa2~0\xfbeU\xdb!\xa6N8\f\x9eu\xed2\x8a\x8c\xa7\x9d\xd8\xccg@\xf2\f\xc6\tO\x7f \xberqE\x92/\x82d\xbe\xfa\xf1\x87\"zB\xab颂\xb2\xe5p\xea\x9b\x7fO\xbd\xf1\xf3\xaf\xfe\x85\xd92\xde\xfd\xb3\xc8\xee\x19h\xeb3\x0f\xdf\x17\xf4\x94\xf0\x90\xfb\x94\x1cs\xf808pϋ\x15\xee%ʢ\x00\xadW-\x0fUJ\x85\x02j\xa0\fݙ\x8e+>\xaaΦm\xb8\xa4%\xa8\x1b)V,qB2@\xeb\x7f\r:\xef\xf1l\x81\x1f[\xd5=\xed8\xf9,ދ4WC\x15\xe5\x1c\xf8'\xc6A\xff,\xb7®+C \x1fR\xe3z\xf7\xb2\x8aVY\xb3\xbe#\xa2\xad\x97\xd6\xc9\x05cƃŕT\xd3\x15\xd2\x0e\xefL\x18XC*\xbe\xde*f\u0a61J\x03\xae(c\a\xbf\xee\rq\xd1\xe7\x8aӵ+\x85+YA\rD\x03\x8c3\x8c-\x1f\xc7k\x84\xc5wX\x99$G\x92^\xd9B=v%cT\xacǞ\x17M\x98\xea\xe4\x03\xa3\xce\"\x17\xb41x\x01\x06\xe9\x88D4\x1e\x06>ڻ\xf7\xc6\xe8\x00\xec8\xa7\xf92f_0\xa7\r\xad\x13Q¼\u07b99\x04\x83\xcf\x02\xab\xb2Ww\xd7\x7f`1\x16ؑ-ձ\x98:\xe9{w\xb0\x1d\x18t\xd5-h(\tl@\x10+\x8a\x94q(\xa78\xf5+&\x92\xd5\x06\xd4O:\xc2\xc1J@\xcb\xe2O\x86*\x13\x97~\xe8Ǭ\xa4\xaa\xa9\xb9\"%5\xb0\xb0\xa3Os\xdd\xd2Ϥ*u\xe2q \xdel\xf3\xe2Q\x84k7\xd6\xfa\xb9\xfbh5hM\xd7!\b݂\x02\xb2\x06a\xf1\x1es\x8bI\x8f)\\\xe9\xf3\xc6\"\x96\x96Z\x14\xd2´\xd4O\xe0\\\xb8xz\x1a\xde'\xc6(v=\xaa\xa2Ӫ\xc2_\x1e|\x04\xaa\xf7\x9f\xbb>\xc0ŧ~_\x9f$v;vg#\xd4\x15x\xe2\x83dž\xc5\xc8:%\xd3F\xe2\xccG\x99\x93J\xca\xe7,7\xfbs\xecإ\x93\x98p\xac\x84W&\x97\xb25=?\xc7#<\xb1L|\xfe\xf3\x95\xed\v¼v\x17\xa8\xc6r\xaby\x9e\xde\xe7\x01\xa4\x18\xdeJCy02\x96/c\x87j\xe2\x01\x81\xa7\xf0x2绋}\xc8{\xaf\xb2w\xb0\xab\xee)O\xaf\t\xba\xeb\xe3ciU\x9f\xf5K\x02\x89\xaf\x80v>\xc9؛\x8bs\xf6\x0f\xa1~\xc2Ee\xe0\xf8s\xd7{\f\x8fn\x99\xcea\x06\x91\x8e4\t\x06\x1f\xa6\x8a\x92q\xc2\xd2'\xbcԦ\xa2z\xce=}\xb0}\xa2\xdb\xd13W\xd1\t}\x1c\x91\xca\xf4=\xd7\x05\xb9\x87m\xe2\xabC\x16\x9e~\xa1T%\xba܉\a%\xd7\n\xf4!\xd3-\xf0>#\x13\xebOR=\xf0v\xcdė\xf1\xca\xef\xa9\xce\x0fT\x19f\x99֭'1\xf6&ظ\xc4o\xf3\xa3\xc7\x7f`\x82r\xf6{J\x97\xf7\x7f\x9c\x9baB\xdf5\x1ey\xa7X\xa8\x80\xf89\x05\xe85\xf4O\xbag~¼\x97\xe4^&\xc5\xd8\x1f\x10\xb3!P\xa6\xc9\x12\xb4Y\xc0j%\x95q\xf9\xfbł\xb0Up\x90\xac\x86\xc08ѽfOX*\xf1\x1e\x8fނò\xf2\xa9D\x85V\aCΚ\xee\\F\x92\x16\x85\x8d\t\xe0\x8364\x15\x9b\xbcHOc\xa8\xeae%G\x85\xdc\xf5\xfb\xc7\x1c_T\x1f\bΡ\x0e\xaf\xb3;\x83\xce\xc7δ\x06\xafe\x10m\xb1w\x8a2!N\x8dݍ\x87\xddy\xa6\xe6k\x842\xa6\x1e\xfd\xfe\x06\x0fq\xfb\x03V\xdfɒ\xad\xa8\xa8X\x8f^h\xab\x94l\xd7U\xe0\xcd1\x87\x88\x94-F\xce\r\xaa\x02\x1d\xfe\xe3\x10\xd3*\xd1;\xb4\xf35\x16cZ:.w\xdcGy\x81\xa2V\xddŖNUM\xd8\xfc\xec,\xe1\b\xc4Y۟\x80H\xf5N\x14\x93Wp|\xa0\xcd&\xee\xeaNa(\x89\x84\xa8\x8d_\r\t\x11\xe2\x18\x12\xfa\xbeD\x17\xf1\xfc0\x18\x19\xf3QNDǴ\x13\x83[\x9c\x065\xbf\xe9\xbe\x134tw\x8eC\x87\x1e\x04\x7f'\xa5\xdd\x06\x10\x8e\x89|q\xeet\xdc\xfb\xe3F\xac\x9b\xe8mݞ\x1c\xbb~ۃ\xb1w\x05\xd2F\xb1\xdd4!\xde\xfcg\xb6Jɋ\xfbߙ\x96\x1c\xfe\xe5\xe0\xd77\xbeʸ\xa5J0\xb1>\t#\xbf\xfa\xb1\x89xރ=gD\x1fV\xfej1}\xd2,\x1d|D\x06/{x\xf63\xf9/\xff\x17\x00\x00\xff\xff/\xccd\x1aCm\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec=]s\x1c)\x92\xef\xfa\x15\x84\xeea?B\xdd\x1e\xc7\xedÅ\xde|\xb2\xe7\xae\xe3\xfe\x87Y\n\xf5f\xf7\xf6\xe2Q\xc8\xfc\x9a\xdd\xd4ƪ\xf23\x18U\xeb\f\xde\xc3FHa\x85\x92\x17%X\x9es˯/\x18\xe3R*\xcb\xf1\xb3\xc1?\x19˔\xb4Z\x15\x05\xe8\xc5\x03\xc8\xe5c\xbd\x86u-\x8a\x1c4\x01\x0f]\xef~X\xbe\xfd\xcb\xf2\x87\v\xc6$/ᚙl\vy]\x80Y\xee\xa0\x00\xad\x96B]\x98\n2\x04\xfa\xa0U]]\xb3\xf6\a\xd7\xc8w落\xf3\xed\xe9S!\x8c\xfd\x9f\xde\xe7\x8f\xc2X\xfa\xa9*j͋N\x7f\xf4\xd5\b\xf9P\x17\\\xb7\xdf/\x183\x99\xaa\xe0\x9a\xfd\x8c]U<\x83\xfc\x821\x8f?u\xbd`<ω\"\xbc\xb8\xd5BZ\xd07\xaa\xa8\xcb@\x89\x05\xcb\xc1dZT\x96F|g\xb9\xad\rS\x1bf\xb7\xd0\xed\a˯F\xc9[n\xb7\xd7li\xa8\u07b2\xdar\x13~u$r\x00\xfc'\xbbG܌\xd5B>\x8c\xf5\xf6\x8e\xddh%\x19|\xad4\x18D\x99\xe5\xc4@\xf9\xc0\x9e\xb6 \x99ULגP\xf9O\x9e=\xd6\xd5\b\"\x15d\xcb\x01\x9e\x1e\x93\xfe\xc7)\\\xee\xb7\xc0\nn,\xb3\xa2\x04\xc6}\x87\xec\x89\x1b\xc2a\xa34\xb3[a\xa6i\x82@z\xd8:t>\x0e?;\x84rn\xc1\xa3\xd3\x01\x15\x84w\x99i \xb9\xbd\x17%\x18\xcb\xcb>\xccw\x0f\x90\x00\x8cHT\xf1ڐp\xb4\xado\xbb\x9f\x1c\x80\xb5R\x05py\xd1Vڽu\xb2\x97m\xa1\xe4\u05fe\xb2\xaa@\xbe\xbb]}\xf9\xf7\xbb\xdeg֧\xe8\xff-\x9a\xef\xac\xe1\x06\x13\x86q\xf6\x85f\t\xd3~\xda2\xbb\xe5\x96i@1\x00i\xb1F\xa5a\x11H\x9d3\xa5;\xa0*\xd0B\xe5\"\v,\xa2\xc6f\xab\xea\"gk@n-\x9bڕV\x15h+\xc2Y-;\xf0\xa8\x81\x19\xe2\xf1\x93\xd2\xc0\x84ܨk\xb6\xb5\xb62\xd7o\xde<\b\x1b\x94n\xa6ʲ\x96\xc2\xeeߐ\xfe\x14\xeb\xda*m\xde䰃\xe2\x8d\x11\x0f\v\xae\xb3\xad\xb0\x90\xd9Z\xc3\x1b^\x89\x05\rD\x92\xe2]\x96\xf9\xbf\x05~\x9b^\xb7\a3\xd3\x15R\x993\u0603\xba\xd4I\x97\x03\xe5\x86\xd8r\x01?!\xe9>\x7f\xb8\xbb\xefJ\x9e0\x9e)\x1d\x01\x8c\xf1\a\xa9)\xe4\x06\xbc.\xd8hU\x12L\x90y\xa5\x84\xb4\xf4GV\b\x90\x96\x99z]\n\x8bb\xf0[\r\xc6\"\xeb\x86`o\xc80\xa1\xd0\xd6\x15\xce\xdd|Xa%\xd9\r/\xa1\xb8\xe1\x06^\x99W\xc8\x15\xb3@&$q\xabkn\x87\x95\x1dy;?\x04\x9b\x19am\xd0\x15w\x15d\xbd\xa9\x86\xed\xc4FdnB\xa1JnT\xc9@-\xbb2>\xfb\xe9\x17\xd2}ï\x03<\x9c\x82\f\xbd\x82A\xa3d\xb7\xc4\xfc\xd66\xa2\xc89hLi&\x95=\x80y\xa8Z;\x94\xf0P&09\x10vv\xa0RS,\xe9\b\x90ֶ\x0e\xe5+\xcaj\xc2\xfbQT\xab\xb2\x84\\p\v\xc5\xfe$\xf4\xfb \xc6Ȭ\xa8\x1f\xb6vz^lzD\xcfk`\xa2Ӟ&\xe3_C\x8dCk\xfcW\xb2\xecdD\x1dM\xba\xc0j\xd9\xf2pЏ\x84\xa7C\xd20\xb6\xda0\xabQ\xe7z\xec\x9eDQ\xe0LF\x8c+\xc8{\xa8Ż\x13\x1b&l\x18͚\x13\x06\x92-\x9d\x17\xb5l}\x86\xc6\xfe#\x82\x03\xecH\xed\xbb\xfe\xd1S\xe1\x96I\xf8j\xdbZ8\xec\xc8\b6\xbc0\x83!x\x854k\x18Wl]\xdb\xd30\x80\xb2\xb2\xfb+\xd7v\xa3\x8aB=1C\xca\x16\x8d\xe0F<\xd4\xdaM\xf6?\xe6\xb0\xe1ua\xaf\x1d\xce\x7f\x8aI\xeb\xf84\xb3PVh2O\x91\xd3{\xdf\x16\a\x8c\xb3%ob\x8c\xe0&\a?Dy\xf7c\x04\x88r^l\xa5\xd5N\xe4ޜ\x1f\xa8+vTeaɌ\xb8\x93\xbc2[eQ\"Tm\xc7j\xa5\x8c\n\xcb\xcd\xddj\x00\xad3\t\x11]r\x85IN\xadbO\\Xҹ7w+\xf6\x05c\b\b\xad\x99\x9bl\xcc\xd6Z\xa2\x9d\x8b\xf4\xf7\x19x\xbe\xbfW\xbf\x18`yM&:\xb8\xb7Wl\r\x1b\xb4g\x1a\x10\x06\xfe\x04Z\xa3~7\x84\x84\xaa\x0f\\\xa6\x86=\x8e%(\x1b\xde\xe2\v\xc3\xde\xfe\xc0J!k;*uG\x15\x1bQ\x8f[^\xaa\x1d\xe8\xe7\x10\xf7=\xb7\xfc'\x042\xa0)\x02g\x04\xdd\v\f\xd1w\xbd\xa7\x1f\xd7\x11M\xec\xcajӁ*\f\xbb\xbcDmp\xe9B\xce\xcb+\a\xa1\x16\x85]\b\xd9\xed'\xa8&\xec\xe94\x828\xfa:\xa6\x9b{\xf5\xa3q\"\xff,\xfaD`\x8e\u0601J\xe5lG\xf5\xd8F\x14\xc0\xcc\xdeX(\x83\xd6j=\xffN83,\xe4+\x14\x85\ac\x90\xde~P\xe3\x04\x91uQ\xf0u\x01פ\xe4\x8f\xd0l\\ߌ\x11\xed3\x18+\xb2s\x92\xccA\x1c!\x98\xf6?\xf4(C\xa1\x03\x7f\x04\xc6#\xe0==1N)\x8a\x0e\xd1\xfbԺ\x88\"Wi\xc8Љ\xbd\xf6α\x80\x82\x1cr\xa9X\xa1\xe4\x03h\x87Fc\xacPY\x02Jh\xce\xd0\xef\xd4hb\x84d\x9b\x1a]\xd2%C5\x11\x15\x12!\x8d\x05\x1e\x91\xe630\x0f\xbefE\x9dC~S\xd4Ƃ\xbe\xcbT\x05yXe\x1aUͩL\xfcp\x14\xb2\x0f`\n\x91\x012\"s\x95\x16\xb4\xca\x13\x93\xed6\x96\xd9W\xe0\x16\x9d\x90\xd7~\bm\x902\xa9\\\fXlx\xf9\xe7\xcb+\x12\x81~\xef\xfd~\f\xe3\x1a\x1a2\xcdR\xced\xf2\xc7[\b\ve\x84\xba\x93Jj\x06߹\xd6|\x7f\x84\xeb\xcdj\xda\v\xf0=\x06{\xc0y\x19\xaa}#\xde\x0f\xfb\xffW\xe4\xfey\xf9mhՙ\v\x89|.\x84\xb1=6\x1b\xb7\x8c\x85d\x1d\x8b!=\x81\xa4\x83\x89jr\x8a\xab\xff \xc4<\xeb܉M\x96F6\xfd\x04\xf8\xa7\xa2\xe4V\xa9\xc7\x14\xea\xfd7\xd6kװXF;#l\r[\xbe\x13J\x9b\xe1:)|\x85\xac\xb6Q\xcd\xc2-\xcb\xc5f\x03\x1aa\xd1:\x7f\xb3-p\x8cX\xc7\xe3\x17\xd6QY\xd1\n\x83q\xb5LG\x96\x125bC\xa1\b5\n\xd5y8\x18[\x90\x03\x91\x8b\x9d\xc8k^\x90/\xc1e\xe6\xc6\xc7\x1b\xfcbZmB \x0e\xf0\x8fJ\xb5+Ρ\t\x83D&\xf6\x96\xbd\x94\x04t\xf2K\f\x8e\x0e\xab\xc6)\x11\xd6\x12\x8e\xf6\x8d\xcc\xd4u\x01\xc6w\x97\x93\x9f\xdc꤫\x96Yn\x91\xa1\xe0k(\x98\x81\x022\xabt\x9cB)r\xe0J\xaaҍ\x10wD\xcb\xf6ív0\x13`\x19Ÿ[\x91m\x9d\xfb\x8a\x82F\xb0X\xae\xc0в\b\xaf\xaa\"b\xba\xda2)\x1c\xbe\xb3)\xbdі\x04\r2\x84\x1b\xd3%mI\xd4\xcfm\x19%{;7\xfbT\x1f_\xe8\x1f\xc5\xf7_\x89\xe8\xc1\xea\x9c(\xec\x13\x9a\x84цA\xf2|\x88\x92\x1e).\xc0,;\xcbs\u0086\xaf)\f\xed\xf9\x8f\a{)\aD\xf9}\xf1\xee\xb4\t3\x83u\x93s\xeae\x19\xd7t\xf3O\xc272Yw\xdeb\xcd\xe2\xd9\xc7n\xcb+\xda\x16\xf0\fɯ\xd8F\x14\x16ȩ\x9aB\x94\xcd\xe0\xdc9\t\x94j\x81\x19\xed\x12\xdbl\xfb\xa1\xd9|\xed,Q\xa3v\xc1\xbfS\xa4\xf5\x14\x1c\x19\x1d\xd8(K>\xcc\aNF\xf7Ƶ\x0es\xcc\x03s\xe1\x96~\xa8I\xe7\xcc\xf1:\x1aQ\xfeGsmJ!W\xd4\x11{\xfb\x82\xee\x90\xd7\xe2\xb1\xfc\xa8\xb1r\xba\x93~\x13:k\xb9\xd7|\xf0Iu\x8a6~4\xf4\x98{\xb8'B\u07b5T\xb6\xb3\x8c3Ӊ\xaeT\xfe\a\xc36B\x1b\xdbE\xc3\x1cɬ\x1a\x05uB\xe8)?h}r\xe4\xf9ɵ\xee,(nՓϜ\x9e\x13o\a\x92n\xf9\x0e|\xea*\xc8LՒ\x96\xc2P\x0f`73 :\xd68+\x90h\xef:\x8de]\xa6\x13dA\x92$\xe4\xe4\xbaY\xb7ɏ\\\xa4\xad[\xb1\xd3\xd8j\x8f%q\x8e\x95\xd3\xe7Q\xc8\xf0\xec\xe6ӗ\xfc\xab(\xeb\x92\xf1\x12yHn\x87(\xa1I\xa9w\xecn\xf2>\xb1\x05\x19-\xabp\x96U\x05X\xf0y\x9b3\xf0Ȕ4\"\x87\xc6\xf4{\x11P\x92q\xb6ᢨ\xf5\f\xad:\x9b\xe4s\x830\xafM\xce\x1fY\xa5#\xb2 \x12%\xae\xb3\xcf\xf0\x82\xa75~\xa5\xe7\xf9\xb1)\x0e\xa3\x86\xf9\xfeb\xa5\x85r\xa7\x01\xce\xef2\xfa\xbcc.\xf7\xdf}\xc6\xef>\xe3w\x9fqNG\xdf}Ɖ\xf2\xddg\xfc\xee3\x1e/\xdf}Ɣ\xf2\xddg\x9c\x89ȷ\xf2\x19S0\\\xd0\x1a\xe7\x91\nIX%\xa6BL\xa1=їO\xfa\xf1g5Β˼\x1a\a9r\x8a'r\xfc\"\xe6u\xb4ƫIn\xc6\x19\x18\xe6\x8e;F\x99\xe00\x9f\xe1\xf4L@\xe0\xfc\xa7gVG!\x9f\xf1\xf4\x8c\x1fBZ\x84q\xd2ٙ@\xa4\xf9\xa7'\xae|\x12Q\t\xaaA\xfe¶\xaa\x8e\x9cژ mB\x16m\x1aAzI\xb5>1\x02,߽]\xf6\x7f\xb1ʧز'a\xb7\x11`t!\x05\xcfs\x8c\v:\az\xbc\x1e\bw%\r\x852\x02Li&E\xe1$6@\xe8\xc9+\xfbT\xb9\xd5\xc1\x93\xfd\xa6\xe95\xac\xf4Dܹ\xe9\xb7M\xb6\xe4\xb4\xfb\xfe\x8c\xa4۳\x1e\x8d\xfafi\xb5\xa7%Ӧ\xaeP&$Φ\xa7˦\xb0Օ\xf4$\xd9\xe4\b95!v\xee\nċ&\xbf\xbeL\xcak2\xcd\xd2\xd2[\xe7R\xecURY_9\x81\xf5\xf5\xd2Vg$\xab\x9e\xff\xd4K\xfaZ\xfa\xc9ٕi\xcb2\xc7\x13N\x93\xd2L\x93\x96nR\x06|\xd2P\x93\xd2G\xe7&\x8d&q2}\xba\xbejZ\xe8\xab&\x83\xbe~\n褴MV\x98\x9b\xe49~\xcba(\xd3\x0e@\xf1-\x84\xf3\xb9dR\xba\xe7\x9a?+\xee\xfc4\x80\x85\xc2\x12\xdc\xd4W\x8c\x03ʺ\xb0\xa2*\xda\v\xd9b\x01\xe7\x16\xf6\xcdeE\xbf*:\"\xef\xaf\xea\xfa\xf4\xb9\x91\xf8\xe5 \xaa\xe1\x86=AQ0\x1e\x9b\x9b\aT\xc8\xdcE\xa0\x99Z\x00\xdaF\x9c\xe5\xfe6&\x7f{蕛.t\x1b\x00Y\xd82\xb6\xd4\xc7\xe5\U0006bf8e\x1a\xb0T=v\xe0\x99\xbbx\x83\xbe\xfdV\x83\xde3\xbax\xac\xf1\xcd\xdaC\xa5~\xa2\x1b\fL\x83\xfa\xf1\xea\xf0؞\xc9A\x80Ӫ\a\xf6N:\x8f`\x88\x13\xb5A\xbd\xd3\x06t\xa8T1N\x8b\xf6\x13\x01!U\x03!\xd24\xc5\xf9\x9fs\xca\xf2%»s\x04xI\x1e\xd0<\xef\xf5\x1b\x9e\x9e<\xf5\xd4dz2J\xd2)ɗ\b\xf7\xe6\x04|\xb3\xfc\xd5\xf4S\x90\xf37\x9e_\xf8\xd4\xe3K\x9dv\x9cA\xbd\xd4Ӎ\xf3i\xf7J\xa7\x19_\xfd\x14\xe3k\x9e^\x9cuj19=kV\xc6\xc1\x9cԪg\x1c\xb7K\xcb%\x98>\x85\x98x\xfa01\xd3 m\xf0'\x0e;\xf1t\xe1\xfcS\x85\x89\xfc\x9d3\xa5_\xf9\xf4\xe0+\x9f\x1a\xfc\x16\xa7\x05\x13$0\xa1\xca\xfcS\x81\xcfޒR:\a=\xb9\xed7Gj'\xe555\x96\xeb#6\xd8\xd7\n\xd7\xc9b\xad^\f@f\xc9\xdf\xe4O\xaf6\x1c\xdb\x06G\xc9\xecxD\xbd}\xc9\xd6]\xeb;\xc4\xfe9\a\xb7ui\xa0\xe2h\x00(p\xa3Ԭ\xa8\xab\xf0\x81g\xdbA\x0f[n\xd8F\xe9\x92[v\xd9l\x16\xbfq\x1d\xe0ߗK\xc6~TM\xaeN\xf7\xbe4#ʪ\xd8c$\xc6.\xbb\r\x9e'%Q\xe9\f=ߪBd\x11\x9fs\xf4^=\xd7\xe0\xe0\xb2!\xba\xf9/\xebd\x8b\xc4\x02\x1fl.\u00ad\x8b\xfd;\x99݅\xee'\xae\x95\xf0J\xfc\x17\xbd\xa9t\x86U\xb7w\xb7+\x82\x15Ĉ\x1ekj\x12\x14\x1b\x96\xaf\x01]\x86v\xec\xc7\xf4\xc9jӃ\xda\xcf\x11\xee\xbeV\x01\xb9{\x9a$\xb8-^5g\n\xb5\xd6\xed\xca\xe1r\xac'\x94/.\xf7L\xf9\xb7'\x84\xce\x17\x15\xd7v\uf489\xaezx\x04\xbb>\xb5jv\xd4Z\x1d>\xbd\xd2-=\xb2\x87WWh'{_\xf5\x93\a\x86\xf4|\x0eN\xc7OUO\x9e\xa7~\x01\x9c\x8e\xbbP\v\xa2b\xe4\xa7h\x06\xe4\xd9W,\x8d\xbf\xa2\xff'\xb5\x83\xf7ѕ\xcb\xfe\xf3+\x83&#\xa9\x89\x01*\xdd2\x1f\xa1`\x9b\x8fHw|?O\xed\xc5s\r\x03*\xfe\x8e\xf0\xe7,N\xde\xf5A\x8d\xbfHBW\xa8\x87Nc^\x15\xbd\xf5\xb4g\xb7_(nmT\xa9\x9f\xfa>n\r˓!\xc1 \x02Kȣ\x8f\xb4\x9c\x8b\x8cVi\xfe\x00\x1f\x95{\\'EL\xfa-zO/y\xcf-\xe4k\xfbI\x18S\xf4~lC\x80\xed\xf9\x8c\x83\x9b\xfe\x11\xdb\x13\xdf2\xb0\xb6x\x8e\x8c\xdc\xdf\x7ft#\xa57M\xde\xfb\xe7IP\x1f\x1b@\x16\x04\n8hk\xfc\xefV=\xd1\x05\xf8\xf15\xe6\xf0\x82H\xe7\x113\xa0\x83\"\x94\xc2{\xd20\xeb\xaaP<\a}C\xaf\xa8$\x8c\xf8\x97^\x83\x81;\xd0\x7f\x8b\xc5\xdb\xcd\xc8xB\xcf/\x98%\x83\x1e]Q@\xf1\xa3(\xc08\xc4\x13M\xc3\xeda\xcb\xc6R\xd4\xe5\xday\xaa\x1b\xfc\xb1\xe9\xe4\x88evC\xa5\r\x86\n4\xfa\x89n+\xa26A\xf2\x8f\x13\x835|\x14\xd2\xc2\x03\x8c\xc7\xd0\x136a\xd7{\x8a%̞\x14E\xf8e\xbceǙ\xee\xccc\xf2~\xe3\xea.\x06\x8b\x1b\xa32A\xfe\xf7\x93\xb0\xfe\xe2×\xbbm\xfbX(u\x84\x8e\xb5\x81OO\x12\xf4砫\xcdJƞ8\x99\xd6\x13\xbf\x1c@\x8b>mb\x15\xf6=\x02c\x00\x80\xa9\xb0#dܣ9a#J\x98\xe6\x1d\xb0CzNL\xb6\xb8M\x18wm\x16\xe3\xcf\x16-\x9a\xe7\x95.\x12\xc8\xed\x9e\n\xea\x03\x1e\x7f\xfdͽ)\x94\xf1\xca\xd6:\xe8\xa1Z\xd3}\xe4\b\x04\xdcuݧ\xbd\xff\xd6>\vv\n\x83\xdbw\xb9ڕ\xfaɗCG\xe04/\xb8E\x9f\x83r\xb1\xa7{\xd9s\x81\xf0O\xe3\xf1\xe8\x8cA\x9c\xef\xdc3_\x13D\xf8\xd8\xd6\x1c\x1bp3\f\x1c\xb2\x7f8\xecUGB\xd7\xd3O\x8c\xe1\x16\xeb4\xe7A\xbd\x1cQ\xc3p\xad\xfd]\x8c\t\xe3\x87\x06\x17\xecg8\x8cm\x17\xec\x83\xc4A\x1c\x12\xc0\x9d\f\x84\x9c6!H;\xce\x19\xe2\xaeiE\xc72G4\xe4\xb4\xd8~\x19\xc0\x18\xe4|\xd3\xfbHM\x15w.Ӱ?\x8a1\xbf\x8d\xf6\x962\x1c\xe8\x9f\x0e~\x8dj\xf0\xa3\xda;\xa6\xb9G\xd5\xc8\xc1Gz3.\xefH\x8e\xf7g\xbb_\xeau\xfb\xf4\x00\xfb\xdb\xdf/\xfe?\x00\x00\xff\xffgH\xe37iz\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec=]s\x1c)\x92\xef\xfa\x15\x84\xeea?B\xdd\x1e\xc7\xedÅ\xde|\xb2\xe7\xae\xe3\xfe\x87Y\n\xf5f\xf7\xf6\xe2Q\xc8\xfc\x9a\xdd\xd4ƪ\xf23\x18U\xeb\f\xde\xc3FHa\x85\x92\x17%X\x9es˯/\x18\xe3R*\xcb\xf1\xb3\xc1?\x19˔\xb4Z\x15\x05\xe8\xc5\x03\xc8\xe5c\xbd\x86u-\x8a\x1c4\x01\x0f]\xef~X\xbe\xfd\xcb\xf2\x87\v\xc6$/ᚙl\vy]\x80Y\xee\xa0\x00\xad\x96B]\x98\n2\x04\xfa\xa0U]]\xb3\xf6\a\xd7\xc8w落\xf3\xed\xe9S!\x8c\xfd\x9f\xde\xe7\x8f\xc2X\xfa\xa9*j͋N\x7f\xf4\xd5\b\xf9P\x17\\\xb7\xdf/\x183\x99\xaa\xe0\x9a\xfd\x8c]U<\x83\xfc\x821\x8f?u\xbd`<ω\"\xbc\xb8\xd5BZ\xd07\xaa\xa8\xcb@\x89\x05\xcb\xc1dZT\x96F|g\xb9\xad\rS\x1bf\xb7\xd0\xed\a˯F\xc9[n\xb7\xd7li\xa8\u07b2\xdar\x13~u$r\x00\xfc'\xbbG܌\xd5B>\x8c\xf5\xf6\x8e\xddh%\x19|\xad4\x18D\x99\xe5\xc4@\xf9\xc0\x9e\xb6 \x99ULגP\xf9O\x9e=\xd6\xd5\b\"\x15d\xcb\x01\x9e\x1e\x93\xfe\xc7)\\\xee\xb7\xc0\nn,\xb3\xa2\x04\xc6}\x87\xec\x89\x1b\xc2a\xa34\xb3[a\xa6i\x82@z\xd8:t>\x0e?;\x84rn\xc1\xa3\xd3\x01\x15\x84w\x99i \xb9\xbd\x17%\x18\xcb\xcb>\xccw\x0f\x90\x00\x8cHT\xf1ڐp\xb4\xado\xbb\x9f\x1c\x80\xb5R\x05py\xd1Vڽu\xb2\x97m\xa1\xe4\u05fe\xb2\xaa@\xbe\xbb]}\xf9\xf7\xbb\xdeg֧\xe8\xff-\x9a\xef\xac\xe1\x06\x13\x86q\xf6\x85f\t\xd3~\xda2\xbb\xe5\x96i@1\x00i\xb1F\xa5a\x11H\x9d3\xa5;\xa0*\xd0B\xe5\"\v,\xa2\xc6f\xab\xea\"gk@n-\x9bڕV\x15h+\xc2Y-;\xf0\xa8\x81\x19\xe2\xf1\x93\xd2\xc0\x84ܨk\xb6\xb5\xb62\xd7o\xde<\b\x1b\x94n\xa6ʲ\x96\xc2\xeeߐ\xfe\x14\xeb\xda*m\xde䰃\xe2\x8d\x11\x0f\v\xae\xb3\xad\xb0\x90\xd9Z\xc3\x1b^\x89\x05\rD\x92\xe2]\x96\xf9\xbf\x05~\x9b^\xb7\a3\xd3\x15R\x993\u0603\xba\xd4I\x97\x03\xe5\x86\xd8r\x01?!\xe9>\x7f\xb8\xbb\xefJ\x9e0\x9e)\x1d\x01\x8c\xf1\a\xa9)\xe4\x06\xbc.\xd8hU\x12L\x90y\xa5\x84\xb4\xf4GV\b\x90\x96\x99z]\n\x8bb\xf0[\r\xc6\"\xeb\x86`o\xc80\xa1\xd0\xd6\x15\xce\xdd|Xa%\xd9\r/\xa1\xb8\xe1\x06^\x99W\xc8\x15\xb3@&$q\xabkn\x87\x95\x1dy;?\x04\x9b\x19am\xd0\x15w\x15d\xbd\xa9\x86\xed\xc4FdnB\xa1JnT\xc9@-\xbb2>\xfb\xe9\x17\xd2}ï\x03<\x9c\x82\f\xbd\x82A\xa3d\xb7\xc4\xfc\xd66\xa2\xc89hLi&\x95=\x80y\xa8Z;\x94\xf0P&09\x10vv\xa0RS,\xe9\b\x90ֶ\x0e\xe5+\xcaj\xc2\xfbQT\xab\xb2\x84\\p\v\xc5\xfe$\xf4\xfb \xc6Ȭ\xa8\x1f\xb6vz^lzD\xcfk`\xa2Ӟ&\xe3_C\x8dCk\xfcW\xb2\xecdD\x1dM\xba\xc0j\xd9\xf2pЏ\x84\xa7C\xd20\xb6\xda0\xabQ\xe7z\xec\x9eDQ\xe0LF\x8c+\xc8{\xa8Ż\x13\x1b&l\x18͚\x13\x06\x92-\x9d\x17\xb5l}\x86\xc6\xfe#\x82\x03\xecH\xed\xbb\xfe\xd1S\xe1\x96I\xf8j\xdbZ8\xec\xc8\b6\xbc0\x83!x\x854k\x18Wl]\xdb\xd30\x80\xb2\xb2\xfb+\xd7v\xa3\x8aB=1C\xca\x16\x8d\xe0F<\xd4\xdaM\xf6?\xe6\xb0\xe1ua\xaf\x1d\xce\x7f\x8aI\xeb\xf84\xb3PVh2O\x91\xd3{\xdf\x16\a\x8c\xb3%ob\x8c\xe0&\a?Dy\xf7c\x04\x88r^l\xa5\xd5N\xe4ޜ\x1f\xa8+vTeaɌ\xb8\x93\xbc2[eQ\"Tm\xc7j\xa5\x8c\n\xcb\xcd\xddj\x00\xad3\t\x11]r\x85IN\xadbO\\Xҹ7w+\xf6\x05c\b\b\xad\x99\x9bl\xcc\xd6Z\xa2\x9d\x8b\xf4\xf7\x19x\xbe\xbfW\xbf\x18`yM&:\xb8\xb7Wl\r\x1b\xb4g\x1a\x10\x06\xfe\x04Z\xa3~7\x84\x84\xaa\x0f\\\xa6\x86=\x8e%(\x1b\xde\xe2\v\xc3\xde\xfe\xc0J!k;*uG\x15\x1bQ\x8f[^\xaa\x1d\xe8\xe7\x10\xf7=\xb7\xfc'\x042\xa0)\x02g\x04\xdd\v\f\xd1w\xbd\xa7\x1f\xd7\x11M\xec\xcajӁ*\f\xbb\xbcDmp\xe9B\xce\xcb+\a\xa1\x16\x85]\b\xd9\xed'\xa8&\xec\xe94\x828\xfa:\xa6\x9b{\xf5\xa3q\"\xff,\xfaD`\x8e\u0601J\xe5lG\xf5\xd8F\x14\xc0\xcc\xdeX(\x83\xd6j=\xffN83,\xe4+\x14\x85\ac\x90\xde~P\xe3\x04\x91uQ\xf0u\x01פ\xe4\x8f\xd0l\\ߌ\x11\xed3\x18+\xb2s\x92\xccA\x1c!\x98\xf6?\xf4(C\xa1\x03\x7f\x04\xc6#\xe0==1N)\x8a\x0e\xd1\xfbԺ\x88\"Wi\xc8Љ\xbd\xf6α\x80\x82\x1cr\xa9X\xa1\xe4\x03h\x87Fc\xacPY\x02Jh\xce\xd0\xef\xd4hb\x84d\x9b\x1a]\xd2%C5\x11\x15\x12!\x8d\x05\x1e\x91\xe630\x0f\xbefE\x9dC~S\xd4Ƃ\xbe\xcbT\x05yXe\x1aUͩL\xfcp\x14\xb2\x0f`\n\x91\x012\"s\x95\x16\xb4\xca\x13\x93\xed6\x96\xd9W\xe0\x16\x9d\x90\xd7~\bm\x902\xa9\\\fXlx\xf9\xe7\xcb+\x12\x81~\xef\xfd~\f\xe3\x1a\x1a2\xcdR\xced\xf2\xc7[\b\ve\x84\xba\x93Jj\x06߹\xd6|\x7f\x84\xeb\xcdj\xda\v\xf0=\x06{\xc0y\x19\xaa}#\xde\x0f\xfb\xffW\xe4\xfey\xf9mhՙ\v\x89|.\x84\xb1=6\x1b\xb7\x8c\x85d\x1d\x8b!=\x81\xa4\x83\x89jr\x8a\xab\xff \xc4<\xeb܉M\x96F6\xfd\x04\xf8\xa7\xa2\xe4V\xa9\xc7\x14\xea\xfd7\xd6kװXF;#l\r[\xbe\x13J\x9b\xe1:)|\x85\xac\xb6Q\xcd\xc2-\xcb\xc5f\x03\x1aa\xd1:\x7f\xb3-p\x8cX\xc7\xe3\x17\xd6QY\xd1\n\x83q\xb5LG\x96\x125bC\xa1\b5\n\xd5y8\x18[\x90\x03\x91\x8b\x9d\xc8k^\x90/\xc1e\xe6\xc6\xc7\x1b\xfcbZmB \x0e\xf0\x8fJ\xb5+Ρ\t\x83D&\xf6\x96\xbd\x94\x04t\xf2K\f\x8e\x0e\xab\xc6)\x11\xd6\x12\x8e\xf6\x8d\xcc\xd4u\x01\xc6w\x97\x93\x9f\xdc꤫\x96Yn\x91\xa1\xe0k(\x98\x81\x022\xabt\x9cB)r\xe0J\xaaҍ\x10wD\xcb\xf6ív0\x13`\x19Ÿ[\x91m\x9d\xfb\x8a\x82F\xb0X\xae\xc0в\b\xaf\xaa\"b\xba\xda2)\x1c\xbe\xb3)\xbdі\x04\r2\x84\x1b\xd3%mI\xd4\xcfm\x19%{;7\xfbT\x1f_\xe8\x1f\xc5\xf7_\x89\xe8\xc1\xea\x9c(\xec\x13\x9a\x84цA\xf2|\x88\x92\x1e).\xc0,;\xcbs\u0086\xaf)\f\xed\xf9\x8f\a{)\aD\xf9}\xf1\xee\xb4\t3\x83u\x93s\xeae\x19\xd7t\xf3O\xc272Yw\xdeb\xcd\xe2\xd9\xc7n\xcb+\xda\x16\xf0\fɯ\xd8F\x14\x16ȩ\x9aB\x94\xcd\xe0\xdc9\t\x94j\x81\x19\xed\x12\xdbl\xfb\xa1\xd9|\xed,Q\xa3v\xc1\xbfS\xa4\xf5\x14\x1c\x19\x1d\xd8(K>\xcc\aNF\xf7Ƶ\x0es\xcc\x03s\xe1\x96~\xa8I\xe7\xcc\xf1:\x1aQ\xfeGsmJ!W\xd4\x11{\xfb\x82\xee\x90\xd7\xe2\xb1\xfc\xa8\xb1r\xba\x93~\x13:k\xb9\xd7|\xf0Iu\x8a6~4\xf4\x98{\xb8'B\u07b5T\xb6\xb3\x8c3Ӊ\xaeT\xfe\a\xc36B\x1b\xdbE\xc3\x1cɬ\x1a\x05uB\xe8)?h}r\xe4\xf9ɵ\xee,(nՓϜ\x9e\x13o\a\x92n\xf9\x0e|\xea*\xc8LՒ\x96\xc2P\x0f`73 :\xd68+\x90h\xef:\x8de]\xa6\x13dA\x92$\xe4\xe4\xbaY\xb7ɏ\\\xa4\xad[\xb1\xd3\xd8j\x8f%q\x8e\x95\xd3\xe7Q\xc8\xf0\xec\xe6ӗ\xfc\xab(\xeb\x92\xf1\x12yHn\x87(\xa1I\xa9w\xecn\xf2>\xb1\x05\x19-\xabp\x96U\x05X\xf0y\x9b3\xf0Ȕ4\"\x87\xc6\xf4{\x11P\x92q\xb6ᢨ\xf5\f\xad:\x9b\xe4s\x830\xafM\xce\x1fY\xa5#\xb2 \x12%\xae\xb3\xcf\xf0\x82\xa75~\xa5\xe7\xf9\xb1)\x0e\xa3\x86\xf9\xfeb\xa5\x85r\xa7\x01\xce\xef2\xfa\xbcc.\xf7\xdf}\xc6\xef>\xe3w\x9fqNG\xdf}Ɖ\xf2\xddg\xfc\xee3\x1e/\xdf}Ɣ\xf2\xddg\x9c\x89ȷ\xf2\x19S0\\\xd0\x1a\xe7\x91\nIX%\xa6BL\xa1=їO\xfa\xf1g5Β˼\x1a\a9r\x8a'r\xfc\"\xe6u\xb4ƫIn\xc6\x19\x18\xe6\x8e;F\x99\xe00\x9f\xe1\xf4L@\xe0\xfc\xa7gVG!\x9f\xf1\xf4\x8c\x1fBZ\x84q\xd2ٙ@\xa4\xf9\xa7'\xae|\x12Q\t\xaaA\xfe¶\xaa\x8e\x9cژ mB\x16m\x1aAzI\xb5>1\x02,߽]\xf6\x7f\xb1ʧز'a\xb7\x11`t!\x05\xcfs\x8c\v:\az\xbc\x1e\bw%\r\x852\x02Li&E\xe1$6@H\xb1\xd3+\x9fQ\x01y\xb8GH\x98\xf6>\xb6\xab~ֽ;\xf9\xcc3˸\x19\xd1u\xb1\xc5\x05Zu\xea\xcd$?\xe1Z\xc0]T\x87\xd3\xf1S\xe5\x965Ov\xf8\xa6\x17\xdf\xd23\x88\xe7\xe6\r7i\x9e\xd3q\xc73\xb2\x85\xcfz\xa6\xeb\x9b\xe5\x03\x9f\x96\x05\x9c\xba\xb4\x9a\x90\xf1\x9b\x9e\xe7\x9b\xc2VWҳ{\x93C\xfb\xd4L\u07b9K'/\x9a\xb5\xfb2\xb9\xba\xc94K\xcb˝K\xb1W\xc9\xc1}\xe5\xcc\xdb\xd7˷\x9d\x91e{\xfe\xe3:\xe9\x9b\x00'\xa7\x85\xa6\xad'\x1dϔMʏMZsJ\x19\xf0ICM\xca{\x9d\x9b\xed\x9a\xc4\xc9\xf4\xe9\xfa\xaa\xf9\xac\xaf\x9a\xc5\xfa\xfa\xb9\xab\x93\xd26Yanv\xea\xf8\xf5\x8c\xa1L;\x00ŷ\x10\xce\xe7\x92I\xe9^L\xf1\xac\x80\xf9\xd3\x00\x16\nKpS_1\x80)\xeb\u008a\xaaho\x92\x8bE\xca[\xd87\xb7,\xfd\xaa\xe8l\xbf\xbfc\xec\xd3\xe7F◃p\x8c\x1b\xf6\x04\x18\x9f\xc4\xe6\xe6\x01\x152w\x83i\xa6\x16\x80\xb6\x11g\xb9\xbfF\xca_{z\xe5\xa6\v]c@\x16\xb6\x8c\xadQry\xfc\x8e\xb2\xa3\x06,U\x8f\x1dx\xe6.ޠo\xbfՠ\xf7\x8cnLk|\xb3\xf64\xac\x9f\xe8\x06#\xea\xa0~\xbc:<\xb6\xd9s\x10\xe0\xb4ꁽ\x93\xce#\x18\xe2\xe4\xc2IӍDQ\xa9b\x9c\x16\xed'\x02B\xaa\x06B\xa4i\x8a\xf3?\xe7x\xe8K\x84w\xe7\b\xf0\x92<\xa0y\xde\xeb7<\xf6y\xeaq\xcf\xf4,\x9a\xa4\xe3\x9d/\x11\xee\xcd\t\xf8f\xf9\xab\xe9\xc77\xe7\uf63f\xf0q͗:\xa69\x83z\xa9\xc72\xe7\xd3\ue54ea\xbe\xfa\xf1\xcb\xd7\xee\xf8-\x8e9&H`B\x95\xf9\xc7\x19\x9f\xbd\x97\xa6t\x0ezr\xbfr\x8e\xd4N\xcakj,\xd7Gl\xb0!\x17\xee\xc1\xc5Z\xbd\x18\x80̒\x7f\x82\x80\x9e\x9b8\xb6\x7f\x8f\x92\xd9\xf1\x88z\x1b\xaa\xad\xbb\xd6w\x88\xfd\xfe\x91\xdbs5Pq4\x00\x14\xb8QNY\xd4U\xf8\xc0\xb3\xed\xa0\x87-7l\xa3t\xc9-\xbbl6\x89\u07b8\x0e\xf0\xef\xcb%c?\xaa&ɨ{ћ\x11eU\xec1\x12c\x97\xdd\x06ϓ\x92\xa8t\x86\x9eoU!\xb2\x88\xcf9z!\xa0kppK\x12]Y\x98u\xd2\\b\x81\x0f6\x17\xe1\xba\xc8\xfee\xd2\xee&\xfa\x13\xd7Jx%\xfe\x8b\x1e\x83:êۻ\xdb\x15\xc1\nbD\xafL5\x99\x95\r\xcb׀.C;\xf6c\xfad\xb5\xe9A\xed'7w\x9fـܽ\xa9\x12\xdc\x16\xaf\x9a3\x85Z\xebv\xe5p9\xd6\x13\xca\x17\x97{\xa6\xfc\xa3\x19B狊k\xbbwYPW=<\x82]\x9fZ5;j\xad\x0eߌ\xe9\x96\x1e\xd9\xc3s1\xb4\x05\xbf\xaf\xfaY\x0fCz>\a\xa7\xe3\xc7\xc1'\x0f\x82\xbf\x00N\xc7]\xa8\x05Q1\xf2S4u\xf3\xec+\x96ƿ-\xf0\x93\xda\xc1\xfb\xe8\xcae\xffݘA\x93\x91\x9c\xca\x00\x95\xaeǏP\xb0M\xa4\xa4\xcbɟ\xa7\xf6\xe2I\x92\x01\x15\x7f\xb9\xf9s\x16'\xef\xfa\xa0ƟR\xa1\xbb\xdfC\xa71\xaf\x8a\x1e\xa9ڳ\xdb/\x14\xb76\xaa\xd4O}\x1f\xb7\x86\xe5ɐn\x10\x81%\xe4\xd1\xd7e\xceEF\xab4\x7f\x80\x8fʽ\n\x94\"&\xfd\x16\xbd7\xa3\xbc\xe7\x16\x12\xcd\xfd$\x8c)z?\xb6!\xc0\xf6`\xc9\xc1\x13\x05\x88퉏0X[i\x98uU(\x9e\x83\xbe\xa1\xe7_\x12F\xfcK\xaf\xc1\xc0\x1d\xe8?\"\xe3\xedfd<\xa1\xe7\x17̒A\x8f\xae(\xa0\xf8Q\x14`\x1c≦\xe1\xf6\xb0ec)\xear\xed<\xd5\r\xfe\xd8tr\xc42\xbb\xa1\xd2\x06C\x05\x1a\xfdD\xb7\x15Q\x9b \xf9lj\xc1\x1a>\ni\xe1\x01\xc6c\xe8\t\x9b\xb0\xeb\xbd!\x13fO\x8a\"\xfc2\u07b2\xe3Lw\xe61y\xbfqu\x17\x83ōQ\x99 \xff\xfbIX\x7fc\xe3\xcb]\x13~,\x94:B\xc7\xda\xc0\xa7'\t\xfas\xd0\xd5f%co\xb3L\xeb\x89_\x0e\xa0E\xdfd\xb1\n\xfb\x1e\x811\x00\xc0T\xd8\x112\ued5f\xb0\x11%L\xf3\x80\xd9!='&[\xdc&\x8c\xbb6\x8b\xf1\xf7\x96\x16ͻP\x17\t\xe4vo\x1c\xf5\x01\x8f?[\xe7\x1eC\xcaxek\x1d\xf4P\xad\xe9\"u\x04\x02\xee\x9e\xf1\xd3\x1e\xaek\xdf3;\x85\xc1\xed\x83b\xedJ\xfd䓧#p\x9a\xa7\xe7\xa2\xefX\xb9\xd8\xd3=I\xba@\xf8\xa7\xf1xt\xc6 \xcew\xee}\xb2\t\"|lk\x8e\r\xb8\x19\x06\x0eٿx\xf6\xaa#\xa1{\xf5'\xc6p\x8bu\x9a\x83\xac^\x8e\xa8a\xb8\x8f\xff.Ƅ\xf1ӎ\v\xf63\x1cƶ\v\xf6A\xe2 \x0e\t\xe0\x8e4BN\x9b\x10\xa4\x1d\xe7\fq״\xa2\xf3\xa4#\x1arZl\xbf\f`\f\x92\xd5\xe9a\xa7\xa6\x8a;Pj\xd8\x1fŘ\xdfF{K\x19\x0e\xf4O\a\xbfF5\xf8Q\xed\x1d\xd3ܣj\xe4\xe0#=v\x97w$\xc7\xfb\xb3\xdd/\xf5\xba}3\x81\xfd\xed\xef\x17\xff\x1f\x00\x00\xff\xff\x87\x0e\x97T\"{\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xbcV\xcfo\xeb6\f\xbe\xe7\xaf \xb0\xeb\xec\xbcb;\f\xb9\r\xdd\x0eŶ\x87\xa2y\xe8]\x91\x99\x84\xab,y$\x95.\xc3\xfe\xf8A\x92ݦ\xb6\xb2\xf6\xed0\xdd,\x89\x1f?~\xfc!7M\xb32\x03=\"\v\x05\xbf\x013\x10\xfe\xa9\xe8ӗ\xb4O?HKa}\xbaY=\x91\xef6p\x1bEC\xff\x80\x12\"[\xfc\t\xf7\xe4I)\xf8U\x8fj:\xa3f\xb3\x020\xde\a5i[\xd2'\x80\r^98\x87\xdc\x1cзOq\x87\xbbH\xaeC\xce\xe0\x93\xebӧ\xf6\xe6\xfb\xf6\xd3\n\xc0\x9b\x1e7 \xc8\xe9L\x8dFa\xfc#\xa2\xa8\xb4'tȡ\xa5\xb0\x92\x01m\xc2?p\x88\xc3\x06^\x0f\x8a\xfd\xe8\xbb\xf0\xdef\xa8m\x86z(P\xf9ԑ\xe8/\xd7n\xfcJ\xe3\xad\xc1E6\xaeN(_\x90c`\xfd\xfc\xea\xb4\x01\x11.'\xe4\x0f\xd1\x19\xae\x1a\xaf\x00Ć\x017\x90m\ac\xb1[\x01\x8c\x82d\xacf\xd4\xe2tS\xe0\xec\x11{S\x9c\x00\x84\x01\xfd\x8f\xf7w\x8f\xdfm\xdfl\x03t(\x96i\xd0,\xeb\xdf\xcd\xcb>\xd4\xc2\x04\x1200R\x02\r`\xacE\x11\xb0\x91\x19\xbdB\xa1\f\xe4\xf7\x81\xfb\x9cV0\xbb\x10\xf5\x02U\x8f\b\x8fY\xff1\xcc\xf6\xe5p\xe00 +MҔuQq\x17\xbb\xffF<\xad\x14k\xb1\x82.\x95\x1eJ\xf6<\xea\x85\xdd(\x0f\x84=\xe8\x91\x04\x18\aFA_\x8a1m\x1b\x0fa\xf7;Zmg\xd0E\x17I\x99\x8c\xaeK\x15{BV`\xb4\xe1\xe0\xe9\xaf\x17lI\x02%\xa7\xceh\xd6\xce+\xb27\x0eN\xc6E\xfc\x16\x8c\xeffȽ9\x03c\xf2\t\xd1_\xe0e\x03\x99\xf3\xf8-0f\xa97pT\x1dd\xb3^\x1fH\xa7>\xb4\xa1\xef\xa3'=\xafsK\xd1.j`YwxB\xb7\x16:4\x86\xed\x91\x14\xadFƵ\x19\xa8Ɂ\xf8܋m\xdf}\xc3c\xe7\xca\x1b\xb7zN5(\xca\xe4\x0f\x17\a\xb9u\xbe\"=\xa9\x91J1\x15\xa8\x12\xe2k\x16\xd2V\x92\xee\xe1\xe7\xed\x17\x98\x98\x94L\x95\xa4\xbc^]\xe82\xe5'\xa9I~\x8f\\\xec\xf6\x1c\xfa\x8c\x89\xbe\x1b\x02y\xcd\x1f\xd6Q.ܸ\xebIe*픺9\xecm\x9eU\xb0C\x88Cg\x14\xbb\xf9\x85;\x0f\xb7\xa6Gwk\x04\xff\xe7\\\xa5\xacH\x93\x92\xf0\xa1l]N\xe0\xf9\xe5\"\xef\xc5\xc14;\xaf\xa4\xb62%\xb6\x03ڔܤo\xb2\xa6=\xd9\xd2V\xfb\xc0`j&퇘d\x8b\xaf\xe42N\xa4\xc2f6\xa7R\x97\xbfϦ>\x96\xf2\xc9\xd1\b\xce7g\x9c\xeeӝ\xb9\x7fG{\xb4g\xeb\xb0@\x94)\x84\xefSI\v}\xec\x97>\x1b\xf8\x8cϕ\xdd{\x0eiB\xe3|\xd4\\\xad\r(\x8f\u0601\xfc\"\xdcyd\xe5V~\x18\x97#?\a4\x02\x01G\xefSK\a\xbf\x80\xac\xbc\b\x8b;\xa4\xd8W\xd8T\xf9\xdc\xf9}\xc8\x7f\x11&96Z\xda\t\xc7d\x8f~\n\xaf\n\xe0\xf5\\\x97\xb5\x9cs\x1f\x12\xb4\xac\xfc<\xff7\xe34\x97\x88\xb1\xea\xbbɬ\xaa\a\xc9cM\xf1z\x7f\x8d,\xa3sf\xe7p\x03\xcaqi]l\r\xb39ϫf*\xb5/ԣ\xa8\xe9\x87w\nh\xf1*\xa4u\xbf@I\xcd\xf3|D\x7f\xadE\xe0\xd9ȫ\xf3\n\xe4\xee|\xcd\xf4\xf6\xe5os\xd9g\xa5\x9e7\x90f}\xa3T\x11\xf2CJUSZ\xea\xbc\xfa[\xb3Pi{yw\x1a$o\xfae\xfa\xabY\xc6p\x95B\xb5\x02\x16\x9b\x19\xbe\xbb\bO4\xb09L\x01\xff\x13\x00\x00\xff\xff\xd9Ո\xaf\x10\f\x00\x00"), []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xbcVM\x8f\x1b7\x12\xbd\xebW\x14\xec\xc3^\xa6\xd56\xbcXxuY\x18\xe3=\x18\xb1\xe3\x81\xe5\xcc\xd9\x14Y-U\xc4&;\xac\xa2d\x05\xf9\xf1\x01\xc9\ue65eVk<\x13\x04\xe9\x8b \xb2\xf8X\x1f\xaf^\xb1\xaa\xaa\x85\xea\xe8\x16\x03\x93w+P\x1d\xe1wA\x97\xfe\xf1r\xff\x96\x97\xe4\xeb\xc3\xebŞ\x9cY\xc1ud\xf1\xed\x17d\x1f\x83\xc6\xf7ؐ#!\xef\x16-\x8a2J\xd4j\x01\xa0\x9c\xf3\xa2\xd22\xa7\xbf\x00\xda;\t\xdeZ\f\xd5\x16\xddr\x1f7\xb8\x89d\r\x86\f>\\}x\xb5|\xfd\xef\xe5\xab\x05\x80S-\xae\xe0\xe0ml\x91\x9d\xeax\xe7\xc5z]0\x97\a\xb4\x18\xfc\x92\xfc\x82;\xd4\xe9\x8am\xf0\xb1[\xc1\xfdF\x81\xe8\xaf/\xae\xdff\xb4u\x8f\xf6\xb1G\xcb\x06\x96X~z\xc4\xe8#\xb1d\xc3\xceƠ\xecEϲ\r\xef|\x90\x9f\xefo\xaf\xe0\xc0\xb6\xec\x90\xdbF\xab¥\xf3\v\x00־\xc3\x15\xe4\xe3\x9d\xd2h\x16\x00}~2\\5\xa4\xe6uA\xd4;lU\xb9\a\xc0w\xe8\xde\xdd|\xb8}\xb3~\xb0\f`\x90u\xa0Nr\x96\xe7C\x04bP0x\x02\xc7\x1d\x06\x84ۜO`\xf1\x01\xb9w\xfa\x0e\x14`\xf0\x9f\x97w\x8b]\xf0\x1d\x06\xa1!\xf8\xf2\x8d\xf85Z\x9d\xf8\xf5G\xf5`\x0f \x85RN\x81IDC\x06\xd9\xe1\x90\x0e4}\xf4\xe0\x1b\x90\x1d1\x04\xec\x022\xbaB\xbd\xb4\xac\x1c\xf8ͯ\xa8e9\x81^cH0\xa9Vњ\xc4\xcf\x03\x06\x81\x80\xdao\x1d\xfd~\x87\xcd >_j\x95 \v\x90\x13\fNY8(\x1b\xf1\n\x943\x13\xe4V\x9d `\xba\x13\xa2\x1b\xe1\xe5\x03<\xf5\xe3\x93\x0f\b\xe4\x1a\xbf\x82\x9dHǫ\xbaޒ\f]\xa7}\xdbFGr\xaas\x03\xd1&\x8a\x0f\\\x1b<\xa0\xad\x99\xb6\x95\nzG\x82Zb\xc0ZuT\xe5@\\\xe9\x92ּ\f}\x9f\xf2\x83k\xe5\x94(\xc6\x12\xc8mG\x1b\xb9K\x9eQ\x9e\xd40\x855\x05\xaa\x84x_\x85\xb4\x94R\xf7\xe5\xff\xeb\xaf0xR*U\x8aroz\x96\x97\xa1>)\x9b\xe4\x1a\f\xe5\\\x13|\x9b1љΓ\x93\xfcG[B'\xc0qӒ$\x1a\xfc\x16\x91%\x95n\n{\x9d\x95\t6\b\xb13J\xd0L\r>8\xb8V-\xdak\xc5\xf8\x0f\xd7*U\x85\xabT\x84'Uk\xac\xb7S\xe3\x92\xdeq\xa3\xf62y\xa1\xb4\xf3\x8a\xb0\xeeP?h\xbc\x84B\r\xf5\n\xd1\xf80I\x90\x1a\xf4b\x1e\xefa>\xe7\x85\x02ʰhh;]\x05P\xc6\xe4Q\xa3\xec\xcdų\x8f$l&\xee\xeb|S\xe2p\xe3C\xf2\xe8@\x06C5\xc4\xd9{\x12C\x1f0\xa15gL\xbd\x98\xf3\x1cJ@\x93J\xac칣\x0f=\xb93̳R\x91+)\xbf\a\xc8\xcc\vm\xaf\xd5N\xd0\x19\x9cjO\xf6\xc6gz3\x1a8\x92\xecJ\xdf\xd8\xf1\xb0{Z\x15ҷ\xc7\xd3\xdc\xf2\xc4\xf7\xaf;L\x96E\x86\x11\x18u@I~0\xda\xd4\xe5\xa9i\x97\x00\x9f\"\xe7\xceS\xb3\x88\x90ԃ\xccpz\x8f\xa7\xf3DÏ\x8aۿ\x1b.\xb8ܨhe\x05/^\xfc8\xa43\xad\x1b\xbe4\x97\x87@\x036\x18Н͖\xe1\xfb\x9a\x15+\x91&1\f\x9b\x06\xb5\xd0\x01\xed)+\x14\x054W\xb0\x89\x02&b\xae\x9a\xd2\xfb\xa3\n\x86A\xfb\xb6SB\x1b\xb2$' \xbe\x80\xaf\xac\xf5G4}ű\xed䴄\x0f\x8eE9\x8d|7\x15S\xc6\n\x15\x94+V\xbdP\xe7\t\xaf\x02^\x84o=\vh\f\x89\x8e\xf6\x04\xc7\xe0\xdd\xf6b\xb0\x9f\xdf\x7f^\xc1;c\xc0\xcb\x0eC\"`\x13\xed\xd03\xa3\a\xc0U\x9e3W\x10\xc9\xfc\xef\x02\u058cЦ\x17cp(\x98\xb5\xd6x\xcdIf5vµ?`8\x10\x1e\xeb\xa3\x0f{r\xdb*\x05[\x95~\xe4:?\x03\xeb\x97\xf9\xe7Q\xdf\xdf\a\xdf\xc1\xb7\xd1\xd3t\xd5S\xe6[z\f\xb9\xc9\x1b\x16\x8cGv\xff\x12p\x88\x06H\xc6#a\x177K\xedۑ\xd3\x15Ӗ\xeb\x11vM\xcc\x11\xb9~\xf3\xf6\xbf\xff\xf9KD\xf7]\x91\xc2'\xf4\xe7:\xcb\xd9)E\x91K\x93\xb8\xbb.m\xe6\x03\xa4\x89\x99\xba\xb7\xed۳\b\xfe\x9c\xb2\f>m\xbc\xb7\xa8εd`\xf5\xb9KU\xba\xe19\xba\t\xf0\xbd\x1ae\xafU]U\xac\x95\xf8\x96\xf4\xc4z\x10\xee\x1fh\xecMo\x96\xba1\xe5`86\xf4sy\xde\xe6ǮڞM\xffG*2\x1fxuw\xc1\x93&\xb4(\x89\xfc\xfc\x19\x9d\x8f\xf5\x96\x9b~N\xeb\x18B~\x10\xe5\xcdI\x1c\xe9U\xfc\xf7\xcc\xe9n\xa7xFl\x9f\xe0\xf5M:9\x94\xc1R\x83\xfa\xa4-\x16@\xf0\xcd\f\xf7\x9e\xe5r\xfa\xd0\xc5v\x8e\x88\xef\x0e\x8a\xac\xda\xd8sի\xe0\x17\xa7.\xee^,\xfel=\xcf\x169\xbdg\xcd\n$Ăݳ\xac_\xf93\x00\x00\xff\xff\x1d6\xacA\x84\x0f\x00\x00"), } diff --git a/pkg/apis/velero/v1/backup_types.go b/pkg/apis/velero/v1/backup_types.go index 858894dc72..0da3cf7c1b 100644 --- a/pkg/apis/velero/v1/backup_types.go +++ b/pkg/apis/velero/v1/backup_types.go @@ -87,7 +87,9 @@ type BackupSpec struct { // LabelSelector is a metav1.LabelSelector to filter with // when adding individual objects to the backup. If empty - // or nil, all objects are included. Optional. + // or nil, all objects are included. + // If matched object is Namespace, the namespace will act as IncludedNamespaces, + // and all resources in the namespace are included in the backup. Optional. // +optional // +nullable LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"` diff --git a/pkg/backup/backup_test.go b/pkg/backup/backup_test.go index 425fa827c5..504b9e542d 100644 --- a/pkg/backup/backup_test.go +++ b/pkg/backup/backup_test.go @@ -269,6 +269,41 @@ func TestBackupOldResourceFiltering(t *testing.T) { "resources/deployments.apps/v1-preferredversion/namespaces/foo/bar.json", }, }, + { + name: "included namespaces via label filter backs up all resources in those namespaces and other includedNamespaces resources containing label", + backup: defaultBackup(). + IncludedNamespaces("moo"). + LabelSelector(&metav1.LabelSelector{MatchLabels: map[string]string{"backup-ns": "true"}}). + Result(), + apiResources: []*test.APIResource{ + test.Namespaces( + builder.ForNamespace("foo").ObjectMeta(builder.WithLabels("backup-ns", "true")).Result(), + builder.ForNamespace("moo").Result(), + ), + test.Pods( + builder.ForPod("foo", "bar").Result(), + builder.ForPod("moo", "mar").ObjectMeta(builder.WithLabels("backup-ns", "true")).Result(), + builder.ForPod("moo", "unlabeled-not-included").Result(), + builder.ForPod("zoo", "raz").Result(), + ), + test.Deployments( + builder.ForDeployment("foo", "bar").Result(), + builder.ForDeployment("zoo", "raz").Result(), + ), + }, + want: []string{ + "resources/deployments.apps/namespaces/foo/bar.json", + "resources/deployments.apps/v1-preferredversion/namespaces/foo/bar.json", + "resources/pods/v1-preferredversion/namespaces/foo/bar.json", + "resources/pods/v1-preferredversion/namespaces/moo/mar.json", + "resources/pods/namespaces/foo/bar.json", + "resources/pods/namespaces/moo/mar.json", + "resources/namespaces/cluster/foo.json", + "resources/namespaces/cluster/moo.json", + "resources/namespaces/v1-preferredversion/cluster/foo.json", + "resources/namespaces/v1-preferredversion/cluster/moo.json", + }, + }, { name: "excluded namespaces filter only backs up resources not in those namespaces", backup: defaultBackup(). diff --git a/pkg/backup/item_collector.go b/pkg/backup/item_collector.go index 903b0e991f..e1dbd7728a 100644 --- a/pkg/backup/item_collector.go +++ b/pkg/backup/item_collector.go @@ -32,6 +32,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/tools/pager" "github.com/vmware-tanzu/velero/pkg/client" @@ -44,14 +45,16 @@ import ( // itemCollector collects items from the Kubernetes API according to // the backup spec and writes them to files inside dir. type itemCollector struct { - log logrus.FieldLogger - backupRequest *Request - discoveryHelper discovery.Helper - dynamicFactory client.DynamicFactory - cohabitatingResources map[string]*cohabitatingResource - dir string - pageSize int - nsTracker nsTracker + log logrus.FieldLogger + backupRequest *Request + // Namespaces that are included by the backup's labelSelector will backup all resources in that namespace even if resources are not labeled. + namespacesIncludedByLabelSelector sets.Set[string] + discoveryHelper discovery.Helper + dynamicFactory client.DynamicFactory + cohabitatingResources map[string]*cohabitatingResource + dir string + pageSize int + nsTracker nsTracker } // nsTracker is used to integrate several namespace filters together. @@ -72,32 +75,40 @@ type nsTracker struct { orLabelSelector []labels.Selector namespaceFilter *collections.IncludesExcludes logger logrus.FieldLogger - - namespaceMap map[string]bool + namespaceMap sets.Set[string] // namespaceMap is a set of namespaces tracked to include in backup + labeledNamespaces sets.Set[string] // labeledNamespaces is a subset of namespaceMap added via label selectors. } // track add the namespace into the namespaceMap. func (nt *nsTracker) track(ns string) { if nt.namespaceMap == nil { - nt.namespaceMap = make(map[string]bool) + nt.namespaceMap = make(sets.Set[string]) } + nt.namespaceMap.Insert(ns) +} - if _, ok := nt.namespaceMap[ns]; !ok { - nt.namespaceMap[ns] = true +// trackViaLabel add the namespace into the labeledNamespaces and namespacesMap. +func (nt *nsTracker) trackViaLabel(ns string) { + if nt.labeledNamespaces == nil { + nt.labeledNamespaces = make(sets.Set[string]) } + nt.labeledNamespaces.Insert(ns) + nt.track(ns) } // isTracked check whether the namespace's name exists in // namespaceMap. func (nt *nsTracker) isTracked(ns string) bool { - if nt.namespaceMap != nil { - return nt.namespaceMap[ns] - } - return false + return nt.namespaceMap.Has(ns) +} + +func (nt *nsTracker) isTrackedViaLabel(ns string) bool { + return nt.labeledNamespaces.Has(ns) } -// init initialize the namespaceMap, and add elements according to +// init initialize the namespaceMap, and add (track) elements according to // namespace include/exclude filters and the backup label selectors. +// and return only namespaces that are added to tracker. func (nt *nsTracker) init( unstructuredNSs []unstructured.Unstructured, singleLabelSelector labels.Selector, @@ -105,9 +116,6 @@ func (nt *nsTracker) init( namespaceFilter *collections.IncludesExcludes, logger logrus.FieldLogger, ) { - if nt.namespaceMap == nil { - nt.namespaceMap = make(map[string]bool) - } nt.singleLabelSelector = singleLabelSelector nt.orLabelSelector = orLabelSelector nt.namespaceFilter = namespaceFilter @@ -120,7 +128,7 @@ func (nt *nsTracker) init( namespace.GetName(), ) - nt.track(namespace.GetName()) + nt.trackViaLabel(namespace.GetName()) continue } @@ -130,7 +138,7 @@ func (nt *nsTracker) init( nt.logger.Debugf("Track namespace %s, because its labels match the backup OrLabelSelector.", namespace.GetName(), ) - nt.track(namespace.GetName()) + nt.trackViaLabel(namespace.GetName()) continue } } @@ -196,6 +204,7 @@ func (r *itemCollector) getItemsFromResourceIdentifiers( // getAllItems gets all backup-relevant items from all API groups. func (r *itemCollector) getAllItems() []*kubernetesResource { + // getItems should return all namespaces and will be filtered by nsTracker.filterNamespaces resources := r.getItems(nil) return r.nsTracker.filterNamespaces(resources) @@ -438,13 +447,33 @@ func (r *itemCollector) getResourceItems( // Namespace are filtered by namespace include/exclude filters, // backup LabelSelectors and OrLabelSelectors are checked too. if gr == kuberesource.Namespaces { - return r.collectNamespaces( + // collectNamespaces initializes the nsTracker which should only contain namespaces to backup but returns all namespaces. + namespaces, err := r.collectNamespaces( resource, gv, gr, preferredGVR, log, ) + if err != nil { + return nil, err + } + // The namespaces collected contains namespaces selected by namespace filters like include/exclude and label selector. + // Per https://github.com/vmware-tanzu/velero/issues/7492#issuecomment-1986146411 we want labelSelector included namespace to act as IncludedNamespaces so add to NamespaceIncludesExcludes string set. + r.namespacesIncludedByLabelSelector = make(sets.Set[string]) + for i := range namespaces { + if namespaces[i] != nil { + if r.nsTracker.isTrackedViaLabel(namespaces[i].name) { + // this namespace is included by the backup's label selector, not the namespace include/exclude filter + // this is a special case where we want to include this namespace in the backup and all resources in it regardless of the resource's label selector + // in other cases, if label selector is set, we only want to include resources that match the label selector + r.namespacesIncludedByLabelSelector.Insert(namespaces[i].name) + r.backupRequest.NamespaceIncludesExcludes.Includes(namespaces[i].name) + r.log.Infof("including namespace %s by labelselector\n", namespaces[i].name) + } + } + } + return namespaces, err } clusterScoped := !resource.Namespaced @@ -511,9 +540,13 @@ func (r *itemCollector) listResourceByLabelsPerNamespace( logger.WithError(err).Error("Error getting dynamic client") return nil, err } - + labeledNsSoBackupUnlabeled := false + if r.namespacesIncludedByLabelSelector.Has(namespace) { + logger.Infof("Listing all items including unlabeled in namespace %s because ns was selected by the backup's label selector and acts as IncludedNamespaces", namespace) + labeledNsSoBackupUnlabeled = true + } var orLabelSelectors []string - if r.backupRequest.Spec.OrLabelSelectors != nil { + if r.backupRequest.Spec.OrLabelSelectors != nil && !labeledNsSoBackupUnlabeled { for _, s := range r.backupRequest.Spec.OrLabelSelectors { orLabelSelectors = append(orLabelSelectors, metav1.FormatLabelSelector(s)) } @@ -539,7 +572,7 @@ func (r *itemCollector) listResourceByLabelsPerNamespace( } var labelSelector string - if selector := r.backupRequest.Spec.LabelSelector; selector != nil { + if selector := r.backupRequest.Spec.LabelSelector; selector != nil && !labeledNsSoBackupUnlabeled { labelSelector = metav1.FormatLabelSelector(selector) } @@ -592,11 +625,13 @@ func sortCoreGroup(group *metav1.APIResourceList) { } // These constants represent the relative priorities for resources in the core API group. We want to -// ensure that we process pods, then pvcs, then pvs, then anything else. This ensures that when a -// pod is backed up, we can perform a pre hook, then process pvcs and pvs (including taking a +// ensure that we process namespaces, pods, then pvcs, then pvs, then anything else. This ensures that when a +// namespaces is labeled as included, that it is processed first to act as includedNamespaces for the following resources. +// if pod is backed up, we can perform a pre hook, then process pvcs and pvs (including taking a // snapshot), then perform a post hook on the pod. const ( - pod = iota + namespaces = iota + pod pvc pv other @@ -606,6 +641,8 @@ const ( // pods, pvcs, pvs, everything else. func coreGroupResourcePriority(resource string) int { switch strings.ToLower(resource) { + case "namespaces": + return namespaces case "pods": return pod case "persistentvolumeclaims": @@ -724,6 +761,7 @@ func (r *itemCollector) listItemsForLabel( } // collectNamespaces process namespace resource according to namespace filters. +// returns a list of ALL namespaces. Filtering will happen outside of this function. func (r *itemCollector) collectNamespaces( resource metav1.APIResource, gv schema.GroupVersion, @@ -782,7 +820,8 @@ func (r *itemCollector) collectNamespaces( orSelectors = append(orSelectors, orSelector) } } - + // init initialize the namespaceMap, and add elements according to + // namespace include/exclude filters and the backup label selectors. r.nsTracker.init( unstructuredList.Items, singleSelector, @@ -808,6 +847,5 @@ func (r *itemCollector) collectNamespaces( path: path, }) } - return items, nil } diff --git a/site/content/docs/main/api-types/backup.md b/site/content/docs/main/api-types/backup.md index 1768f09341..ee0112f46a 100644 --- a/site/content/docs/main/api-types/backup.md +++ b/site/content/docs/main/api-types/backup.md @@ -93,7 +93,9 @@ spec: # all namespace-scoped resources are included. Optional. # Cannot work with include-resources, exclude-resources and include-cluster-resources. includedNamespaceScopedResources: {} - # Individual objects must match this label selector to be included in the backup. Optional. + # Individual objects must match this label selector to be included in the backup. + # If matched object is Namespace, the namespace will act as IncludedNamespaces, and all resources in the namespace are included in the backup. + # Optional. labelSelector: matchLabels: app: velero