From afe3c0da621baaa631e4d86dfad8014952742795 Mon Sep 17 00:00:00 2001 From: mtojek Date: Mon, 5 Oct 2020 14:13:48 +0200 Subject: [PATCH 1/4] Load item content every time --- code/go/internal/spec/statik.go | 2 +- code/go/internal/validator/folder_item_spec.go | 13 +++++++------ .../_dev/deploy/docker/docker-compose.yml | 3 +++ .../_dev/deploy/docker/docker-compose.yml | 3 +++ .../foo/elasticsearch/ingest_pipeline/default.yml | 4 ++++ versions/1/data_stream/spec.yml | 4 ---- 6 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 code/go/internal/validator/test/packages/good/data_stream/foo/elasticsearch/ingest_pipeline/default.yml diff --git a/code/go/internal/spec/statik.go b/code/go/internal/spec/statik.go index e74f2112d..6df9259a7 100644 --- a/code/go/internal/spec/statik.go +++ b/code/go/internal/spec/statik.go @@ -8,7 +8,7 @@ import ( func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8D\x8f1N\xc50\x10D\xfb\x9cb\x94\x06(\x02\xbd\xdbOK\xc7\x05V\xf6$Z}\xc76k\x07\x91\xdb\xa3\x18\xa3\xdf\xce\xbe\xd1\xdb\xa9\x85\xdeM\x80\x84\xa0Ms\x92x\xcb\xa91\xb5\xea\xd0\xec\xe0\x04\xf8\xff`\x02\x80\x05\x81\xd5\x9b\x96\x8bvx\xcf\xfeN\xc3-\xef%W^\xec\xaa\xdbar]\xb1j$\xd6l\x08,1\x9f\x9a6\x14\xf1w\xd9\xf8T\xa1\xa9q\x1b`\xa5}\xab\xe7s}\xe9\x0e\xa0\x9d\x85\xae\xf7G\x90d\xa7\xc3\x1c\xban\xf1\x7f\xba\xd7s\x8f\xf3\x00\xc6\x97\x1f\x0c*\x9f\xbd=K)Q}7\xbc\xfd,\xa7<`\xe3\xd7\xa1\xc606\xfe\x06\x00\x00\xff\xffPK\x07\x08\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8t\x91\xb1r\xf20\x10\x84{\x9eb\xc7\xff\xdf\x02\xbdZ2\xe9\xd2\xe5\x05\xce\xbe5\\\"K\x8e$C\xfc\xf6\x19+\x86\x81\x19Rjoo\xa5o\x95Gvn\x03\x88\xaa\x15\x8bA\xfc!\x86\xc2P\xb2C/>s\x03tWe\x03\x00[(s\x97l\\\xec\x0e\xaf\xd1+S\xf5\x88\x05\x0bG(G\x1f\xe7\x81\xa1\xa07\xcf\x8c>&\x08^b\xf7\xc9\xb4m%S\x91\x99\xce\xd6\xf1\xce[\xb3\x812\x8ft\xe8k\xe8*\x05\x19\xe8\xa0u}\x95\xfe'\xf6\x0e\xcdn\xff\xab\xee\x17\x8a\xdd<\xf8f\x9d'~M\x96\xa8\x0e%M\xc4?\x94\x88\x96\x10\xfd\x98r\xa1\xe2rb\xc0e\x11\x14\xb1\x9c\x98\xee\x1f=D\xa5\xcf\xcfX\x0f1\xf4v\x9c\x92,\xc7\n\xb7\xce\xdb\x85\xfb,\xc9\xea$C\xceb^Z\xcf\xca\xfe\x17\xa4y> 65!\x94|\x8f\xb2\x96\xffF5y\xaf{\x8d\x8c\xa3\xb7\xae^\xb5\xff\xde\xce\xf2\x8c\xfb\xfaw\x0fm\xdd\xf2o}\xfd\x04\x00\x00\xff\xffPK\x07\x083\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8l\x90\xcd\x8a\x1c1\x0c\x84\xef~\x8a\x82>d\x17\xb2;\xf7\xbe\x056\x97\x90?\x08\x04r\xd4\xd8\xeanm\xbc\xb6#\xa9g\x98\xb7\x0f\xee\x9e$d\x19\xdf\xcaBU\x9fj\x18\xc20\xe0\x89-\xaa\x1c\xd9\xe0\x0b\xc3\x1aG\x99$\x92K-\x98\xaa\xe2D*\x9b2\xd0\x89$\xd313\xce\x0b\x17$n\xb9^\xa4\xcc 4\x8a?i\xe67\xd6-\xa58\xcf\xba[\x18\xebI\"\xdf\xd9\xfdc\x18\x86\xd0\xfd\xc7\x00\x0cx\x7fb\xbd\xf8\xd2\xd7\xd7\x92X\xb1\xb02\xa6\x9as=\x1b>|\xfb\xf2\x19\x16\x17~!\xdc-\xee\xcd\xc6\xc3\xe1\xd9jy\xd8?\x1f\xab\xce\x87\xfb\xb78\xab\xb8s\x01\x19~\xbc\xfb\xf4q#V\xa6DG\xc9\xe2\x97\x00\xf8\xa5\xf1\x88z|\xe6\xe8\x01\xa0\x94\xa4\x83Q\xfe\xaa\xb5\xb1\xba\xb0\x8d\x98(\x1b\x07\xa0\xfd\xfb\x0b\x00\xf6\xe3\x8b_\x15\x90\xb6\xb2Z7\x18\xf1}\x1f\xa2\xd0\x0b\x1b\xa8\xa4\xde\xa0(b-\x93\xcc\xeb^\x80]7_a\xf4w\x1b\xc5u\xe5\xb0gM\xb4f\xbf\x19\xfd\xb4\xcf\xfe\xf0\xc1+V\xe3\xff\xa2\xccU\xca\x1c\x00\xe5_\xab(\xa7n\xf4\xf0\xf7\xa2M\\#~\x07\x00\x00\xff\xffPK\x07\x08t\xa65\x8d*\x01\x00\x00 \x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xcf\xc1J\x041\x10\x04\xd0\xfb|E\xb1\x08\xea\xc1\xdd{\xae\x82\xff\xd1$5cc6\x89\x9d\x1ea\xfe^2F6\xa7P<\xba\xba{c\x0c\x0b )\xa9k-\x92\xdfkq\x16\xef\x01\xab\xe4\xce\x05\x88\xff\xc9\x02\x00oH\xec\xd1\xb4\x0d\x1e\xf0Qs\xa2\x9dF\xb4h\xd9\xc6w\xd5m7\x19\x00\xc6,\xce\x04\xafHl\xb9\x1e\x83\xf8'\xd1$~\xc9\xc6\xe7\x0e-\xcem\xf2N\xfb\xd1\xc8\x97\xfez\x96\x01~4\x06\xacg\xcb\x8c\x8a\xdc\x19\xe6\xb4\x19\x19\xbfw5\xa6\xc7\xd2\xe3=\x19\xd7\x80\xcb\xf5\xf6go\xe3\xd8\xebq\xcf\x97\xdf\x00\x00\x00\xff\xffPK\x07\x08\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00 \x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8\x9cT\xdfo\x94@\x10~\xe7\xaf\x98\x1c&\xd5(\xd0F\x8d\x91\xb7\xc6\xd6\x1as\xb6\x8d\xfab\xfc\x91,0\xc0\x94ew\xdd\x1dzw\xff\xbd\x81=\xee\xb8\x1f\xad\xd1y!\xf3\xcd\xb7\xc37\xdf2\x84a\x10\x86p\x81.\xb7\x94\xa1\x03\xae\x11\x9c\xc1\x9cJ\xca\x05\x93VPj;\xa0F\xe4\x8d\xa8\xf0\xc4\xc1\xbb\x0f\xe7\xd7W\x97\xf3\x9b+(Ib\x10\x86A\x7f\"\x0d\x00B\xb8\xbcG\xbb\xe2\x9aT\x05\x9d*\xd0B\x8d\x16\xa1\xd4R\xea\x85\x83\x8f_n\xae\xc1\xe55\xb6\x02\x9e\xd6\xcc\xc6\xa5Ir\xe7\xb4\x8a<\x18k[%\xcf^\xc0\xc2\x123*\x10\x0e\xbe\x9d\x7f\x9a\x0f\x1a,\x8aBd$\x89W\x01\x00\xaf\x0c\xa6 \xac\x15}F\x8c\xad\xeb\x05\x8c\x05\x9d\xdda\xce\x03 \x8a\x82\xfaA\x84\xbc\xb5\xda\xa0eB\x97B)\xa4\xc3\xa1n\xb6\xe8\x90\x03\xdc\xa3u\xa4\xd5\x98\x02\x14\x83=\xa6\xef\x92\xc2\xad\xf7ad\xc5\x1b\x96\x7f\xb3cK\xaa\xda\x80F0\xa3U)\x9c\xfc\xfa~\x1a\xbd\xfd\xf9\xfcG\xbc\xfb|r\xb2\xe1\xe2R\xb4Fnu\x00D0;\x8bO\xe3W\xb35\x92\xd7BUS\xc2\x8e\xb299\x06]\x8e, 5^\xdaCbG\xff|L\\\x9c\x92&^\xfa\xf8\x9b\xa3>\x0e}\xf51\x95\xbcS\xd8\x9b\xe6b\x9bl\x87\x8a\xf7N\x1c\xf5\xdc\xc7\xa1\x9b>\"\x98\xbd\xa7%dV7\xa8\x80\xb15R0\xce\x82\x83\xb6\x8f\x89\xfb\xba2\xf8\x7f\xaaT\xd7\x1eQ\x94Y\x14\x0d\xa9*\xf2\x0dgG\x18]U\xd2\xf2H\x01U-T\x8e-*>Rm\x94^\xa8\x88\x9c\xeb\xf6\x9aJR\xcd\xa3#\xceI5\xc0\x1a\x86\xb3\xa0-\xdc~^\x13\xb2~\xbb\xbd\xd0\xfe\x1b+\x90\x05\xc9\x7f\xf1\xe0\xe1\x9b\x19\xff \x15q\xddeq\xae\xdb\x04\xa5pLy\x92\xa1`\x97\x0cj\\r\xf6\xf2\xf5\xe9\x9b\xe9@\x16\x7fwd\xb1\x98\xf6\x8c\xa6\x03\xed\xe0\xbd\xb8\x1d\xa0w#8\xec\x13\x8d\x8b\xb3\xce\xd6\x9b\xf5'\x00\x00\xff\xffPK\x07\x08\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/changelog.ymlUT\x05\x00\x01\x80Cm8l\x8f\xb1N\x031\x10D{\x7f\xc5H\xae\xcfNZ\xf7\x14i\x80\"?\xb08{\xe7U\x1c\xdb\xca\xee!\xf1\xf7(\x864\x88v5\xfbf\x9e\xf7\xce{\x9c\x8b(V\xa9\x8cK\xcf\xfb\x8d\x9b)r\xa1\xb6\xb1B\x1a\xac0\x06\xe5+m\x0c\x1d\x9ce\x95L&\xbd\x05\x9c\x0c\xa2x};\x83\xfe\x8fLlp\xde\xbb\x05\x9f|W\xe9-\xe1\x18\x0e\xe1\xb0P\x1d\x85\x8e\x0e\xcf\xaa\xe4\x80\x05\x17\xd6|\x97a3xjbB\xf5\xf9\x89\xbe\xce1/\x95\xd4$\xe3\xfdO\xe3\xdc\xe4\x00\xc0\xbe\x06'p+\xd42?\x84\xe6\xb5J\xbb&\x14\xb3\xa1)\xc6M\xac\xec\x1f!\xf7[\xe4\x1f`\xfcUX\x1e\xc08\xf6Z5\x1e\xddw\x00\x00\x00\xff\xffPK\x07\x08ms,a\xbc\x00\x00\x00$\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xce\xb1\xaa\xc30\x0c\x85\xe1=Oq\x08w\xbd\xc9\xee\xb5\xd0\xf70\xf6I18r*)C\xde\xbe\xd8\xa4T\xe3\xcf'$;\x98\xc2\x04\xc4\x9c\x8b\x97&\xb1>\x9a8\xc5-`\x8b\xd58\x01\xe9[&\x00\xf8G\xa6%-G\xe7\x01\xcfV3u\x98X\xa4\xc8\x0bNs(\xad\x9d\x9ahc\x07\xf0\xeb`\xc06\xf0\x9d$\xee\x0cC\xdfA\xf9>\x8b2\xff.\xf7\xf9Sn\x01\xf3\xb2v\xb9\xf6\x7f\x97k\xaf\xf3'\x00\x00\xff\xffPK\x07\x08T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00 \x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8l\x90OK\xc3@\x10\xc5\xef\xfb)\x1e\xcdA\x05\xb5\xf7\xdc\x04E\x10\xff\x81'\x11\x0f\xd3\xec\xa4\x99\xb2\xdd\x8d3\x93\x94|{i\x13\xf4\xa0{Z\xde\xbc7\xef\xc7TU\xa8*\xdc\xb25*\x1b6x\xc7\xb0\x9e\x1bi\xa5!\x97\x92\xd1\x16\x05!\x92\x13\xcc\x95i\x7ff\x18I\xa5\x0c\x86V8EDn%\xcbl\x96\xc4\x16\xaa*\x1cw\xd4\x01\xa8p7\xb2N\xdeI\xdeb\xc8\x91\x15\x1d+\xa3-)\x95\x83\xe1\xe1\xed\xe5\x19\xd6t\xbc'\x9cw\xee\xbd\xd5\xeb\xf5\xceJ\xbe\x9a\xc5\xeb\xa2\xdb\xf5\xc5%\x0e*\xee\x9cA\x86\xf7\x9b\xa7\xc7\x13\x952E\xdaH\x12\x9f\x02\xe0S\xcf5\xcaf\xc7\x8d\x07\x80b\xfd\xac\x0f9\xf8\xe5\xaa\x07\xfb\xb5[\xd2V\xee:\x95J\xc6\xe8\xac\x92e\xf3\xba\xb0U\x8f&\xfa\xdb\xdaDz\xf4\\~\xcbD\xa6AU\xaf;[u\x89Z\x9f\x8e\xaez5F\x92\xff\xdf\x11\xc2\x85\xfd\x90\xe1\x96\xb1\xab\xcd\x9b\xe0\x8d\xdd\xb7\xa9K\x85`\xc0\xb3Z\x11\xaa\xd3\x9f\xf9h{\x81\xa6\xff{\xb6\x15\xfe\x1cH\xf10\x1cK\xf5=\x85H\x89-\xe5\xa9\x0e\x10\xc7/\xc3\x0c0\x96\x9c\x9eL0=\xb5o\x05\x80&c}\xb7\"O\xd0\x9bn\xf0\xac#N-]`\xc7\xd6\xb1u\xd6\xd3\x0b\xfb\xb7\x85\x11\x05\x82\xba\xbc\xc0Yl\\5\xe4\xeb]$\xc5\xa4\x9f\x9a\x91(\xb7\x8e\xf3[\xea\xf0\xa1\\\xec\x83\x0b\xfb\x8f\x82z\xcd\x99{1>\xb9\xb3\xfe\xf0\xea\x1e\x03\x00\x00\xff\xffPK\x07\x08g.\xe6-M\x01\x00\x00j\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8\x8c\xce=\xae\x830\x10\xc4\xf1\x9eS\x8c\xd0k\x1f\xf4n#\xe5\x1e\x16\x1e\xa2\x95\xcc\xe2x7\x05\xb7\x8f\xf8\n-.G?k\xffV8\x84\x06\x88)\x89\xcb\xac1?fu\xaa[\xc0\x18\xb3\xb1\x01\x86si\x00\xe0\x1f\x896T)+\x0fx\xce9\xb1n&\x8a\x8a\xbeP\xa40\x8b\x12Ns\xdb\xfe\x00\xbe\x14\x06\x8c\x1b>&\x8d\x13\xc3O\x1fc\xe5\xfb#\x95\xe9\xba\xbe\xbe\xbf\xca1\xa0\xed\xfaS\xf7kw\xb7L\xb9\xbd\xd7d\x8b9\xa7{E\xbb\xbd\xd7\xb3\xdb\xab\xe6\x1b\x00\x00\xff\xffPK\x07\x08\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\x00 \x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm84\xce?\x0b\xc20\x10\x05\xf0\xbd\x9f\xe2Q\x84N\xd5=\xab\xb3\x93\xce\xc2\x91\\\xe5 Mc\xee\n\xe6\xdbKc\\\xdf\xfb\xdd\x1f\xcd\xec\xdd\x00P\x08b\xb2%\x8a\xd7-\x19'S\x87\x85\xa2\xf2\x00\xf8\x7f2\x00\xc0\x8c\xc0\xea\x8b\xe4\x83;\xdc\xab\x1a\xaf0V;\xe0\"\xaf\xbd\xd0Q5\x0cX\xcd\xec\xb0H\xe4\x1ed2\xe3\x92\x1c\xa6\xe7\xcf\x9f\xeb\x1aOSo\xfb\xad\x1b\x07\xa1G\x1b\x1d)\xe7(\xbe\xed\xbc|\xe6Jk\x1c;.\xfc\xde\xa5p\xe8\xaf~\x03\x00\x00\xff\xffPK\x07\x08;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00 \x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8\x8c\x94\xc1n\xd4@\x0c\x86\xef\xfb\x14V\x83\x04H]z\xcf\x0d\xa9\\\x10\x14\xa4r\xe1\xb4r2N2e2\x0e\xb6\xd3m\xde\x1e\xcd\xa4\xdbN\x1b*\xed-\xfe\xfc\xeb\x1f\x8f\xe3qU\xed\xaa\n\xaeI[\xf1\x0d)\xd8@\xa0\x13\xb5\xbe\xf3-\x9a\xe7\x08\x1d\x0b 84\x045!\x1c\xdf+\xdc\xa3x\x9e\x15:O\xc1\x81\xa3\xceG\xbf\x8a} \xddU\xd5.y\xd4;\x80\n\xbe\xdc\x93,6\xf8\xd8\xc3\x1c\x1d \x0c$\x04\x1d\x87\xc0G\x85\xaf\xb7?n@\xdb\x81F\x84\x0f\x83\xd9\xa4\xf5\xd5\xd5\x9dr\xdc\xaf\xf0\x13K\x7f\xf5\xf1\x12\x8e\xe2\xcd(\x02*\xfc\xfe\xfc\xfd[\xaeJ\x08\x1d6>x[v\x00\xb6LT\x03\x8a`\x8a\xbc\xd1\xa8\xa9\x80S\x82\x9b;j-\x03t.W\x8b\xe1\xa7\xf0Db\x9e\xb4\x06\x93\x99rzz\x869\x06\x888\xd2\xe9\x1b\xc0\xe5fM\xc9\xa1\x86\x1b\x1c \xb8[;\xf1$Y\x8fT\x13\x1f\xfbGh\xde\xc2[&\xbfR\xee<\x97\x84\xfeor\x8d\x86)}\x96\x0f\x00\xc5y|v\xda\xc3\xe0\xd5\xb8\x17\x1c\x0b\xd6rT\xc3h\x87?\xb4\x1cY\\\x912z\xb0\"\xdc\n\x02\x17\x87\xed\xc1G\xa3\x9e\xa4 :\xb0\x94\x16\xcdbT\x84\x8e\xe7&\x94\xa0\x0b\x8c\xa5~\xc0\xd0\x1d^Cm1\x90\xdb`\x87/\xbd\xd1\xe8\x101\xb2\x96\xe73\x07\xc2X\x12\x1fQ\x96\xed%\x0e\x82\xb1\xdf\x94\xb6\xa1\xa9\x03\x1b\xb8^k\x8bSE\xaf\xa1\x9f6\xa8\x17\x9e\xa72&>L\xeccy\xd9b\xd2O>E\x10I\x8d\xca\x1fuz1\xa7\xb8\x0b\x98^\xda\x93\xa6\x1c\xb2'\xd9\x8b\xc9\xbbM\x7f\xb2Dg\x8d`\x16\xe8[\x96s\xb3_\x05\x97p\x1c(f\x03\xf0\xfa\xaa\x01\xef\x84\xba\x1a.\xaa\x8b\x1cUy\x9b<.\x0e\xd0%\x1a>\xe4E\x91;\x94\x16\x90q^p\xc2l\xa9\xc6\xbc\xec\xb2:;\n\xfd\x9d\xbd\x90[k\xda\xe7g\xff\xf8\x99\x8e\xdf\xfd\x0b\x00\x00\xff\xffPK\x07\x084M\xe0G\xef\x01\x00\x00,\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm84\x8f1k\xc0 \x10\x85w\x7f\xc5C\n\x19\x8aI\xd7\xba\x16\xbau\xeb\xd6\x86r\xe8 \x07\xc6X5\xd0\xf4\xd7\x17m2\x89\x8f\xef\xbe{W3;\xab\x00\xf2^\x9a\xec\x89\xe2\xcb\x9e\x1a\xa7V-\x02\xc5\xca\npw\xa2\x00\x03\xcf\xd5\x15\xc9\x1d\xb6x\x15\x8e\xbe\xc2s\x904\xe6\x15\x00\xb43\xb3E\x90\xc8\xe3\x9b\xa95.\xc9b\xfa \xf3\xfbd\x9e\xd7\xeb\xfdZ\x1f\xef\xe4s>\xb78\x0d\xbc\xf0\xf7!\x85\xbdE+\xc7\xbf\xe1j\xf0\xc6^\xe8}\xc85\xe5\x1c\xc5Q\xdf\xb9\xfc\x98\x93\xb6\xa8\x07\xfaP8X\xe8y \xa3\xda\xdc\x0f\xecn\xad\xfe\x02\x00\x00\xff\xffPK\x07\x08t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xbcW\xdd\x8f\xdbD\x10\x7f\xf7_1J\x90h\xa5&i\xe1\x01)/\xa8\xf4*q\x88\x96JA \x84\xd0ib\x8f\xe3\xad\xd6\xbbfg|\xb9\xfc\xf7h\xfd\x91\xac?/\x01\xd4}\x8agfg~;\xdfY.\xa3\xe5\x12\xee\x88c\xa7\xf6\xc4 \x19\x01\x17\x14\xabT\xc5(\xca\x1aH\xad\x03\x84\x04\x05\x81\xc5\x11\xe6_3\xe4hTJ,\xebS\xae!U\x9a\xa2\xe52\xf2\xd7\xb6\x11\xc0\x12\xde?\x92;I\xa6\xcc\x01J\x93\x90\x83\x8c\x1cAj\xb5\xb6G\x86\x9fv\xbf|\x04\x8e3\xca\x11^d\"\x05o7\x9b\xcfl\xcd\xaa&\xae\xad;l^\xbe\x82\xa3S\"d\x00\x19\xfex\xfb\xe1\xe7\n\x88#Lp\xaf\xb4\x92S\x04 \xa7\x82\xb6`\xf7\x9f)\x96\x08\x00\x93Dy\xc8\xa8?9[\x90\x13E\xbc\x85\x145S\x04\x90P\xaaL\xc5g\x8f\x12\xe0\x11]\xf3\xcb3\xbd\x03\n\xcf\xdd\xc2\xbd)J\xf1l\x85{M\xbcndjk\xe8\x1c\x9e\x1a\x8a\x12\xca\xcf*\x06p\xea3\x0f\xaa>\xc5\x85s\xa6\x01\x18\xcc)\xfc\xee\xa1\xfc\xad\xc1W\xc9\xad;r5\x10\x16\xa7\xcc\xa1\xc3\xa0'\xcc\x0b\xdd5\xe3\xcf\n2\xcb\xc2QO\xc5\xb4\xf1;\x9f\x0e^\x06lz\xf6\xd4\xb5 L\x99\x0f\x01(#t 7\xa0\xef\xad\xd5\x03b\x81\xccG\xeb\x92\x01C\xe8I\x06\xc4\x13\xe6\xfaJ7\xf4\xee\x8b\x12=\xe7\x86_=\xff\xdf\xb8`\x12\xc0\x8f\xbd8\x84\xe6\xa6q\xec2\xeb$$\xfd\xaf\x98\x16\x15(\xaf\xb2\n\x92\xab\xfb\x02\x93{T1\x81X\x88\xad1\x14\x0b\x88]\x04\x97\xf3R\x8b\x9a\x01\xfd\x0e\xcd\x19\xa3W!\xa8L}\xa9\xd0\x04\x8f\xa8K\xe2\xefG\xb0\xfb\x8c 4=\xc5)\x96Z\xfa\x85\x05\xf3\xc1ve(\xea\xe8\xefR9Jf \xdf\xf3\x05q+\xfe%!rf\x8f\x0f%\x93\x9b\xcf\x85R' \x99\n\xc0\xee\xa9\xbak|\xb4|\x8b\xf7:`\x7fjA\xdd\xfc\x86\x1e\xae\xb9'\xf4\x9f\xdb\xea\x98~\xc1]-Q\xa7\xc0\x0b~Yu\xfe\xf6)#H\xff\x84E\x9d\xcf\x8bW\xb0\xa8\xfa\xb3\xff\xd14\x14\xff\xb3y\xca\x02\xfe\xea\xdc\xee\xb5\xefP\xe5H}L\xbf\xb1\xaa\x11?\xc8\xb6\x9b\xcd\x9bo\xbe[\xbf^\xbf^\xbf\xb9T\xc2X^\xad\xaa\xae\xdd!x\xc3\xd1p\x16\xf8\xc1\xcb$\xa3\x83\xea#\xe6U\xf7\xa9\x873IwR\x05o\xe8\xf4\xb1\xf1\x0e\x16\x0c\xf8I5C\x17\xac\xe0\xed\xef;\xd8+\xad\xfd\xb0\xcfI\x9c\x8a\xeb\xf6\xe5H\x13\xf2\xb8\xd1\x9d43\xfc\x06\xc3\xc1\xd0X\x01=\x15\xe4TNFP\x9f\x89{\x12\x9c\x84yf\x86\x83\xad\xeb\x89f\x9a\x05x\xae\x85\x13\xbe\xdb\x7fk{\xe0I$\xa1pmf|\x0b\xd9\xd5<\xb0iJ\x8e\x92\xaaZ\xa7\\\xf5\xe5\x96\x12\xe5w\xa3n\x01\xdc8QV\x80G\xdet]\xd6r\xf8\xdb\x1e\xa1\xda-/\x84\x91y|\xb3u\x9f\xb0?\x8c$l}&\xe7\xed\xcdv\xdeY\xad\xfdP\x9c*\x90F-\xe5\x85F\xa1\x87\x02%\x9b\xe9\x89\x8bO(\x99\xef\xde\xef5\xb2\xa8\x98 ]\x9c\x812 =\x9d\x95T\x8d\xb2\xc9\x8f\xc55\xe8\xc3\x15\xb8>_9J\xb7\xb0Xn\x82uy\xe3\xc5B}d|'~fP\xd68Z\xd9k&\xcc\xb0Q\xae\xea\x88\x07\xdf\x81\x95\x80Zee\xf5M\xa1{F\xeb\xaa\xeb@d& \xff\x1bD!\xc2N\xd9<_4c%SE\xe8\xa1\x8d\xd0v\"\xd5\xe0\xbe\x1b\xc8\x0b\xa00W\xc6J\xf9\x1a\\0Y\xce\xe0\xc7\x86(s\x18\x0c\xb5n/j\x84\x80)n\xd7\xcbn\xea\xf5nO@\x05\xc8\xb1(\x9e5\xf7\xa1\x11\xfa\xef\xe6\x949\x10\xcbC\xa1\n\xd2\xca\xd0\xac\xd5~e\xf9\x9b\xd0\xde<\xfb\xe9Z\xcb\xd7\xc6\x05fb\x03\xa3\xff\x02\xeb\xd3\xcb\x9e.\xd8\xder\xd1\x9e\x99\xddf|\xf9\x0d\x16\x95P\xa0-\xcb\x7f\x02\x00\x00\xff\xffPK\x07\x084!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8\xb4\x95Oo\xdb<\x0c\xc6\xef\xf9\x14DP -\n\xa7\xef\xf5\xf5e(\xf6\x07\xd8\xb0v\x87\xee2\xac]\xc0Zt\xc6A\x965Q\x0e\x96a\x1f~\x90\x12\xc7N\xec\xc41\x8a\xdd\x0c\x9a\x0f\xf5\xe3#\x93\x16KY:\x01@\xa5\xd8siP\xbf.\x8d'\xe3%\x85\x1c\xb5\xd0\x04 \xab#\x13\x80\x04\x14I\xe6\xd8\x86\xe4\x14\xde\x95Z\x91\x8b\x19\xc8\x86\xcd\x12\x10\x84\xcdR\x13(\xf4\x08\xe2\x1da\x01\x8ar6\xb1\xfe\x04\x00\xc0\xaf-\xa5\x90Gm\x0cX\xf4\x9e\x9cIa\xf6\x15\x93\xdf\xff%\xff?]n\x1f\x16O\xd7u\xe8\xea\xd5,&;\xfaY\xb1#\x95\x82w\x15\xc5\xd0)\xfa}\xfeN\x07\xb7m\xd0\x99@\x81\x86s\x12\x0f9\xeb\x8d|\xc7\xdb\x04\xb6\x15\xefH1~\x8e/\xa7h\xad\xe6\x0cC\xd1\x9b_\xc9\x1a\x0b=\xdd&\x1b,BB]x\xben^\xf5\xb4\x02p\xe1(Oa:\xbf\xd9)\xc2%5\xb2\xc1+\xc8\x99\xb4jy.\xfbm4\xb6\xd7lQ g1mRoF\x12\xe1\x92\x8cO\x1ci\xf44\x8a,\n;`\xcd\xd5\x0e]\xfd\xe1\xe5\x9f\xcb\xda\xfdpk\xd4^\xd8\x1aw\xa3\xda\x05{\xad\x1cB\x1e\x04|\xabQ\xae\xdc\xeeL\x00r\xb2iS\x03\xf6/\xa8\x05\xabyQ\x13\x0b\xe7X_\x1f\x0b\x1b\x8e TZ\xc4\xbbhY\xa3\xc6\x01\x1da\xd8\xe1\xc3\xa1J\x93\xa1\xb6\x89\x1d\x97=LD\xf3\xe4(\x0cl\xd8\xce\x94\xa3Y\xc5\xeb\x86\xa6@\xf6\\0U\x87qc\x13\x1bb \xf5\xb0\x0b\xc2\xadzX\xb5T\x87@\xf1\xea\xe5\xfd\xab\x97Gmrw\xeb\xff\xf0\xfe\xc3\xdb\xd5W\xb5\x06q\xc0\x10\xf9\x93\x864O\xce\xeeS\xbd\xc6\xe5\xf0G\xae\x1cN\xc2jB\xael\x00H:DC3\xcb\xbbS\"\xd8WL\xab\x0c\x15D\xc8\x04\xd2\xa1\xe0\xc7\xae\x02?u\xb6\x14\xe6\x19o\xde\xe1s\xa6L\x97qq\xf3\x9b\x8c \xdd\x1c]\xf1A\xe4\x9c\xa2\xcc<-\x85\xd6\xd1x.\xc2*\x91\xde}\xfe\xfc\xe9\x0d\xdczpp\xeb\xc1=1\xaf\x0e\x07\xed\xe2\xe5\xc5?\xee/../\x9f\x93ak8\x07\x0ck\x99g\x8d\xe0\xed\xca1\xa8\xba\x01\xd6%s3\xab\x95\\\x8e\x19\xd3L\x0b\xeeh!\xeb\xc4+7\xc3j3\xd8\xe9\x14\xdd\xcf\x93l\xe1M\xba\x1c\x0d3>Vw\xe9\x96\x19\xcf\x8c@p\x8b\xaeN\xd87s\x0e\x8b\xa3\xca\x1em\x13\x02a&\x90\";%)\xd8\xb5\xe5\xea\xbd\xb9\x007[\xaf\xdf\x87\xc5\xfa\xdaj\x8d\x927\xc0\xc2\xd4\xd9\xb4\xb6\xc4w\x84Fbh\x822Y\xce\xb4\x0b}\xdd6\xf9\x8du#\\Rt\x0f\x1bB\xaeV\x1a\x9b\x8c\x0d7\xb7x[\x8e}\xd8[\x8e\xed\x1c.\xc7fi)G\x93HUm\xf1\xb6F[vw\xc6\x05\xb6\xd3\xb4\x1c\x1d\x9d\xd2\x93\x94tQ\xa0\x1c-\"<\x16\xfcrt\xb2xs\xb9\x83\xcb\x7f\xaa)\xca$\xb5\x0dBJ\xa4\x92\xdf\xe8\x9cu\xde\xca\x8dw\xe7\xc2m=\xf1\x85\xc3\xe9\x08\x8e\xa2aq\x99\x1d\x13;\x14\xe9p\xf5\xf3\x972\x94\xd12\xd5\xfd\xe1\x04\xa7\xca\x94\x97\xb0aq\xd6Q\xeb\xac\xcd\xafA9\x06\xde\xdcM\xe1\xea\xd3\x10J\x03\x0f\x06ki\xaeYem\x16\x95^\x8c\xad\xd5(\xd6\xbb\xb7}\x94\x8az\x1dL\x9b\xaa7\x95\xda\x85AW\xbf\x7f\xb0\xeba\xa2x\x96\xc7\xa1 \x0d\n\xfdG\xf1\xbb<\x06\x87\x99\xa5\xe2>\xbf\\\xfd\x92\xad/\xb0iq\xc1\xf5\x7f(BNm\xe1R\xdb\x05\x83Jw\xaf\xb94h\xfd\x1e\xef\x05\xaeZ;\xa9\xed\x9e\xd5u\xde?W\xbf\xb0\xfc\xb3w\xdb\x1f\x01\x00\x00\xff\xffPK\x07\x08\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x001/spec.ymlUT\x05\x00\x01\x80Cm8\xac\x92Oo\xdb0\x0c\xc5\xef\xfe\x14\x0f\xc9\x80\x9d\x92\xb4W\xdf\x86\xae\xeb\x80\xfd\xbb\xf4^0\x16\x95\x10\x91%M\x94\x8d\xf9\xdb\x0fV\xe2$(\xb2d\x05z\xb4\xf8\x1e\xf9\xe3\xa3\xe7\xf3j>\xc7\xa3\xcfi\x88A|F\xb0\x88\xd4\xech\xc3\xd0\xc8\x8dXi(K\xf0\xcbj/\xfd\xcc\xda$Y\xb3\"o\x1968\xc3IA\xde\xc0\x8a+\xaf\x94\xd1\xd2\x8e\xd1E\xd0\xd4kt\xa3\xea9\xa9\x04_\xe3~y\xb7\xbc[\x90\x8b[\xba\xaf\xc61u\x05\x9012N\"\xf7\x10|f\x9f\xb5FN\x1dW@3=T\xc0\x02\xa6 \xc4\\Z=o\x19-\x89?R\xb7\xe4\xc5\xb2\xe6\xc2S\x01@\x1e\"\xd7\xa7\xcfC\xb3\x1fl\x84\x9eKiF1\xba\xc3\x9e\xab?\x8b\x81Z7+RO\xedX\x9eZ.\x87\xa9\x90\xf8w'\x89\xcd\x91\x10\xf8\x90\xd8\xd6\x98-WG\xf5\xb8\xd8d\xb9@}\x00\xfe\xa8x\xf8\xfa\xe9\xe7\xd3\xe3\xf7_O\xef\xc8\xdcl\xc9o\xd8\x85\xcd%hKN_Q\x9f\xf4W\xb0\xbf\x94s\x17\x1a\x12/~\x03C\x99\xa091\xb50l\xc5\x97\x13\xea\xf9\x0e\xc5s\x866Z^\xf6\x96\x9bY\x9eiWo\xe3\nM\xd7\xb2\xcf%\x1f\xd8\x90\xca\xefz\x88\xfc*]h\xf42\xd6\xcd\x99\xdfdM\x9e@\xaa\x9c\x15\x9d\xb2\xc1z\xf8\xdf\xb9\xbbb\xbe}\xa7\xbd\xee\x8dap\xcf.\xc41\x0f$\xd6\xd0\xa5\x86\xaf\x9e\xe8\xc5p\xffO\x94^T\xd6\xe2$\x0f5b\x92\x9e\xf2+\xc4\xd1}\x02\xfc\x1b\x00\x00\xff\xffPK\x07\x08o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(3\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xfe\x00\x00\x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa65\x8d*\x01\x00\x00 \x02\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81J\x02\x00\x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xca\x03\x00\x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00\x14\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb3\x04\x00\x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(ms,a\xbc\x00\x00\x00$\x01\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf6\x06\x00\x001/changelog.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf8\x07\x00\x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x19\x05\xa8\xb0\xfd\x00\x00\x00\x9e\x01\x00\x00/\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xc9\x08\x00\x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(v\xb2^\x18\x05\x01\x00\x00\xaa\x01\x00\x002\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81,\n\x00\x001/data_stream/_dev/test/pipeline/expected.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(g.\xe6-M\x01\x00\x00j\x04\x00\x00)\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x9a\x0b\x00\x001/data_stream/_dev/test/pipeline/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81G\x0d\x00\x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00'\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81.\x0e\x00\x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4M\xe0G\xef\x01\x00\x00,\x05\x00\x00$\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x18\x0f\x00\x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81b\x11\x00\x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81]\x12\x00\x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xca\x89\xed\x9b\x19\x02\x00\x00\xc4\x08\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x84\x16\x00\x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xea\x18\x00\x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x811\x1a\x00\x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x16 \x00\x001/spec.ymlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x13\x00\x13\x00)\x06\x00\x00\xdb!\x00\x00\x00\x00" + data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8D\x8f1N\xc50\x10D\xfb\x9cb\x94\x06(\x02\xbd\xdbOK\xc7\x05V\xf6$Z}\xc76k\x07\x91\xdb\xa3\x18\xa3\xdf\xce\xbe\xd1\xdb\xa9\x85\xdeM\x80\x84\xa0Ms\x92x\xcb\xa91\xb5\xea\xd0\xec\xe0\x04\xf8\xff`\x02\x80\x05\x81\xd5\x9b\x96\x8bvx\xcf\xfeN\xc3-\xef%W^\xec\xaa\xdbar]\xb1j$\xd6l\x08,1\x9f\x9a6\x14\xf1w\xd9\xf8T\xa1\xa9q\x1b`\xa5}\xab\xe7s}\xe9\x0e\xa0\x9d\x85\xae\xf7G\x90d\xa7\xc3\x1c\xban\xf1\x7f\xba\xd7s\x8f\xf3\x00\xc6\x97\x1f\x0c*\x9f\xbd=K)Q}7\xbc\xfd,\xa7<`\xe3\xd7\xa1\xc606\xfe\x06\x00\x00\xff\xffPK\x07\x08\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8t\x91\xb1r\xf20\x10\x84{\x9eb\xc7\xff\xdf\x02\xbdZ2\xe9\xd2\xe5\x05\xce\xbe5\\\"K\x8e$C\xfc\xf6\x19+\x86\x81\x19Rjoo\xa5o\x95Gvn\x03\x88\xaa\x15\x8bA\xfc!\x86\xc2P\xb2C/>s\x03tWe\x03\x00[(s\x97l\\\xec\x0e\xaf\xd1+S\xf5\x88\x05\x0bG(G\x1f\xe7\x81\xa1\xa07\xcf\x8c>&\x08^b\xf7\xc9\xb4m%S\x91\x99\xce\xd6\xf1\xce[\xb3\x812\x8ft\xe8k\xe8*\x05\x19\xe8\xa0u}\x95\xfe'\xf6\x0e\xcdn\xff\xab\xee\x17\x8a\xdd<\xf8f\x9d'~M\x96\xa8\x0e%M\xc4?\x94\x88\x96\x10\xfd\x98r\xa1\xe2rb\xc0e\x11\x14\xb1\x9c\x98\xee\x1f=D\xa5\xcf\xcfX\x0f1\xf4v\x9c\x92,\xc7\n\xb7\xce\xdb\x85\xfb,\xc9\xea$C\xceb^Z\xcf\xca\xfe\x17\xa4y> 65!\x94|\x8f\xb2\x96\xffF5y\xaf{\x8d\x8c\xa3\xb7\xae^\xb5\xff\xde\xce\xf2\x8c\xfb\xfaw\x0fm\xdd\xf2o}\xfd\x04\x00\x00\xff\xffPK\x07\x083\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8l\x90\xcd\x8a\x1c1\x0c\x84\xef~\x8a\x82>d\x17\xb2;\xf7\xbe\x056\x97\x90?\x08\x04r\xd4\xd8\xeanm\xbc\xb6#\xa9g\x98\xb7\x0f\xee\x9e$d\x19\xdf\xcaBU\x9fj\x18\xc20\xe0\x89-\xaa\x1c\xd9\xe0\x0b\xc3\x1aG\x99$\x92K-\x98\xaa\xe2D*\x9b2\xd0\x89$\xd313\xce\x0b\x17$n\xb9^\xa4\xcc 4\x8a?i\xe67\xd6-\xa58\xcf\xba[\x18\xebI\"\xdf\xd9\xfdc\x18\x86\xd0\xfd\xc7\x00\x0cx\x7fb\xbd\xf8\xd2\xd7\xd7\x92X\xb1\xb02\xa6\x9as=\x1b>|\xfb\xf2\x19\x16\x17~!\xdc-\xee\xcd\xc6\xc3\xe1\xd9jy\xd8?\x1f\xab\xce\x87\xfb\xb78\xab\xb8s\x01\x19~\xbc\xfb\xf4q#V\xa6DG\xc9\xe2\x97\x00\xf8\xa5\xf1\x88z|\xe6\xe8\x01\xa0\x94\xa4\x83Q\xfe\xaa\xb5\xb1\xba\xb0\x8d\x98(\x1b\x07\xa0\xfd\xfb\x0b\x00\xf6\xe3\x8b_\x15\x90\xb6\xb2Z7\x18\xf1}\x1f\xa2\xd0\x0b\x1b\xa8\xa4\xde\xa0(b-\x93\xcc\xeb^\x80]7_a\xf4w\x1b\xc5u\xe5\xb0gM\xb4f\xbf\x19\xfd\xb4\xcf\xfe\xf0\xc1+V\xe3\xff\xa2\xccU\xca\x1c\x00\xe5_\xab(\xa7n\xf4\xf0\xf7\xa2M\\#~\x07\x00\x00\xff\xffPK\x07\x08t\xa65\x8d*\x01\x00\x00 \x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xcf\xc1J\x041\x10\x04\xd0\xfb|E\xb1\x08\xea\xc1\xdd{\xae\x82\xff\xd1$5cc6\x89\x9d\x1ea\xfe^2F6\xa7P<\xba\xba{c\x0c\x0b )\xa9k-\x92\xdfkq\x16\xef\x01\xab\xe4\xce\x05\x88\xff\xc9\x02\x00oH\xec\xd1\xb4\x0d\x1e\xf0Qs\xa2\x9dF\xb4h\xd9\xc6w\xd5m7\x19\x00\xc6,\xce\x04\xafHl\xb9\x1e\x83\xf8'\xd1$~\xc9\xc6\xe7\x0e-\xcem\xf2N\xfb\xd1\xc8\x97\xfez\x96\x01~4\x06\xacg\xcb\x8c\x8a\xdc\x19\xe6\xb4\x19\x19\xbfw5\xa6\xc7\xd2\xe3=\x19\xd7\x80\xcb\xf5\xf6go\xe3\xd8\xebq\xcf\x97\xdf\x00\x00\x00\xff\xffPK\x07\x08\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00 \x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8\x9cT\xdfo\x94@\x10~\xe7\xaf\x98\x1c&\xd5(\xd0F\x8d\x91\xb7\xc6\xd6\x1as\xb6\x8d\xfab\xfc\x91,0\xc0\x94ew\xdd\x1dzw\xff\xbd\x81=\xee\xb8\x1f\xad\xd1y!\xf3\xcd\xb7\xc37\xdf2\x84a\x10\x86p\x81.\xb7\x94\xa1\x03\xae\x11\x9c\xc1\x9cJ\xca\x05\x93VPj;\xa0F\xe4\x8d\xa8\xf0\xc4\xc1\xbb\x0f\xe7\xd7W\x97\xf3\x9b+(Ib\x10\x86A\x7f\"\x0d\x00B\xb8\xbcG\xbb\xe2\x9aT\x05\x9d*\xd0B\x8d\x16\xa1\xd4R\xea\x85\x83\x8f_n\xae\xc1\xe55\xb6\x02\x9e\xd6\xcc\xc6\xa5Ir\xe7\xb4\x8a<\x18k[%\xcf^\xc0\xc2\x123*\x10\x0e\xbe\x9d\x7f\x9a\x0f\x1a,\x8aBd$\x89W\x01\x00\xaf\x0c\xa6 \xac\x15}F\x8c\xad\xeb\x05\x8c\x05\x9d\xdda\xce\x03 \x8a\x82\xfaA\x84\xbc\xb5\xda\xa0eB\x97B)\xa4\xc3\xa1n\xb6\xe8\x90\x03\xdc\xa3u\xa4\xd5\x98\x02\x14\x83=\xa6\xef\x92\xc2\xad\xf7ad\xc5\x1b\x96\x7f\xb3cK\xaa\xda\x80F0\xa3U)\x9c\xfc\xfa~\x1a\xbd\xfd\xf9\xfcG\xbc\xfb|r\xb2\xe1\xe2R\xb4Fnu\x00D0;\x8bO\xe3W\xb35\x92\xd7BUS\xc2\x8e\xb299\x06]\x8e, 5^\xdaCbG\xff|L\\\x9c\x92&^\xfa\xf8\x9b\xa3>\x0e}\xf51\x95\xbcS\xd8\x9b\xe6b\x9bl\x87\x8a\xf7N\x1c\xf5\xdc\xc7\xa1\x9b>\"\x98\xbd\xa7%dV7\xa8\x80\xb15R0\xce\x82\x83\xb6\x8f\x89\xfb\xba2\xf8\x7f\xaaT\xd7\x1eQ\x94Y\x14\x0d\xa9*\xf2\x0dgG\x18]U\xd2\xf2H\x01U-T\x8e-*>Rm\x94^\xa8\x88\x9c\xeb\xf6\x9aJR\xcd\xa3#\xceI5\xc0\x1a\x86\xb3\xa0-\xdc~^\x13\xb2~\xbb\xbd\xd0\xfe\x1b+\x90\x05\xc9\x7f\xf1\xe0\xe1\x9b\x19\xff \x15q\xddeq\xae\xdb\x04\xa5pLy\x92\xa1`\x97\x0cj\\r\xf6\xf2\xf5\xe9\x9b\xe9@\x16\x7fwd\xb1\x98\xf6\x8c\xa6\x03\xed\xe0\xbd\xb8\x1d\xa0w#8\xec\x13\x8d\x8b\xb3\xce\xd6\x9b\xf5'\x00\x00\xff\xffPK\x07\x08\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/changelog.ymlUT\x05\x00\x01\x80Cm8\xac\x8f1n+1\x0cD{\x9db\x80\xadwe\x7f\xe07\xdb\xa5p\xe1& \x10_\x80\x91\xb8+\xc2\xb2$\x98\xb4\x81\xdc>\xb0b7I\xca\xb4\xc4\xf0\xcd\x9bap\xc3\x80C\x12\xc5\"\x99\x11k\xb8\x9c\xb8\x98\"$*++\xa4\xc0\x12\xa3Q8\xd2\xca\xd0\xc6A\x16 dR\xcb\x84\xbdA\x14\xcf/\x07\xd0\xef\x91\x8e\x9d\xdc0\xb8\x11W>\xab\xd42c;m\xa6\xcdH\xb9%\xda:<\xaaf\x07\x8c\x88\xac\xe1,\xcdzp_\xc4\x84\xf2\xe3\x13u\xe92\xbbLj\x12\xf0\xfa\xad\xb1;9\x00\xb0\x8f\xc63\xb8$*\x81o\x83\xfa5K9\xceHfMg\xefW\xb1ty\x9fB=y\xfe\x02\xfa\xfb\x84\xf1\x06\xf4\xed\x92\xb3\xfa\xedO\xab\xa7\x18\xa5\xac\xdd$\x89Z]\xcft\xc2\"\x9c#HA\xb8R\x96\x88\xdd\xdb\xfdvs\xf9[+\xff\xff\x9f\xfb\x0c\x00\x00\xff\xffPK\x07\x08\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xce\xb1\xaa\xc30\x0c\x85\xe1=Oq\x08w\xbd\xc9\xee\xb5\xd0\xf70\xf6I18r*)C\xde\xbe\xd8\xa4T\xe3\xcf'$;\x98\xc2\x04\xc4\x9c\x8b\x97&\xb1>\x9a8\xc5-`\x8b\xd58\x01\xe9[&\x00\xf8G\xa6%-G\xe7\x01\xcfV3u\x98X\xa4\xc8\x0bNs(\xad\x9d\x9ahc\x07\xf0\xeb`\xc06\xf0\x9d$\xee\x0cC\xdfA\xf9>\x8b2\xff.\xf7\xf9Sn\x01\xf3\xb2v\xb9\xf6\x7f\x97k\xaf\xf3'\x00\x00\xff\xffPK\x07\x08T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00 \x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8l\x90OK\xc3@\x10\xc5\xef\xfb)\x1e\xcdA\x05\xb5\xf7\xdc\x04E\x10\xff\x81'\x11\x0f\xd3\xec\xa4\x99\xb2\xdd\x8d3\x93\x94|{i\x13\xf4\xa0{Z\xde\xbc7\xef\xc7TU\xa8*\xdc\xb25*\x1b6x\xc7\xb0\x9e\x1bi\xa5!\x97\x92\xd1\x16\x05!\x92\x13\xcc\x95i\x7ff\x18I\xa5\x0c\x86V8EDn%\xcbl\x96\xc4\x16\xaa*\x1cw\xd4\x01\xa8p7\xb2N\xdeI\xdeb\xc8\x91\x15\x1d+\xa3-)\x95\x83\xe1\xe1\xed\xe5\x19\xd6t\xbc'\x9cw\xee\xbd\xd5\xeb\xf5\xceJ\xbe\x9a\xc5\xeb\xa2\xdb\xf5\xc5%\x0e*\xee\x9cA\x86\xf7\x9b\xa7\xc7\x13\x952E\xdaH\x12\x9f\x02\xe0S\xcf5\xcaf\xc7\x8d\x07\x80b\xfd\xac\x0f9\xf8\xe5\xaa\x07\xfb\xb5[\xd2V\xee:\x95J\xc6\xe8\xac\x92e\xf3\xba\xb0U\x8f&\xfa\xdb\xdaDz\xf4\\~\xcbD\xa6AU\xaf;[u\x89Z\x9f\x8e\xaez5F\x92\xff\xdf\x11\xc2\x85\xfd\x90\xe1\x96\xb1\xab\xcd\x9b\xe0\x8d\xdd\xb7\xa9K\x85`\xc0\xb3Z\x11\xaa\xd3\x9f\xf9h{\x81\xa6\xff{\xb6\x15\xfe\x1cH\xf10\x1cK\xf5=\x85H\x89-\xe5\xa9\x0e\x10\xc7/\xc3\x0c0\x96\x9c\x9eL0=\xb5o\x05\x80&c}\xb7\"O\xd0\x9bn\xf0\xac#N-]`\xc7\xd6\xb1u\xd6\xd3\x0b\xfb\xb7\x85\x11\x05\x82\xba\xbc\xc0Yl\\5\xe4\xeb]$\xc5\xa4\x9f\x9a\x91(\xb7\x8e\xf3[\xea\xf0\xa1\\\xec\x83\x0b\xfb\x8f\x82z\xcd\x99{1>\xb9\xb3\xfe\xf0\xea\x1e\x03\x00\x00\xff\xffPK\x07\x08g.\xe6-M\x01\x00\x00j\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8\x8c\xce=\xae\x830\x10\xc4\xf1\x9eS\x8c\xd0k\x1f\xf4n#\xe5\x1e\x16\x1e\xa2\x95\xcc\xe2x7\x05\xb7\x8f\xf8\n-.G?k\xffV8\x84\x06\x88)\x89\xcb\xac1?fu\xaa[\xc0\x18\xb3\xb1\x01\x86si\x00\xe0\x1f\x896T)+\x0fx\xce9\xb1n&\x8a\x8a\xbeP\xa40\x8b\x12Ns\xdb\xfe\x00\xbe\x14\x06\x8c\x1b>&\x8d\x13\xc3O\x1fc\xe5\xfb#\x95\xe9\xba\xbe\xbe\xbf\xca1\xa0\xed\xfaS\xf7kw\xb7L\xb9\xbd\xd7d\x8b9\xa7{E\xbb\xbd\xd7\xb3\xdb\xab\xe6\x1b\x00\x00\xff\xffPK\x07\x08\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\x00 \x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm84\xce?\x0b\xc20\x10\x05\xf0\xbd\x9f\xe2Q\x84N\xd5=\xab\xb3\x93\xce\xc2\x91\\\xe5 Mc\xee\n\xe6\xdbKc\\\xdf\xfb\xdd\x1f\xcd\xec\xdd\x00P\x08b\xb2%\x8a\xd7-\x19'S\x87\x85\xa2\xf2\x00\xf8\x7f2\x00\xc0\x8c\xc0\xea\x8b\xe4\x83;\xdc\xab\x1a\xaf0V;\xe0\"\xaf\xbd\xd0Q5\x0cX\xcd\xec\xb0H\xe4\x1ed2\xe3\x92\x1c\xa6\xe7\xcf\x9f\xeb\x1aOSo\xfb\xad\x1b\x07\xa1G\x1b\x1d)\xe7(\xbe\xed\xbc|\xe6Jk\x1c;.\xfc\xde\xa5p\xe8\xaf~\x03\x00\x00\xff\xffPK\x07\x08;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00 \x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8\x8c\x94\xc1n\xd4@\x0c\x86\xef\xfb\x14V\x83\x04H]z\xcf\x0d\xa9\\\x10\x14\xa4r\xe1\xb4r2N2e2\x0e\xb6\xd3m\xde\x1e\xcd\xa4\xdbN\x1b*\xed-\xfe\xfc\xeb\x1f\x8f\xe3qU\xed\xaa\n\xaeI[\xf1\x0d)\xd8@\xa0\x13\xb5\xbe\xf3-\x9a\xe7\x08\x1d\x0b 84\x045!\x1c\xdf+\xdc\xa3x\x9e\x15:O\xc1\x81\xa3\xceG\xbf\x8a} \xddU\xd5.y\xd4;\x80\n\xbe\xdc\x93,6\xf8\xd8\xc3\x1c\x1d \x0c$\x04\x1d\x87\xc0G\x85\xaf\xb7?n@\xdb\x81F\x84\x0f\x83\xd9\xa4\xf5\xd5\xd5\x9dr\xdc\xaf\xf0\x13K\x7f\xf5\xf1\x12\x8e\xe2\xcd(\x02*\xfc\xfe\xfc\xfd[\xaeJ\x08\x1d6>x[v\x00\xb6LT\x03\x8a`\x8a\xbc\xd1\xa8\xa9\x80S\x82\x9b;j-\x03t.W\x8b\xe1\xa7\xf0Db\x9e\xb4\x06\x93\x99rzz\x869\x06\x888\xd2\xe9\x1b\xc0\xe5fM\xc9\xa1\x86\x1b\x1c \xb8[;\xf1$Y\x8fT\x13\x1f\xfbGh\xde\xc2[&\xbfR\xee<\x97\x84\xfeor\x8d\x86)}\x96\x0f\x00\xc5y|v\xda\xc3\xe0\xd5\xb8\x17\x1c\x0b\xd6rT\xc3h\x87?\xb4\x1cY\\\x912z\xb0\"\xdc\n\x02\x17\x87\xed\xc1G\xa3\x9e\xa4 :\xb0\x94\x16\xcdbT\x84\x8e\xe7&\x94\xa0\x0b\x8c\xa5~\xc0\xd0\x1d^Cm1\x90\xdb`\x87/\xbd\xd1\xe8\x101\xb2\x96\xe73\x07\xc2X\x12\x1fQ\x96\xed%\x0e\x82\xb1\xdf\x94\xb6\xa1\xa9\x03\x1b\xb8^k\x8bSE\xaf\xa1\x9f6\xa8\x17\x9e\xa72&>L\xeccy\xd9b\xd2O>E\x10I\x8d\xca\x1fuz1\xa7\xb8\x0b\x98^\xda\x93\xa6\x1c\xb2'\xd9\x8b\xc9\xbbM\x7f\xb2Dg\x8d`\x16\xe8[\x96s\xb3_\x05\x97p\x1c(f\x03\xf0\xfa\xaa\x01\xef\x84\xba\x1a.\xaa\x8b\x1cUy\x9b<.\x0e\xd0%\x1a>\xe4E\x91;\x94\x16\x90q^p\xc2l\xa9\xc6\xbc\xec\xb2:;\n\xfd\x9d\xbd\x90[k\xda\xe7g\xff\xf8\x99\x8e\xdf\xfd\x0b\x00\x00\xff\xffPK\x07\x084M\xe0G\xef\x01\x00\x00,\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm84\x8f1k\xc0 \x10\x85w\x7f\xc5C\n\x19\x8aI\xd7\xba\x16\xbau\xeb\xd6\x86r\xe8 \x07\xc6X5\xd0\xf4\xd7\x17m2\x89\x8f\xef\xbe{W3;\xab\x00\xf2^\x9a\xec\x89\xe2\xcb\x9e\x1a\xa7V-\x02\xc5\xca\npw\xa2\x00\x03\xcf\xd5\x15\xc9\x1d\xb6x\x15\x8e\xbe\xc2s\x904\xe6\x15\x00\xb43\xb3E\x90\xc8\xe3\x9b\xa95.\xc9b\xfa \xf3\xfbd\x9e\xd7\xeb\xfdZ\x1f\xef\xe4s>\xb78\x0d\xbc\xf0\xf7!\x85\xbdE+\xc7\xbf\xe1j\xf0\xc6^\xe8}\xc85\xe5\x1c\xc5Q\xdf\xb9\xfc\x98\x93\xb6\xa8\x07\xfaP8X\xe8y \xa3\xda\xdc\x0f\xecn\xad\xfe\x02\x00\x00\xff\xffPK\x07\x08t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xbcW\xdd\x8f\xdbD\x10\x7f\xf7_1J\x90h\xa5&i\xe1\x01)/\xa8\xf4*q\x88\x96JA \x84\xd0ib\x8f\xe3\xad\xd6\xbbfg|\xb9\xfc\xf7h\xfd\x91\xac?/\x01\xd4}\x8agfg~;\xdfY.\xa3\xe5\x12\xee\x88c\xa7\xf6\xc4 \x19\x01\x17\x14\xabT\xc5(\xca\x1aH\xad\x03\x84\x04\x05\x81\xc5\x11\xe6_3\xe4hTJ,\xebS\xae!U\x9a\xa2\xe52\xf2\xd7\xb6\x11\xc0\x12\xde?\x92;I\xa6\xcc\x01J\x93\x90\x83\x8c\x1cAj\xb5\xb6G\x86\x9fv\xbf|\x04\x8e3\xca\x11^d\"\x05o7\x9b\xcfl\xcd\xaa&\xae\xad;l^\xbe\x82\xa3S\"d\x00\x19\xfex\xfb\xe1\xe7\n\x88#Lp\xaf\xb4\x92S\x04 \xa7\x82\xb6`\xf7\x9f)\x96\x08\x00\x93Dy\xc8\xa8?9[\x90\x13E\xbc\x85\x145S\x04\x90P\xaaL\xc5g\x8f\x12\xe0\x11]\xf3\xcb3\xbd\x03\n\xcf\xdd\xc2\xbd)J\xf1l\x85{M\xbcndjk\xe8\x1c\x9e\x1a\x8a\x12\xca\xcf*\x06p\xea3\x0f\xaa>\xc5\x85s\xa6\x01\x18\xcc)\xfc\xee\xa1\xfc\xad\xc1W\xc9\xad;r5\x10\x16\xa7\xcc\xa1\xc3\xa0'\xcc\x0b\xdd5\xe3\xcf\n2\xcb\xc2QO\xc5\xb4\xf1;\x9f\x0e^\x06lz\xf6\xd4\xb5 L\x99\x0f\x01(#t 7\xa0\xef\xad\xd5\x03b\x81\xccG\xeb\x92\x01C\xe8I\x06\xc4\x13\xe6\xfaJ7\xf4\xee\x8b\x12=\xe7\x86_=\xff\xdf\xb8`\x12\xc0\x8f\xbd8\x84\xe6\xa6q\xec2\xeb$$\xfd\xaf\x98\x16\x15(\xaf\xb2\n\x92\xab\xfb\x02\x93{T1\x81X\x88\xad1\x14\x0b\x88]\x04\x97\xf3R\x8b\x9a\x01\xfd\x0e\xcd\x19\xa3W!\xa8L}\xa9\xd0\x04\x8f\xa8K\xe2\xefG\xb0\xfb\x8c 4=\xc5)\x96Z\xfa\x85\x05\xf3\xc1ve(\xea\xe8\xefR9Jf \xdf\xf3\x05q+\xfe%!rf\x8f\x0f%\x93\x9b\xcf\x85R' \x99\n\xc0\xee\xa9\xbak|\xb4|\x8b\xf7:`\x7fjA\xdd\xfc\x86\x1e\xae\xb9'\xf4\x9f\xdb\xea\x98~\xc1]-Q\xa7\xc0\x0b~Yu\xfe\xf6)#H\xff\x84E\x9d\xcf\x8bW\xb0\xa8\xfa\xb3\xff\xd14\x14\xff\xb3y\xca\x02\xfe\xea\xdc\xee\xb5\xefP\xe5H}L\xbf\xb1\xaa\x11?\xc8\xb6\x9b\xcd\x9bo\xbe[\xbf^\xbf^\xbf\xb9T\xc2X^\xad\xaa\xae\xdd!x\xc3\xd1p\x16\xf8\xc1\xcb$\xa3\x83\xea#\xe6U\xf7\xa9\x873IwR\x05o\xe8\xf4\xb1\xf1\x0e\x16\x0c\xf8I5C\x17\xac\xe0\xed\xef;\xd8+\xad\xfd\xb0\xcfI\x9c\x8a\xeb\xf6\xe5H\x13\xf2\xb8\xd1\x9d43\xfc\x06\xc3\xc1\xd0X\x01=\x15\xe4TNFP\x9f\x89{\x12\x9c\x84yf\x86\x83\xad\xeb\x89f\x9a\x05x\xae\x85\x13\xbe\xdb\x7fk{\xe0I$\xa1pmf|\x0b\xd9\xd5<\xb0iJ\x8e\x92\xaaZ\xa7\\\xf5\xe5\x96\x12\xe5w\xa3n\x01\xdc8QV\x80G\xdet]\xd6r\xf8\xdb\x1e\xa1\xda-/\x84\x91y|\xb3u\x9f\xb0?\x8c$l}&\xe7\xed\xcdv\xdeY\xad\xfdP\x9c*\x90F-\xe5\x85F\xa1\x87\x02%\x9b\xe9\x89\x8bO(\x99\xef\xde\xef5\xb2\xa8\x98 ]\x9c\x812 =\x9d\x95T\x8d\xb2\xc9\x8f\xc55\xe8\xc3\x15\xb8>_9J\xb7\xb0Xn\x82uy\xe3\xc5B}d|'~fP\xd68Z\xd9k&\xcc\xb0Q\xae\xea\x88\x07\xdf\x81\x95\x80Zee\xf5M\xa1{F\xeb\xaa\xeb@d& \xff\x1bD!\xc2N\xd9<_4c%SE\xe8\xa1\x8d\xd0v\"\xd5\xe0\xbe\x1b\xc8\x0b\xa00W\xc6J\xf9\x1a\\0Y\xce\xe0\xc7\x86(s\x18\x0c\xb5n/j\x84\x80)n\xd7\xcbn\xea\xf5nO@\x05\xc8\xb1(\x9e5\xf7\xa1\x11\xfa\xef\xe6\x949\x10\xcbC\xa1\n\xd2\xca\xd0\xac\xd5~e\xf9\x9b\xd0\xde<\xfb\xe9Z\xcb\xd7\xc6\x05fb\x03\xa3\xff\x02\xeb\xd3\xcb\x9e.\xd8\xder\xd1\x9e\x99\xddf|\xf9\x0d\x16\x95P\xa0-\xcb\x7f\x02\x00\x00\xff\xffPK\x07\x084!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8\xb4\x94Q\x8f\xd30\x0c\xc7\xdf\xf7)\xac i\xa0S7^\xe9\x0b:!\x90@\xdc\xf1p\xbc 8M\xbe\xc6\x1dFi\x1a\xe2\xb4b|z\x94t]\xbbkYW\x9d\xee\xadr\xfdw~\xfe;\xb1X\xca\xd2\x05\x00*\xc5\x9eK\x83\xfa]i<\x19/)\xe4\xa8\x85\x16\x00Y\x1bY\x00$\xa0H2\xc76$\xa7\xf0\xa1\xd4\x8a\\\xcc@6lv\x80 lv\x9a@\xa1G\x10\xef\x08\x0bP\x94\xb3\x89\xf5\x17\x00\x00~o)\x85\xae\xdc\xeeL\x00r\xb2iS\x03\xf6/\xa8\x05\xabyQ\x13\x0b\xe7X_\x1f\x0b\x1b\x8e TZ\xc4\xbbhY\xa3\xc6\x01\x1da\xd8\xe1\xc3\xa1J\x93\xa1\xb6\x89\x1d\x97=LD\xf3\xe4(\x0cl\xd8\xce\x94\xa3Y\xc5\xeb\x86\xa6@\xf6\\0U\x87qc\x13\x1bb \xf5\xb0\x0b\xc2\xadzX\xb5T\x87@\xf1\xea\xe5\xfd\xab\x97Gmrw\xeb\xff\xf0\xfe\xc3\xdb\xd5W\xb5\x06q\xc0\x10\xf9\x93\x864O\xce\xeeS\xbd\xc6\xe5\xf0G\xae\x1cN\xc2jB\xael\x00H:DC3\xcb\xbbS\"\xd8WL\xab\x0c\x15D\xc8\x04\xd2\xa1\xe0\xc7\xae\x02?u\xb6\x14\xe6\x19o\xde\xe1s\xa6L\x97qq\xf3\x9b\x8c \xdd\x1c]\xf1A\xe4\x9c\xa2\xcc<-\x85\xd6\xd1x.\xc2*\x91\xde}\xfe\xfc\xe9\x0d\xdczpp\xeb\xc1=1\xaf\x0e\x07\xed\xe2\xe5\xc5?\xee/../\x9f\x93ak8\x07\x0ck\x99g\x8d\xe0\xed\xca1\xa8\xba\x01\xd6%s3\xab\x95\\\x8e\x19\xd3L\x0b\xeeh!\xeb\xc4+7\xc3j3\xd8\xe9\x14\xdd\xcf\x93l\xe1M\xba\x1c\x0d3>Vw\xe9\x96\x19\xcf\x8c@p\x8b\xaeN\xd87s\x0e\x8b\xa3\xca\x1em\x13\x02a&\x90\";%)\xd8\xb5\xe5\xea\xbd\xb9\x007[\xaf\xdf\x87\xc5\xfa\xdaj\x8d\x927\xc0\xc2\xd4\xd9\xb4\xb6\xc4w\x84Fbh\x822Y\xce\xb4\x0b}\xdd6\xf9\x8du#\\Rt\x0f\x1bB\xaeV\x1a\x9b\x8c\x0d7\xb7x[\x8e}\xd8[\x8e\xed\x1c.\xc7fi)G\x93HUm\xf1\xb6F[vw\xc6\x05\xb6\xd3\xb4\x1c\x1d\x9d\xd2\x93\x94tQ\xa0\x1c-\"<\x16\xfcrt\xb2xs\xb9\x83\xcb\x7f\xaa)\xca$\xb5\x0dBJ\xa4\x92\xdf\xe8\x9cu\xde\xca\x8dw\xe7\xc2m=\xf1\x85\xc3\xe9\x08\x8e\xa2aq\x99\x1d\x13;\x14\xe9p\xf5\xf3\x972\x94\xd12\xd5\xfd\xe1\x04\xa7\xca\x94\x97\xb0aq\xd6Q\xeb\xac\xcd\xafA9\x06\xde\xdcM\xe1\xea\xd3\x10J\x03\x0f\x06ki\xaeYem\x16\x95^\x8c\xad\xd5(\xd6\xbb\xb7}\x94\x8az\x1dL\x9b\xaa7\x95\xda\x85AW\xbf\x7f\xb0\xeba\xa2x\x96\xc7\xa1 \x0d\n\xfdG\xf1\xbb<\x06\x87\x99\xa5\xe2>\xbf\\\xfd\x92\xad/\xb0iq\xc1\xf5\x7f(BNm\xe1R\xdb\x05\x83Jw\xaf\xb94h\xfd\x1e\xef\x05\xaeZ;\xa9\xed\x9e\xd5u\xde?W\xbf\xb0\xfc\xb3w\xdb\x1f\x01\x00\x00\xff\xffPK\x07\x08\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x001/spec.ymlUT\x05\x00\x01\x80Cm8\xac\x92Oo\xdb0\x0c\xc5\xef\xfe\x14\x0f\xc9\x80\x9d\x92\xb4W\xdf\x86\xae\xeb\x80\xfd\xbb\xf4^0\x16\x95\x10\x91%M\x94\x8d\xf9\xdb\x0fV\xe2$(\xb2d\x05z\xb4\xf8\x1e\xf9\xe3\xa3\xe7\xf3j>\xc7\xa3\xcfi\x88A|F\xb0\x88\xd4\xech\xc3\xd0\xc8\x8dXi(K\xf0\xcbj/\xfd\xcc\xda$Y\xb3\"o\x1968\xc3IA\xde\xc0\x8a+\xaf\x94\xd1\xd2\x8e\xd1E\xd0\xd4kt\xa3\xea9\xa9\x04_\xe3~y\xb7\xbc[\x90\x8b[\xba\xaf\xc61u\x05\x9012N\"\xf7\x10|f\x9f\xb5FN\x1dW@3=T\xc0\x02\xa6 \xc4\\Z=o\x19-\x89?R\xb7\xe4\xc5\xb2\xe6\xc2S\x01@\x1e\"\xd7\xa7\xcfC\xb3\x1fl\x84\x9eKiF1\xba\xc3\x9e\xab?\x8b\x81Z7+RO\xedX\x9eZ.\x87\xa9\x90\xf8w'\x89\xcd\x91\x10\xf8\x90\xd8\xd6\x98-WG\xf5\xb8\xd8d\xb9@}\x00\xfe\xa8x\xf8\xfa\xe9\xe7\xd3\xe3\xf7_O\xef\xc8\xdcl\xc9o\xd8\x85\xcd%hKN_Q\x9f\xf4W\xb0\xbf\x94s\x17\x1a\x12/~\x03C\x99\xa091\xb50l\xc5\x97\x13\xea\xf9\x0e\xc5s\x866Z^\xf6\x96\x9bY\x9eiWo\xe3\nM\xd7\xb2\xcf%\x1f\xd8\x90\xca\xefz\x88\xfc*]h\xf42\xd6\xcd\x99\xdfdM\x9e@\xaa\x9c\x15\x9d\xb2\xc1z\xf8\xdf\xb9\xbbb\xbe}\xa7\xbd\xee\x8dap\xcf.\xc41\x0f$\xd6\xd0\xa5\x86\xaf\x9e\xe8\xc5p\xffO\x94^T\xd6\xe2$\x0f5b\x92\x9e\xf2+\xc4\xd1}\x02\xfc\x1b\x00\x00\xff\xffPK\x07\x08o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(3\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xfe\x00\x00\x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa65\x8d*\x01\x00\x00 \x02\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81J\x02\x00\x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xca\x03\x00\x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00\x14\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb3\x04\x00\x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf6\x06\x00\x001/changelog.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81 \x08\x00\x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x19\x05\xa8\xb0\xfd\x00\x00\x00\x9e\x01\x00\x00/\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf1\x08\x00\x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(v\xb2^\x18\x05\x01\x00\x00\xaa\x01\x00\x002\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81T\n\x00\x001/data_stream/_dev/test/pipeline/expected.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(g.\xe6-M\x01\x00\x00j\x04\x00\x00)\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xc2\x0b\x00\x001/data_stream/_dev/test/pipeline/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81o\x0d\x00\x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00'\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81V\x0e\x00\x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4M\xe0G\xef\x01\x00\x00,\x05\x00\x00$\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81@\x0f\x00\x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x8a\x11\x00\x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x85\x12\x00\x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x92\xc8f\xce\xf6\x01\x00\x001\x08\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xac\x16\x00\x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xef\x18\x00\x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x816\x1a\x00\x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x1b \x00\x001/spec.ymlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x13\x00\x13\x00)\x06\x00\x00\xe0!\x00\x00\x00\x00" fs.Register(data) } \ No newline at end of file diff --git a/code/go/internal/validator/folder_item_spec.go b/code/go/internal/validator/folder_item_spec.go index 0aa462165..6939794fd 100644 --- a/code/go/internal/validator/folder_item_spec.go +++ b/code/go/internal/validator/folder_item_spec.go @@ -61,6 +61,12 @@ func (s *folderItemSpec) isSameType(file os.FileInfo) bool { } func (s *folderItemSpec) validate(fs http.FileSystem, folderSpecPath string, itemPath string) ValidationErrors { + // loading item content + itemData, err := loadItemContent(itemPath, s.ContentMediaType) + if err != nil { + return ValidationErrors{errors.Wrapf(err, "loading item content failed (path %s)", itemPath)} + } + var schemaLoader gojsonschema.JSONLoader if s.Ref != "" { schemaPath := filepath.Join(filepath.Dir(folderSpecPath), s.Ref) @@ -71,12 +77,6 @@ func (s *folderItemSpec) validate(fs http.FileSystem, folderSpecPath string, ite return nil // item's schema is not defined } - // loading item content - itemData, err := loadItemContent(itemPath, s.ContentMediaType) - if err != nil { - return ValidationErrors{errors.Wrapf(err, "loading item content failed (path %s)", itemPath)} - } - // validation with schema documentLoader := gojsonschema.NewBytesLoader(itemData) result, err := gojsonschema.Validate(schemaLoader, documentLoader) @@ -118,6 +118,7 @@ func loadItemContent(itemPath, mediaType string) ([]byte, error) { return nil, errors.Wrapf(err, "converting YAML file to JSON failed (path: %s)", itemPath) } case "application/json": // no need to convert the item content + case "": // undefined item content is consider as text/plain default: return nil, fmt.Errorf("unsupported media type (%s)", mediaType) } diff --git a/code/go/internal/validator/test/packages/bad_deploy_variants/_dev/deploy/docker/docker-compose.yml b/code/go/internal/validator/test/packages/bad_deploy_variants/_dev/deploy/docker/docker-compose.yml index e69de29bb..65b87adfd 100644 --- a/code/go/internal/validator/test/packages/bad_deploy_variants/_dev/deploy/docker/docker-compose.yml +++ b/code/go/internal/validator/test/packages/bad_deploy_variants/_dev/deploy/docker/docker-compose.yml @@ -0,0 +1,3 @@ +version: '2.3' +services: + hello_world: \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/deploy_docker/_dev/deploy/docker/docker-compose.yml b/code/go/internal/validator/test/packages/deploy_docker/_dev/deploy/docker/docker-compose.yml index e69de29bb..65b87adfd 100644 --- a/code/go/internal/validator/test/packages/deploy_docker/_dev/deploy/docker/docker-compose.yml +++ b/code/go/internal/validator/test/packages/deploy_docker/_dev/deploy/docker/docker-compose.yml @@ -0,0 +1,3 @@ +version: '2.3' +services: + hello_world: \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/good/data_stream/foo/elasticsearch/ingest_pipeline/default.yml b/code/go/internal/validator/test/packages/good/data_stream/foo/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 000000000..2c1a50fa4 --- /dev/null +++ b/code/go/internal/validator/test/packages/good/data_stream/foo/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,4 @@ +--- +description: Pipeline for Microsoft DHCP + +processors: \ No newline at end of file diff --git a/versions/1/data_stream/spec.yml b/versions/1/data_stream/spec.yml index 4af452000..eb965632e 100644 --- a/versions/1/data_stream/spec.yml +++ b/versions/1/data_stream/spec.yml @@ -39,10 +39,6 @@ spec: name: ingest_pipeline additionalContents: false contents: - - description: Default ingest pipeline definition - type: file - pattern: '^default\.(yml|json)$' - required: true - description: Supporting ingest pipeline definitions in YAML type: file pattern: '.+\.yml' From a5d0f0dfaaf5deff7607cccb6c6e268fe6f42ab7 Mon Sep 17 00:00:00 2001 From: mtojek Date: Mon, 5 Oct 2020 14:46:39 +0200 Subject: [PATCH 2/4] Require document dashes --- code/go/internal/spec/statik.go | 2 +- .../go/internal/validator/folder_item_spec.go | 20 +++++++++++--- .../elasticsearch/ingest_pipeline/default.yml | 3 +++ .../data_stream/foo/fields/some_fields.yml | 24 +++++++++++++++++ .../data_stream/foo/manifest.yml | 23 ++++++++++++++++ .../missing_pipeline_dashes/docs/.empty | 0 .../missing_pipeline_dashes/manifest.yml | 27 +++++++++++++++++++ code/go/pkg/validator/validator_test.go | 6 +++++ versions/1/data_stream/spec.yml | 2 +- 9 files changed, 102 insertions(+), 5 deletions(-) create mode 100644 code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/elasticsearch/ingest_pipeline/default.yml create mode 100644 code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/fields/some_fields.yml create mode 100644 code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/manifest.yml create mode 100644 code/go/internal/validator/test/packages/missing_pipeline_dashes/docs/.empty create mode 100644 code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml diff --git a/code/go/internal/spec/statik.go b/code/go/internal/spec/statik.go index 6df9259a7..fae058fc2 100644 --- a/code/go/internal/spec/statik.go +++ b/code/go/internal/spec/statik.go @@ -8,7 +8,7 @@ import ( func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8D\x8f1N\xc50\x10D\xfb\x9cb\x94\x06(\x02\xbd\xdbOK\xc7\x05V\xf6$Z}\xc76k\x07\x91\xdb\xa3\x18\xa3\xdf\xce\xbe\xd1\xdb\xa9\x85\xdeM\x80\x84\xa0Ms\x92x\xcb\xa91\xb5\xea\xd0\xec\xe0\x04\xf8\xff`\x02\x80\x05\x81\xd5\x9b\x96\x8bvx\xcf\xfeN\xc3-\xef%W^\xec\xaa\xdbar]\xb1j$\xd6l\x08,1\x9f\x9a6\x14\xf1w\xd9\xf8T\xa1\xa9q\x1b`\xa5}\xab\xe7s}\xe9\x0e\xa0\x9d\x85\xae\xf7G\x90d\xa7\xc3\x1c\xban\xf1\x7f\xba\xd7s\x8f\xf3\x00\xc6\x97\x1f\x0c*\x9f\xbd=K)Q}7\xbc\xfd,\xa7<`\xe3\xd7\xa1\xc606\xfe\x06\x00\x00\xff\xffPK\x07\x08\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8t\x91\xb1r\xf20\x10\x84{\x9eb\xc7\xff\xdf\x02\xbdZ2\xe9\xd2\xe5\x05\xce\xbe5\\\"K\x8e$C\xfc\xf6\x19+\x86\x81\x19Rjoo\xa5o\x95Gvn\x03\x88\xaa\x15\x8bA\xfc!\x86\xc2P\xb2C/>s\x03tWe\x03\x00[(s\x97l\\\xec\x0e\xaf\xd1+S\xf5\x88\x05\x0bG(G\x1f\xe7\x81\xa1\xa07\xcf\x8c>&\x08^b\xf7\xc9\xb4m%S\x91\x99\xce\xd6\xf1\xce[\xb3\x812\x8ft\xe8k\xe8*\x05\x19\xe8\xa0u}\x95\xfe'\xf6\x0e\xcdn\xff\xab\xee\x17\x8a\xdd<\xf8f\x9d'~M\x96\xa8\x0e%M\xc4?\x94\x88\x96\x10\xfd\x98r\xa1\xe2rb\xc0e\x11\x14\xb1\x9c\x98\xee\x1f=D\xa5\xcf\xcfX\x0f1\xf4v\x9c\x92,\xc7\n\xb7\xce\xdb\x85\xfb,\xc9\xea$C\xceb^Z\xcf\xca\xfe\x17\xa4y> 65!\x94|\x8f\xb2\x96\xffF5y\xaf{\x8d\x8c\xa3\xb7\xae^\xb5\xff\xde\xce\xf2\x8c\xfb\xfaw\x0fm\xdd\xf2o}\xfd\x04\x00\x00\xff\xffPK\x07\x083\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8l\x90\xcd\x8a\x1c1\x0c\x84\xef~\x8a\x82>d\x17\xb2;\xf7\xbe\x056\x97\x90?\x08\x04r\xd4\xd8\xeanm\xbc\xb6#\xa9g\x98\xb7\x0f\xee\x9e$d\x19\xdf\xcaBU\x9fj\x18\xc20\xe0\x89-\xaa\x1c\xd9\xe0\x0b\xc3\x1aG\x99$\x92K-\x98\xaa\xe2D*\x9b2\xd0\x89$\xd313\xce\x0b\x17$n\xb9^\xa4\xcc 4\x8a?i\xe67\xd6-\xa58\xcf\xba[\x18\xebI\"\xdf\xd9\xfdc\x18\x86\xd0\xfd\xc7\x00\x0cx\x7fb\xbd\xf8\xd2\xd7\xd7\x92X\xb1\xb02\xa6\x9as=\x1b>|\xfb\xf2\x19\x16\x17~!\xdc-\xee\xcd\xc6\xc3\xe1\xd9jy\xd8?\x1f\xab\xce\x87\xfb\xb78\xab\xb8s\x01\x19~\xbc\xfb\xf4q#V\xa6DG\xc9\xe2\x97\x00\xf8\xa5\xf1\x88z|\xe6\xe8\x01\xa0\x94\xa4\x83Q\xfe\xaa\xb5\xb1\xba\xb0\x8d\x98(\x1b\x07\xa0\xfd\xfb\x0b\x00\xf6\xe3\x8b_\x15\x90\xb6\xb2Z7\x18\xf1}\x1f\xa2\xd0\x0b\x1b\xa8\xa4\xde\xa0(b-\x93\xcc\xeb^\x80]7_a\xf4w\x1b\xc5u\xe5\xb0gM\xb4f\xbf\x19\xfd\xb4\xcf\xfe\xf0\xc1+V\xe3\xff\xa2\xccU\xca\x1c\x00\xe5_\xab(\xa7n\xf4\xf0\xf7\xa2M\\#~\x07\x00\x00\xff\xffPK\x07\x08t\xa65\x8d*\x01\x00\x00 \x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xcf\xc1J\x041\x10\x04\xd0\xfb|E\xb1\x08\xea\xc1\xdd{\xae\x82\xff\xd1$5cc6\x89\x9d\x1ea\xfe^2F6\xa7P<\xba\xba{c\x0c\x0b )\xa9k-\x92\xdfkq\x16\xef\x01\xab\xe4\xce\x05\x88\xff\xc9\x02\x00oH\xec\xd1\xb4\x0d\x1e\xf0Qs\xa2\x9dF\xb4h\xd9\xc6w\xd5m7\x19\x00\xc6,\xce\x04\xafHl\xb9\x1e\x83\xf8'\xd1$~\xc9\xc6\xe7\x0e-\xcem\xf2N\xfb\xd1\xc8\x97\xfez\x96\x01~4\x06\xacg\xcb\x8c\x8a\xdc\x19\xe6\xb4\x19\x19\xbfw5\xa6\xc7\xd2\xe3=\x19\xd7\x80\xcb\xf5\xf6go\xe3\xd8\xebq\xcf\x97\xdf\x00\x00\x00\xff\xffPK\x07\x08\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00 \x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8\x9cT\xdfo\x94@\x10~\xe7\xaf\x98\x1c&\xd5(\xd0F\x8d\x91\xb7\xc6\xd6\x1as\xb6\x8d\xfab\xfc\x91,0\xc0\x94ew\xdd\x1dzw\xff\xbd\x81=\xee\xb8\x1f\xad\xd1y!\xf3\xcd\xb7\xc37\xdf2\x84a\x10\x86p\x81.\xb7\x94\xa1\x03\xae\x11\x9c\xc1\x9cJ\xca\x05\x93VPj;\xa0F\xe4\x8d\xa8\xf0\xc4\xc1\xbb\x0f\xe7\xd7W\x97\xf3\x9b+(Ib\x10\x86A\x7f\"\x0d\x00B\xb8\xbcG\xbb\xe2\x9aT\x05\x9d*\xd0B\x8d\x16\xa1\xd4R\xea\x85\x83\x8f_n\xae\xc1\xe55\xb6\x02\x9e\xd6\xcc\xc6\xa5Ir\xe7\xb4\x8a<\x18k[%\xcf^\xc0\xc2\x123*\x10\x0e\xbe\x9d\x7f\x9a\x0f\x1a,\x8aBd$\x89W\x01\x00\xaf\x0c\xa6 \xac\x15}F\x8c\xad\xeb\x05\x8c\x05\x9d\xdda\xce\x03 \x8a\x82\xfaA\x84\xbc\xb5\xda\xa0eB\x97B)\xa4\xc3\xa1n\xb6\xe8\x90\x03\xdc\xa3u\xa4\xd5\x98\x02\x14\x83=\xa6\xef\x92\xc2\xad\xf7ad\xc5\x1b\x96\x7f\xb3cK\xaa\xda\x80F0\xa3U)\x9c\xfc\xfa~\x1a\xbd\xfd\xf9\xfcG\xbc\xfb|r\xb2\xe1\xe2R\xb4Fnu\x00D0;\x8bO\xe3W\xb35\x92\xd7BUS\xc2\x8e\xb299\x06]\x8e, 5^\xdaCbG\xff|L\\\x9c\x92&^\xfa\xf8\x9b\xa3>\x0e}\xf51\x95\xbcS\xd8\x9b\xe6b\x9bl\x87\x8a\xf7N\x1c\xf5\xdc\xc7\xa1\x9b>\"\x98\xbd\xa7%dV7\xa8\x80\xb15R0\xce\x82\x83\xb6\x8f\x89\xfb\xba2\xf8\x7f\xaaT\xd7\x1eQ\x94Y\x14\x0d\xa9*\xf2\x0dgG\x18]U\xd2\xf2H\x01U-T\x8e-*>Rm\x94^\xa8\x88\x9c\xeb\xf6\x9aJR\xcd\xa3#\xceI5\xc0\x1a\x86\xb3\xa0-\xdc~^\x13\xb2~\xbb\xbd\xd0\xfe\x1b+\x90\x05\xc9\x7f\xf1\xe0\xe1\x9b\x19\xff \x15q\xddeq\xae\xdb\x04\xa5pLy\x92\xa1`\x97\x0cj\\r\xf6\xf2\xf5\xe9\x9b\xe9@\x16\x7fwd\xb1\x98\xf6\x8c\xa6\x03\xed\xe0\xbd\xb8\x1d\xa0w#8\xec\x13\x8d\x8b\xb3\xce\xd6\x9b\xf5'\x00\x00\xff\xffPK\x07\x08\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/changelog.ymlUT\x05\x00\x01\x80Cm8\xac\x8f1n+1\x0cD{\x9db\x80\xadwe\x7f\xe07\xdb\xa5p\xe1& \x10_\x80\x91\xb8+\xc2\xb2$\x98\xb4\x81\xdc>\xb0b7I\xca\xb4\xc4\xf0\xcd\x9bap\xc3\x80C\x12\xc5\"\x99\x11k\xb8\x9c\xb8\x98\"$*++\xa4\xc0\x12\xa3Q8\xd2\xca\xd0\xc6A\x16 dR\xcb\x84\xbdA\x14\xcf/\x07\xd0\xef\x91\x8e\x9d\xdc0\xb8\x11W>\xab\xd42c;m\xa6\xcdH\xb9%\xda:<\xaaf\x07\x8c\x88\xac\xe1,\xcdzp_\xc4\x84\xf2\xe3\x13u\xe92\xbbLj\x12\xf0\xfa\xad\xb1;9\x00\xb0\x8f\xc63\xb8$*\x81o\x83\xfa5K9\xceHfMg\xefW\xb1ty\x9fB=y\xfe\x02\xfa\xfb\x84\xf1\x06\xf4\xed\x92\xb3\xfa\xedO\xab\xa7\x18\xa5\xac\xdd$\x89Z]\xcft\xc2\"\x9c#HA\xb8R\x96\x88\xdd\xdb\xfdvs\xf9[+\xff\xff\x9f\xfb\x0c\x00\x00\xff\xffPK\x07\x08\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xce\xb1\xaa\xc30\x0c\x85\xe1=Oq\x08w\xbd\xc9\xee\xb5\xd0\xf70\xf6I18r*)C\xde\xbe\xd8\xa4T\xe3\xcf'$;\x98\xc2\x04\xc4\x9c\x8b\x97&\xb1>\x9a8\xc5-`\x8b\xd58\x01\xe9[&\x00\xf8G\xa6%-G\xe7\x01\xcfV3u\x98X\xa4\xc8\x0bNs(\xad\x9d\x9ahc\x07\xf0\xeb`\xc06\xf0\x9d$\xee\x0cC\xdfA\xf9>\x8b2\xff.\xf7\xf9Sn\x01\xf3\xb2v\xb9\xf6\x7f\x97k\xaf\xf3'\x00\x00\xff\xffPK\x07\x08T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00 \x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8l\x90OK\xc3@\x10\xc5\xef\xfb)\x1e\xcdA\x05\xb5\xf7\xdc\x04E\x10\xff\x81'\x11\x0f\xd3\xec\xa4\x99\xb2\xdd\x8d3\x93\x94|{i\x13\xf4\xa0{Z\xde\xbc7\xef\xc7TU\xa8*\xdc\xb25*\x1b6x\xc7\xb0\x9e\x1bi\xa5!\x97\x92\xd1\x16\x05!\x92\x13\xcc\x95i\x7ff\x18I\xa5\x0c\x86V8EDn%\xcbl\x96\xc4\x16\xaa*\x1cw\xd4\x01\xa8p7\xb2N\xdeI\xdeb\xc8\x91\x15\x1d+\xa3-)\x95\x83\xe1\xe1\xed\xe5\x19\xd6t\xbc'\x9cw\xee\xbd\xd5\xeb\xf5\xceJ\xbe\x9a\xc5\xeb\xa2\xdb\xf5\xc5%\x0e*\xee\x9cA\x86\xf7\x9b\xa7\xc7\x13\x952E\xdaH\x12\x9f\x02\xe0S\xcf5\xcaf\xc7\x8d\x07\x80b\xfd\xac\x0f9\xf8\xe5\xaa\x07\xfb\xb5[\xd2V\xee:\x95J\xc6\xe8\xac\x92e\xf3\xba\xb0U\x8f&\xfa\xdb\xdaDz\xf4\\~\xcbD\xa6AU\xaf;[u\x89Z\x9f\x8e\xaez5F\x92\xff\xdf\x11\xc2\x85\xfd\x90\xe1\x96\xb1\xab\xcd\x9b\xe0\x8d\xdd\xb7\xa9K\x85`\xc0\xb3Z\x11\xaa\xd3\x9f\xf9h{\x81\xa6\xff{\xb6\x15\xfe\x1cH\xf10\x1cK\xf5=\x85H\x89-\xe5\xa9\x0e\x10\xc7/\xc3\x0c0\x96\x9c\x9eL0=\xb5o\x05\x80&c}\xb7\"O\xd0\x9bn\xf0\xac#N-]`\xc7\xd6\xb1u\xd6\xd3\x0b\xfb\xb7\x85\x11\x05\x82\xba\xbc\xc0Yl\\5\xe4\xeb]$\xc5\xa4\x9f\x9a\x91(\xb7\x8e\xf3[\xea\xf0\xa1\\\xec\x83\x0b\xfb\x8f\x82z\xcd\x99{1>\xb9\xb3\xfe\xf0\xea\x1e\x03\x00\x00\xff\xffPK\x07\x08g.\xe6-M\x01\x00\x00j\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8\x8c\xce=\xae\x830\x10\xc4\xf1\x9eS\x8c\xd0k\x1f\xf4n#\xe5\x1e\x16\x1e\xa2\x95\xcc\xe2x7\x05\xb7\x8f\xf8\n-.G?k\xffV8\x84\x06\x88)\x89\xcb\xac1?fu\xaa[\xc0\x18\xb3\xb1\x01\x86si\x00\xe0\x1f\x896T)+\x0fx\xce9\xb1n&\x8a\x8a\xbeP\xa40\x8b\x12Ns\xdb\xfe\x00\xbe\x14\x06\x8c\x1b>&\x8d\x13\xc3O\x1fc\xe5\xfb#\x95\xe9\xba\xbe\xbe\xbf\xca1\xa0\xed\xfaS\xf7kw\xb7L\xb9\xbd\xd7d\x8b9\xa7{E\xbb\xbd\xd7\xb3\xdb\xab\xe6\x1b\x00\x00\xff\xffPK\x07\x08\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\x00 \x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm84\xce?\x0b\xc20\x10\x05\xf0\xbd\x9f\xe2Q\x84N\xd5=\xab\xb3\x93\xce\xc2\x91\\\xe5 Mc\xee\n\xe6\xdbKc\\\xdf\xfb\xdd\x1f\xcd\xec\xdd\x00P\x08b\xb2%\x8a\xd7-\x19'S\x87\x85\xa2\xf2\x00\xf8\x7f2\x00\xc0\x8c\xc0\xea\x8b\xe4\x83;\xdc\xab\x1a\xaf0V;\xe0\"\xaf\xbd\xd0Q5\x0cX\xcd\xec\xb0H\xe4\x1ed2\xe3\x92\x1c\xa6\xe7\xcf\x9f\xeb\x1aOSo\xfb\xad\x1b\x07\xa1G\x1b\x1d)\xe7(\xbe\xed\xbc|\xe6Jk\x1c;.\xfc\xde\xa5p\xe8\xaf~\x03\x00\x00\xff\xffPK\x07\x08;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00 \x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8\x8c\x94\xc1n\xd4@\x0c\x86\xef\xfb\x14V\x83\x04H]z\xcf\x0d\xa9\\\x10\x14\xa4r\xe1\xb4r2N2e2\x0e\xb6\xd3m\xde\x1e\xcd\xa4\xdbN\x1b*\xed-\xfe\xfc\xeb\x1f\x8f\xe3qU\xed\xaa\n\xaeI[\xf1\x0d)\xd8@\xa0\x13\xb5\xbe\xf3-\x9a\xe7\x08\x1d\x0b 84\x045!\x1c\xdf+\xdc\xa3x\x9e\x15:O\xc1\x81\xa3\xceG\xbf\x8a} \xddU\xd5.y\xd4;\x80\n\xbe\xdc\x93,6\xf8\xd8\xc3\x1c\x1d \x0c$\x04\x1d\x87\xc0G\x85\xaf\xb7?n@\xdb\x81F\x84\x0f\x83\xd9\xa4\xf5\xd5\xd5\x9dr\xdc\xaf\xf0\x13K\x7f\xf5\xf1\x12\x8e\xe2\xcd(\x02*\xfc\xfe\xfc\xfd[\xaeJ\x08\x1d6>x[v\x00\xb6LT\x03\x8a`\x8a\xbc\xd1\xa8\xa9\x80S\x82\x9b;j-\x03t.W\x8b\xe1\xa7\xf0Db\x9e\xb4\x06\x93\x99rzz\x869\x06\x888\xd2\xe9\x1b\xc0\xe5fM\xc9\xa1\x86\x1b\x1c \xb8[;\xf1$Y\x8fT\x13\x1f\xfbGh\xde\xc2[&\xbfR\xee<\x97\x84\xfeor\x8d\x86)}\x96\x0f\x00\xc5y|v\xda\xc3\xe0\xd5\xb8\x17\x1c\x0b\xd6rT\xc3h\x87?\xb4\x1cY\\\x912z\xb0\"\xdc\n\x02\x17\x87\xed\xc1G\xa3\x9e\xa4 :\xb0\x94\x16\xcdbT\x84\x8e\xe7&\x94\xa0\x0b\x8c\xa5~\xc0\xd0\x1d^Cm1\x90\xdb`\x87/\xbd\xd1\xe8\x101\xb2\x96\xe73\x07\xc2X\x12\x1fQ\x96\xed%\x0e\x82\xb1\xdf\x94\xb6\xa1\xa9\x03\x1b\xb8^k\x8bSE\xaf\xa1\x9f6\xa8\x17\x9e\xa72&>L\xeccy\xd9b\xd2O>E\x10I\x8d\xca\x1fuz1\xa7\xb8\x0b\x98^\xda\x93\xa6\x1c\xb2'\xd9\x8b\xc9\xbbM\x7f\xb2Dg\x8d`\x16\xe8[\x96s\xb3_\x05\x97p\x1c(f\x03\xf0\xfa\xaa\x01\xef\x84\xba\x1a.\xaa\x8b\x1cUy\x9b<.\x0e\xd0%\x1a>\xe4E\x91;\x94\x16\x90q^p\xc2l\xa9\xc6\xbc\xec\xb2:;\n\xfd\x9d\xbd\x90[k\xda\xe7g\xff\xf8\x99\x8e\xdf\xfd\x0b\x00\x00\xff\xffPK\x07\x084M\xe0G\xef\x01\x00\x00,\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm84\x8f1k\xc0 \x10\x85w\x7f\xc5C\n\x19\x8aI\xd7\xba\x16\xbau\xeb\xd6\x86r\xe8 \x07\xc6X5\xd0\xf4\xd7\x17m2\x89\x8f\xef\xbe{W3;\xab\x00\xf2^\x9a\xec\x89\xe2\xcb\x9e\x1a\xa7V-\x02\xc5\xca\npw\xa2\x00\x03\xcf\xd5\x15\xc9\x1d\xb6x\x15\x8e\xbe\xc2s\x904\xe6\x15\x00\xb43\xb3E\x90\xc8\xe3\x9b\xa95.\xc9b\xfa \xf3\xfbd\x9e\xd7\xeb\xfdZ\x1f\xef\xe4s>\xb78\x0d\xbc\xf0\xf7!\x85\xbdE+\xc7\xbf\xe1j\xf0\xc6^\xe8}\xc85\xe5\x1c\xc5Q\xdf\xb9\xfc\x98\x93\xb6\xa8\x07\xfaP8X\xe8y \xa3\xda\xdc\x0f\xecn\xad\xfe\x02\x00\x00\xff\xffPK\x07\x08t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xbcW\xdd\x8f\xdbD\x10\x7f\xf7_1J\x90h\xa5&i\xe1\x01)/\xa8\xf4*q\x88\x96JA \x84\xd0ib\x8f\xe3\xad\xd6\xbbfg|\xb9\xfc\xf7h\xfd\x91\xac?/\x01\xd4}\x8agfg~;\xdfY.\xa3\xe5\x12\xee\x88c\xa7\xf6\xc4 \x19\x01\x17\x14\xabT\xc5(\xca\x1aH\xad\x03\x84\x04\x05\x81\xc5\x11\xe6_3\xe4hTJ,\xebS\xae!U\x9a\xa2\xe52\xf2\xd7\xb6\x11\xc0\x12\xde?\x92;I\xa6\xcc\x01J\x93\x90\x83\x8c\x1cAj\xb5\xb6G\x86\x9fv\xbf|\x04\x8e3\xca\x11^d\"\x05o7\x9b\xcfl\xcd\xaa&\xae\xad;l^\xbe\x82\xa3S\"d\x00\x19\xfex\xfb\xe1\xe7\n\x88#Lp\xaf\xb4\x92S\x04 \xa7\x82\xb6`\xf7\x9f)\x96\x08\x00\x93Dy\xc8\xa8?9[\x90\x13E\xbc\x85\x145S\x04\x90P\xaaL\xc5g\x8f\x12\xe0\x11]\xf3\xcb3\xbd\x03\n\xcf\xdd\xc2\xbd)J\xf1l\x85{M\xbcndjk\xe8\x1c\x9e\x1a\x8a\x12\xca\xcf*\x06p\xea3\x0f\xaa>\xc5\x85s\xa6\x01\x18\xcc)\xfc\xee\xa1\xfc\xad\xc1W\xc9\xad;r5\x10\x16\xa7\xcc\xa1\xc3\xa0'\xcc\x0b\xdd5\xe3\xcf\n2\xcb\xc2QO\xc5\xb4\xf1;\x9f\x0e^\x06lz\xf6\xd4\xb5 L\x99\x0f\x01(#t 7\xa0\xef\xad\xd5\x03b\x81\xccG\xeb\x92\x01C\xe8I\x06\xc4\x13\xe6\xfaJ7\xf4\xee\x8b\x12=\xe7\x86_=\xff\xdf\xb8`\x12\xc0\x8f\xbd8\x84\xe6\xa6q\xec2\xeb$$\xfd\xaf\x98\x16\x15(\xaf\xb2\n\x92\xab\xfb\x02\x93{T1\x81X\x88\xad1\x14\x0b\x88]\x04\x97\xf3R\x8b\x9a\x01\xfd\x0e\xcd\x19\xa3W!\xa8L}\xa9\xd0\x04\x8f\xa8K\xe2\xefG\xb0\xfb\x8c 4=\xc5)\x96Z\xfa\x85\x05\xf3\xc1ve(\xea\xe8\xefR9Jf \xdf\xf3\x05q+\xfe%!rf\x8f\x0f%\x93\x9b\xcf\x85R' \x99\n\xc0\xee\xa9\xbak|\xb4|\x8b\xf7:`\x7fjA\xdd\xfc\x86\x1e\xae\xb9'\xf4\x9f\xdb\xea\x98~\xc1]-Q\xa7\xc0\x0b~Yu\xfe\xf6)#H\xff\x84E\x9d\xcf\x8bW\xb0\xa8\xfa\xb3\xff\xd14\x14\xff\xb3y\xca\x02\xfe\xea\xdc\xee\xb5\xefP\xe5H}L\xbf\xb1\xaa\x11?\xc8\xb6\x9b\xcd\x9bo\xbe[\xbf^\xbf^\xbf\xb9T\xc2X^\xad\xaa\xae\xdd!x\xc3\xd1p\x16\xf8\xc1\xcb$\xa3\x83\xea#\xe6U\xf7\xa9\x873IwR\x05o\xe8\xf4\xb1\xf1\x0e\x16\x0c\xf8I5C\x17\xac\xe0\xed\xef;\xd8+\xad\xfd\xb0\xcfI\x9c\x8a\xeb\xf6\xe5H\x13\xf2\xb8\xd1\x9d43\xfc\x06\xc3\xc1\xd0X\x01=\x15\xe4TNFP\x9f\x89{\x12\x9c\x84yf\x86\x83\xad\xeb\x89f\x9a\x05x\xae\x85\x13\xbe\xdb\x7fk{\xe0I$\xa1pmf|\x0b\xd9\xd5<\xb0iJ\x8e\x92\xaaZ\xa7\\\xf5\xe5\x96\x12\xe5w\xa3n\x01\xdc8QV\x80G\xdet]\xd6r\xf8\xdb\x1e\xa1\xda-/\x84\x91y|\xb3u\x9f\xb0?\x8c$l}&\xe7\xed\xcdv\xdeY\xad\xfdP\x9c*\x90F-\xe5\x85F\xa1\x87\x02%\x9b\xe9\x89\x8bO(\x99\xef\xde\xef5\xb2\xa8\x98 ]\x9c\x812 =\x9d\x95T\x8d\xb2\xc9\x8f\xc55\xe8\xc3\x15\xb8>_9J\xb7\xb0Xn\x82uy\xe3\xc5B}d|'~fP\xd68Z\xd9k&\xcc\xb0Q\xae\xea\x88\x07\xdf\x81\x95\x80Zee\xf5M\xa1{F\xeb\xaa\xeb@d& \xff\x1bD!\xc2N\xd9<_4c%SE\xe8\xa1\x8d\xd0v\"\xd5\xe0\xbe\x1b\xc8\x0b\xa00W\xc6J\xf9\x1a\\0Y\xce\xe0\xc7\x86(s\x18\x0c\xb5n/j\x84\x80)n\xd7\xcbn\xea\xf5nO@\x05\xc8\xb1(\x9e5\xf7\xa1\x11\xfa\xef\xe6\x949\x10\xcbC\xa1\n\xd2\xca\xd0\xac\xd5~e\xf9\x9b\xd0\xde<\xfb\xe9Z\xcb\xd7\xc6\x05fb\x03\xa3\xff\x02\xeb\xd3\xcb\x9e.\xd8\xder\xd1\x9e\x99\xddf|\xf9\x0d\x16\x95P\xa0-\xcb\x7f\x02\x00\x00\xff\xffPK\x07\x084!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8\xb4\x94Q\x8f\xd30\x0c\xc7\xdf\xf7)\xac i\xa0S7^\xe9\x0b:!\x90@\xdc\xf1p\xbc 8M\xbe\xc6\x1dFi\x1a\xe2\xb4b|z\x94t]\xbbkYW\x9d\xee\xadr\xfdw~\xfe;\xb1X\xca\xd2\x05\x00*\xc5\x9eK\x83\xfa]i<\x19/)\xe4\xa8\x85\x16\x00Y\x1bY\x00$\xa0H2\xc76$\xa7\xf0\xa1\xd4\x8a\\\xcc@6lv\x80 lv\x9a@\xa1G\x10\xef\x08\x0bP\x94\xb3\x89\xf5\x17\x00\x00~o)\x85\xae\xdc\xeeL\x00r\xb2iS\x03\xf6/\xa8\x05\xabyQ\x13\x0b\xe7X_\x1f\x0b\x1b\x8e TZ\xc4\xbbhY\xa3\xc6\x01\x1da\xd8\xe1\xc3\xa1J\x93\xa1\xb6\x89\x1d\x97=LD\xf3\xe4(\x0cl\xd8\xce\x94\xa3Y\xc5\xeb\x86\xa6@\xf6\\0U\x87qc\x13\x1bb \xf5\xb0\x0b\xc2\xadzX\xb5T\x87@\xf1\xea\xe5\xfd\xab\x97Gmrw\xeb\xff\xf0\xfe\xc3\xdb\xd5W\xb5\x06q\xc0\x10\xf9\x93\x864O\xce\xeeS\xbd\xc6\xe5\xf0G\xae\x1cN\xc2jB\xael\x00H:DC3\xcb\xbbS\"\xd8WL\xab\x0c\x15D\xc8\x04\xd2\xa1\xe0\xc7\xae\x02?u\xb6\x14\xe6\x19o\xde\xe1s\xa6L\x97qq\xf3\x9b\x8c \xdd\x1c]\xf1A\xe4\x9c\xa2\xcc<-\x85\xd6\xd1x.\xc2*\x91\xde}\xfe\xfc\xe9\x0d\xdczpp\xeb\xc1=1\xaf\x0e\x07\xed\xe2\xe5\xc5?\xee/../\x9f\x93ak8\x07\x0ck\x99g\x8d\xe0\xed\xca1\xa8\xba\x01\xd6%s3\xab\x95\\\x8e\x19\xd3L\x0b\xeeh!\xeb\xc4+7\xc3j3\xd8\xe9\x14\xdd\xcf\x93l\xe1M\xba\x1c\x0d3>Vw\xe9\x96\x19\xcf\x8c@p\x8b\xaeN\xd87s\x0e\x8b\xa3\xca\x1em\x13\x02a&\x90\";%)\xd8\xb5\xe5\xea\xbd\xb9\x007[\xaf\xdf\x87\xc5\xfa\xdaj\x8d\x927\xc0\xc2\xd4\xd9\xb4\xb6\xc4w\x84Fbh\x822Y\xce\xb4\x0b}\xdd6\xf9\x8du#\\Rt\x0f\x1bB\xaeV\x1a\x9b\x8c\x0d7\xb7x[\x8e}\xd8[\x8e\xed\x1c.\xc7fi)G\x93HUm\xf1\xb6F[vw\xc6\x05\xb6\xd3\xb4\x1c\x1d\x9d\xd2\x93\x94tQ\xa0\x1c-\"<\x16\xfcrt\xb2xs\xb9\x83\xcb\x7f\xaa)\xca$\xb5\x0dBJ\xa4\x92\xdf\xe8\x9cu\xde\xca\x8dw\xe7\xc2m=\xf1\x85\xc3\xe9\x08\x8e\xa2aq\x99\x1d\x13;\x14\xe9p\xf5\xf3\x972\x94\xd12\xd5\xfd\xe1\x04\xa7\xca\x94\x97\xb0aq\xd6Q\xeb\xac\xcd\xafA9\x06\xde\xdcM\xe1\xea\xd3\x10J\x03\x0f\x06ki\xaeYem\x16\x95^\x8c\xad\xd5(\xd6\xbb\xb7}\x94\x8az\x1dL\x9b\xaa7\x95\xda\x85AW\xbf\x7f\xb0\xeba\xa2x\x96\xc7\xa1 \x0d\n\xfdG\xf1\xbb<\x06\x87\x99\xa5\xe2>\xbf\\\xfd\x92\xad/\xb0iq\xc1\xf5\x7f(BNm\xe1R\xdb\x05\x83Jw\xaf\xb94h\xfd\x1e\xef\x05\xaeZ;\xa9\xed\x9e\xd5u\xde?W\xbf\xb0\xfc\xb3w\xdb\x1f\x01\x00\x00\xff\xffPK\x07\x08\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x001/spec.ymlUT\x05\x00\x01\x80Cm8\xac\x92Oo\xdb0\x0c\xc5\xef\xfe\x14\x0f\xc9\x80\x9d\x92\xb4W\xdf\x86\xae\xeb\x80\xfd\xbb\xf4^0\x16\x95\x10\x91%M\x94\x8d\xf9\xdb\x0fV\xe2$(\xb2d\x05z\xb4\xf8\x1e\xf9\xe3\xa3\xe7\xf3j>\xc7\xa3\xcfi\x88A|F\xb0\x88\xd4\xech\xc3\xd0\xc8\x8dXi(K\xf0\xcbj/\xfd\xcc\xda$Y\xb3\"o\x1968\xc3IA\xde\xc0\x8a+\xaf\x94\xd1\xd2\x8e\xd1E\xd0\xd4kt\xa3\xea9\xa9\x04_\xe3~y\xb7\xbc[\x90\x8b[\xba\xaf\xc61u\x05\x9012N\"\xf7\x10|f\x9f\xb5FN\x1dW@3=T\xc0\x02\xa6 \xc4\\Z=o\x19-\x89?R\xb7\xe4\xc5\xb2\xe6\xc2S\x01@\x1e\"\xd7\xa7\xcfC\xb3\x1fl\x84\x9eKiF1\xba\xc3\x9e\xab?\x8b\x81Z7+RO\xedX\x9eZ.\x87\xa9\x90\xf8w'\x89\xcd\x91\x10\xf8\x90\xd8\xd6\x98-WG\xf5\xb8\xd8d\xb9@}\x00\xfe\xa8x\xf8\xfa\xe9\xe7\xd3\xe3\xf7_O\xef\xc8\xdcl\xc9o\xd8\x85\xcd%hKN_Q\x9f\xf4W\xb0\xbf\x94s\x17\x1a\x12/~\x03C\x99\xa091\xb50l\xc5\x97\x13\xea\xf9\x0e\xc5s\x866Z^\xf6\x96\x9bY\x9eiWo\xe3\nM\xd7\xb2\xcf%\x1f\xd8\x90\xca\xefz\x88\xfc*]h\xf42\xd6\xcd\x99\xdfdM\x9e@\xaa\x9c\x15\x9d\xb2\xc1z\xf8\xdf\xb9\xbbb\xbe}\xa7\xbd\xee\x8dap\xcf.\xc41\x0f$\xd6\xd0\xa5\x86\xaf\x9e\xe8\xc5p\xffO\x94^T\xd6\xe2$\x0f5b\x92\x9e\xf2+\xc4\xd1}\x02\xfc\x1b\x00\x00\xff\xffPK\x07\x08o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(3\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xfe\x00\x00\x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa65\x8d*\x01\x00\x00 \x02\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81J\x02\x00\x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xca\x03\x00\x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00\x14\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb3\x04\x00\x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf6\x06\x00\x001/changelog.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81 \x08\x00\x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x19\x05\xa8\xb0\xfd\x00\x00\x00\x9e\x01\x00\x00/\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf1\x08\x00\x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(v\xb2^\x18\x05\x01\x00\x00\xaa\x01\x00\x002\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81T\n\x00\x001/data_stream/_dev/test/pipeline/expected.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(g.\xe6-M\x01\x00\x00j\x04\x00\x00)\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xc2\x0b\x00\x001/data_stream/_dev/test/pipeline/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81o\x0d\x00\x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00'\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81V\x0e\x00\x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4M\xe0G\xef\x01\x00\x00,\x05\x00\x00$\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81@\x0f\x00\x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x8a\x11\x00\x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x85\x12\x00\x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x92\xc8f\xce\xf6\x01\x00\x001\x08\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xac\x16\x00\x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xef\x18\x00\x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x816\x1a\x00\x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x1b \x00\x001/spec.ymlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x13\x00\x13\x00)\x06\x00\x00\xe0!\x00\x00\x00\x00" + data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8D\x8f1N\xc50\x10D\xfb\x9cb\x94\x06(\x02\xbd\xdbOK\xc7\x05V\xf6$Z}\xc76k\x07\x91\xdb\xa3\x18\xa3\xdf\xce\xbe\xd1\xdb\xa9\x85\xdeM\x80\x84\xa0Ms\x92x\xcb\xa91\xb5\xea\xd0\xec\xe0\x04\xf8\xff`\x02\x80\x05\x81\xd5\x9b\x96\x8bvx\xcf\xfeN\xc3-\xef%W^\xec\xaa\xdbar]\xb1j$\xd6l\x08,1\x9f\x9a6\x14\xf1w\xd9\xf8T\xa1\xa9q\x1b`\xa5}\xab\xe7s}\xe9\x0e\xa0\x9d\x85\xae\xf7G\x90d\xa7\xc3\x1c\xban\xf1\x7f\xba\xd7s\x8f\xf3\x00\xc6\x97\x1f\x0c*\x9f\xbd=K)Q}7\xbc\xfd,\xa7<`\xe3\xd7\xa1\xc606\xfe\x06\x00\x00\xff\xffPK\x07\x08\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8t\x91\xb1r\xf20\x10\x84{\x9eb\xc7\xff\xdf\x02\xbdZ2\xe9\xd2\xe5\x05\xce\xbe5\\\"K\x8e$C\xfc\xf6\x19+\x86\x81\x19Rjoo\xa5o\x95Gvn\x03\x88\xaa\x15\x8bA\xfc!\x86\xc2P\xb2C/>s\x03tWe\x03\x00[(s\x97l\\\xec\x0e\xaf\xd1+S\xf5\x88\x05\x0bG(G\x1f\xe7\x81\xa1\xa07\xcf\x8c>&\x08^b\xf7\xc9\xb4m%S\x91\x99\xce\xd6\xf1\xce[\xb3\x812\x8ft\xe8k\xe8*\x05\x19\xe8\xa0u}\x95\xfe'\xf6\x0e\xcdn\xff\xab\xee\x17\x8a\xdd<\xf8f\x9d'~M\x96\xa8\x0e%M\xc4?\x94\x88\x96\x10\xfd\x98r\xa1\xe2rb\xc0e\x11\x14\xb1\x9c\x98\xee\x1f=D\xa5\xcf\xcfX\x0f1\xf4v\x9c\x92,\xc7\n\xb7\xce\xdb\x85\xfb,\xc9\xea$C\xceb^Z\xcf\xca\xfe\x17\xa4y> 65!\x94|\x8f\xb2\x96\xffF5y\xaf{\x8d\x8c\xa3\xb7\xae^\xb5\xff\xde\xce\xf2\x8c\xfb\xfaw\x0fm\xdd\xf2o}\xfd\x04\x00\x00\xff\xffPK\x07\x083\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8l\x90\xcd\x8a\x1c1\x0c\x84\xef~\x8a\x82>d\x17\xb2;\xf7\xbe\x056\x97\x90?\x08\x04r\xd4\xd8\xeanm\xbc\xb6#\xa9g\x98\xb7\x0f\xee\x9e$d\x19\xdf\xcaBU\x9fj\x18\xc20\xe0\x89-\xaa\x1c\xd9\xe0\x0b\xc3\x1aG\x99$\x92K-\x98\xaa\xe2D*\x9b2\xd0\x89$\xd313\xce\x0b\x17$n\xb9^\xa4\xcc 4\x8a?i\xe67\xd6-\xa58\xcf\xba[\x18\xebI\"\xdf\xd9\xfdc\x18\x86\xd0\xfd\xc7\x00\x0cx\x7fb\xbd\xf8\xd2\xd7\xd7\x92X\xb1\xb02\xa6\x9as=\x1b>|\xfb\xf2\x19\x16\x17~!\xdc-\xee\xcd\xc6\xc3\xe1\xd9jy\xd8?\x1f\xab\xce\x87\xfb\xb78\xab\xb8s\x01\x19~\xbc\xfb\xf4q#V\xa6DG\xc9\xe2\x97\x00\xf8\xa5\xf1\x88z|\xe6\xe8\x01\xa0\x94\xa4\x83Q\xfe\xaa\xb5\xb1\xba\xb0\x8d\x98(\x1b\x07\xa0\xfd\xfb\x0b\x00\xf6\xe3\x8b_\x15\x90\xb6\xb2Z7\x18\xf1}\x1f\xa2\xd0\x0b\x1b\xa8\xa4\xde\xa0(b-\x93\xcc\xeb^\x80]7_a\xf4w\x1b\xc5u\xe5\xb0gM\xb4f\xbf\x19\xfd\xb4\xcf\xfe\xf0\xc1+V\xe3\xff\xa2\xccU\xca\x1c\x00\xe5_\xab(\xa7n\xf4\xf0\xf7\xa2M\\#~\x07\x00\x00\xff\xffPK\x07\x08t\xa65\x8d*\x01\x00\x00 \x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xcf\xc1J\x041\x10\x04\xd0\xfb|E\xb1\x08\xea\xc1\xdd{\xae\x82\xff\xd1$5cc6\x89\x9d\x1ea\xfe^2F6\xa7P<\xba\xba{c\x0c\x0b )\xa9k-\x92\xdfkq\x16\xef\x01\xab\xe4\xce\x05\x88\xff\xc9\x02\x00oH\xec\xd1\xb4\x0d\x1e\xf0Qs\xa2\x9dF\xb4h\xd9\xc6w\xd5m7\x19\x00\xc6,\xce\x04\xafHl\xb9\x1e\x83\xf8'\xd1$~\xc9\xc6\xe7\x0e-\xcem\xf2N\xfb\xd1\xc8\x97\xfez\x96\x01~4\x06\xacg\xcb\x8c\x8a\xdc\x19\xe6\xb4\x19\x19\xbfw5\xa6\xc7\xd2\xe3=\x19\xd7\x80\xcb\xf5\xf6go\xe3\xd8\xebq\xcf\x97\xdf\x00\x00\x00\xff\xffPK\x07\x08\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00 \x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8\x9cT\xdfo\x94@\x10~\xe7\xaf\x98\x1c&\xd5(\xd0F\x8d\x91\xb7\xc6\xd6\x1as\xb6\x8d\xfab\xfc\x91,0\xc0\x94ew\xdd\x1dzw\xff\xbd\x81=\xee\xb8\x1f\xad\xd1y!\xf3\xcd\xb7\xc37\xdf2\x84a\x10\x86p\x81.\xb7\x94\xa1\x03\xae\x11\x9c\xc1\x9cJ\xca\x05\x93VPj;\xa0F\xe4\x8d\xa8\xf0\xc4\xc1\xbb\x0f\xe7\xd7W\x97\xf3\x9b+(Ib\x10\x86A\x7f\"\x0d\x00B\xb8\xbcG\xbb\xe2\x9aT\x05\x9d*\xd0B\x8d\x16\xa1\xd4R\xea\x85\x83\x8f_n\xae\xc1\xe55\xb6\x02\x9e\xd6\xcc\xc6\xa5Ir\xe7\xb4\x8a<\x18k[%\xcf^\xc0\xc2\x123*\x10\x0e\xbe\x9d\x7f\x9a\x0f\x1a,\x8aBd$\x89W\x01\x00\xaf\x0c\xa6 \xac\x15}F\x8c\xad\xeb\x05\x8c\x05\x9d\xdda\xce\x03 \x8a\x82\xfaA\x84\xbc\xb5\xda\xa0eB\x97B)\xa4\xc3\xa1n\xb6\xe8\x90\x03\xdc\xa3u\xa4\xd5\x98\x02\x14\x83=\xa6\xef\x92\xc2\xad\xf7ad\xc5\x1b\x96\x7f\xb3cK\xaa\xda\x80F0\xa3U)\x9c\xfc\xfa~\x1a\xbd\xfd\xf9\xfcG\xbc\xfb|r\xb2\xe1\xe2R\xb4Fnu\x00D0;\x8bO\xe3W\xb35\x92\xd7BUS\xc2\x8e\xb299\x06]\x8e, 5^\xdaCbG\xff|L\\\x9c\x92&^\xfa\xf8\x9b\xa3>\x0e}\xf51\x95\xbcS\xd8\x9b\xe6b\x9bl\x87\x8a\xf7N\x1c\xf5\xdc\xc7\xa1\x9b>\"\x98\xbd\xa7%dV7\xa8\x80\xb15R0\xce\x82\x83\xb6\x8f\x89\xfb\xba2\xf8\x7f\xaaT\xd7\x1eQ\x94Y\x14\x0d\xa9*\xf2\x0dgG\x18]U\xd2\xf2H\x01U-T\x8e-*>Rm\x94^\xa8\x88\x9c\xeb\xf6\x9aJR\xcd\xa3#\xceI5\xc0\x1a\x86\xb3\xa0-\xdc~^\x13\xb2~\xbb\xbd\xd0\xfe\x1b+\x90\x05\xc9\x7f\xf1\xe0\xe1\x9b\x19\xff \x15q\xddeq\xae\xdb\x04\xa5pLy\x92\xa1`\x97\x0cj\\r\xf6\xf2\xf5\xe9\x9b\xe9@\x16\x7fwd\xb1\x98\xf6\x8c\xa6\x03\xed\xe0\xbd\xb8\x1d\xa0w#8\xec\x13\x8d\x8b\xb3\xce\xd6\x9b\xf5'\x00\x00\xff\xffPK\x07\x08\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/changelog.ymlUT\x05\x00\x01\x80Cm8\xac\x8f1n+1\x0cD{\x9db\x80\xadwe\x7f\xe07\xdb\xa5p\xe1& \x10_\x80\x91\xb8+\xc2\xb2$\x98\xb4\x81\xdc>\xb0b7I\xca\xb4\xc4\xf0\xcd\x9bap\xc3\x80C\x12\xc5\"\x99\x11k\xb8\x9c\xb8\x98\"$*++\xa4\xc0\x12\xa3Q8\xd2\xca\xd0\xc6A\x16 dR\xcb\x84\xbdA\x14\xcf/\x07\xd0\xef\x91\x8e\x9d\xdc0\xb8\x11W>\xab\xd42c;m\xa6\xcdH\xb9%\xda:<\xaaf\x07\x8c\x88\xac\xe1,\xcdzp_\xc4\x84\xf2\xe3\x13u\xe92\xbbLj\x12\xf0\xfa\xad\xb1;9\x00\xb0\x8f\xc63\xb8$*\x81o\x83\xfa5K9\xceHfMg\xefW\xb1ty\x9fB=y\xfe\x02\xfa\xfb\x84\xf1\x06\xf4\xed\x92\xb3\xfa\xedO\xab\xa7\x18\xa5\xac\xdd$\x89Z]\xcft\xc2\"\x9c#HA\xb8R\x96\x88\xdd\xdb\xfdvs\xf9[+\xff\xff\x9f\xfb\x0c\x00\x00\xff\xffPK\x07\x08\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xce\xb1\xaa\xc30\x0c\x85\xe1=Oq\x08w\xbd\xc9\xee\xb5\xd0\xf70\xf6I18r*)C\xde\xbe\xd8\xa4T\xe3\xcf'$;\x98\xc2\x04\xc4\x9c\x8b\x97&\xb1>\x9a8\xc5-`\x8b\xd58\x01\xe9[&\x00\xf8G\xa6%-G\xe7\x01\xcfV3u\x98X\xa4\xc8\x0bNs(\xad\x9d\x9ahc\x07\xf0\xeb`\xc06\xf0\x9d$\xee\x0cC\xdfA\xf9>\x8b2\xff.\xf7\xf9Sn\x01\xf3\xb2v\xb9\xf6\x7f\x97k\xaf\xf3'\x00\x00\xff\xffPK\x07\x08T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00 \x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8l\x90OK\xc3@\x10\xc5\xef\xfb)\x1e\xcdA\x05\xb5\xf7\xdc\x04E\x10\xff\x81'\x11\x0f\xd3\xec\xa4\x99\xb2\xdd\x8d3\x93\x94|{i\x13\xf4\xa0{Z\xde\xbc7\xef\xc7TU\xa8*\xdc\xb25*\x1b6x\xc7\xb0\x9e\x1bi\xa5!\x97\x92\xd1\x16\x05!\x92\x13\xcc\x95i\x7ff\x18I\xa5\x0c\x86V8EDn%\xcbl\x96\xc4\x16\xaa*\x1cw\xd4\x01\xa8p7\xb2N\xdeI\xdeb\xc8\x91\x15\x1d+\xa3-)\x95\x83\xe1\xe1\xed\xe5\x19\xd6t\xbc'\x9cw\xee\xbd\xd5\xeb\xf5\xceJ\xbe\x9a\xc5\xeb\xa2\xdb\xf5\xc5%\x0e*\xee\x9cA\x86\xf7\x9b\xa7\xc7\x13\x952E\xdaH\x12\x9f\x02\xe0S\xcf5\xcaf\xc7\x8d\x07\x80b\xfd\xac\x0f9\xf8\xe5\xaa\x07\xfb\xb5[\xd2V\xee:\x95J\xc6\xe8\xac\x92e\xf3\xba\xb0U\x8f&\xfa\xdb\xdaDz\xf4\\~\xcbD\xa6AU\xaf;[u\x89Z\x9f\x8e\xaez5F\x92\xff\xdf\x11\xc2\x85\xfd\x90\xe1\x96\xb1\xab\xcd\x9b\xe0\x8d\xdd\xb7\xa9K\x85`\xc0\xb3Z\x11\xaa\xd3\x9f\xf9h{\x81\xa6\xff{\xb6\x15\xfe\x1cH\xf10\x1cK\xf5=\x85H\x89-\xe5\xa9\x0e\x10\xc7/\xc3\x0c0\x96\x9c\x9eL0=\xb5o\x05\x80&c}\xb7\"O\xd0\x9bn\xf0\xac#N-]`\xc7\xd6\xb1u\xd6\xd3\x0b\xfb\xb7\x85\x11\x05\x82\xba\xbc\xc0Yl\\5\xe4\xeb]$\xc5\xa4\x9f\x9a\x91(\xb7\x8e\xf3[\xea\xf0\xa1\\\xec\x83\x0b\xfb\x8f\x82z\xcd\x99{1>\xb9\xb3\xfe\xf0\xea\x1e\x03\x00\x00\xff\xffPK\x07\x08g.\xe6-M\x01\x00\x00j\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8\x8c\xce=\xae\x830\x10\xc4\xf1\x9eS\x8c\xd0k\x1f\xf4n#\xe5\x1e\x16\x1e\xa2\x95\xcc\xe2x7\x05\xb7\x8f\xf8\n-.G?k\xffV8\x84\x06\x88)\x89\xcb\xac1?fu\xaa[\xc0\x18\xb3\xb1\x01\x86si\x00\xe0\x1f\x896T)+\x0fx\xce9\xb1n&\x8a\x8a\xbeP\xa40\x8b\x12Ns\xdb\xfe\x00\xbe\x14\x06\x8c\x1b>&\x8d\x13\xc3O\x1fc\xe5\xfb#\x95\xe9\xba\xbe\xbe\xbf\xca1\xa0\xed\xfaS\xf7kw\xb7L\xb9\xbd\xd7d\x8b9\xa7{E\xbb\xbd\xd7\xb3\xdb\xab\xe6\x1b\x00\x00\xff\xffPK\x07\x08\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\x00 \x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm84\xce?\x0b\xc20\x10\x05\xf0\xbd\x9f\xe2Q\x84N\xd5=\xab\xb3\x93\xce\xc2\x91\\\xe5 Mc\xee\n\xe6\xdbKc\\\xdf\xfb\xdd\x1f\xcd\xec\xdd\x00P\x08b\xb2%\x8a\xd7-\x19'S\x87\x85\xa2\xf2\x00\xf8\x7f2\x00\xc0\x8c\xc0\xea\x8b\xe4\x83;\xdc\xab\x1a\xaf0V;\xe0\"\xaf\xbd\xd0Q5\x0cX\xcd\xec\xb0H\xe4\x1ed2\xe3\x92\x1c\xa6\xe7\xcf\x9f\xeb\x1aOSo\xfb\xad\x1b\x07\xa1G\x1b\x1d)\xe7(\xbe\xed\xbc|\xe6Jk\x1c;.\xfc\xde\xa5p\xe8\xaf~\x03\x00\x00\xff\xffPK\x07\x08;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00 \x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8\x8c\x94\xc1n\xd4@\x0c\x86\xef\xfb\x14V\x83\x04H]z\xcf\x0d\xa9\\\x10\x14\xa4r\xe1\xb4r2N2e2\x0e\xb6\xd3m\xde\x1e\xcd\xa4\xdbN\x1b*\xed-\xfe\xfc\xeb\x1f\x8f\xe3qU\xed\xaa\n\xaeI[\xf1\x0d)\xd8@\xa0\x13\xb5\xbe\xf3-\x9a\xe7\x08\x1d\x0b 84\x045!\x1c\xdf+\xdc\xa3x\x9e\x15:O\xc1\x81\xa3\xceG\xbf\x8a} \xddU\xd5.y\xd4;\x80\n\xbe\xdc\x93,6\xf8\xd8\xc3\x1c\x1d \x0c$\x04\x1d\x87\xc0G\x85\xaf\xb7?n@\xdb\x81F\x84\x0f\x83\xd9\xa4\xf5\xd5\xd5\x9dr\xdc\xaf\xf0\x13K\x7f\xf5\xf1\x12\x8e\xe2\xcd(\x02*\xfc\xfe\xfc\xfd[\xaeJ\x08\x1d6>x[v\x00\xb6LT\x03\x8a`\x8a\xbc\xd1\xa8\xa9\x80S\x82\x9b;j-\x03t.W\x8b\xe1\xa7\xf0Db\x9e\xb4\x06\x93\x99rzz\x869\x06\x888\xd2\xe9\x1b\xc0\xe5fM\xc9\xa1\x86\x1b\x1c \xb8[;\xf1$Y\x8fT\x13\x1f\xfbGh\xde\xc2[&\xbfR\xee<\x97\x84\xfeor\x8d\x86)}\x96\x0f\x00\xc5y|v\xda\xc3\xe0\xd5\xb8\x17\x1c\x0b\xd6rT\xc3h\x87?\xb4\x1cY\\\x912z\xb0\"\xdc\n\x02\x17\x87\xed\xc1G\xa3\x9e\xa4 :\xb0\x94\x16\xcdbT\x84\x8e\xe7&\x94\xa0\x0b\x8c\xa5~\xc0\xd0\x1d^Cm1\x90\xdb`\x87/\xbd\xd1\xe8\x101\xb2\x96\xe73\x07\xc2X\x12\x1fQ\x96\xed%\x0e\x82\xb1\xdf\x94\xb6\xa1\xa9\x03\x1b\xb8^k\x8bSE\xaf\xa1\x9f6\xa8\x17\x9e\xa72&>L\xeccy\xd9b\xd2O>E\x10I\x8d\xca\x1fuz1\xa7\xb8\x0b\x98^\xda\x93\xa6\x1c\xb2'\xd9\x8b\xc9\xbbM\x7f\xb2Dg\x8d`\x16\xe8[\x96s\xb3_\x05\x97p\x1c(f\x03\xf0\xfa\xaa\x01\xef\x84\xba\x1a.\xaa\x8b\x1cUy\x9b<.\x0e\xd0%\x1a>\xe4E\x91;\x94\x16\x90q^p\xc2l\xa9\xc6\xbc\xec\xb2:;\n\xfd\x9d\xbd\x90[k\xda\xe7g\xff\xf8\x99\x8e\xdf\xfd\x0b\x00\x00\xff\xffPK\x07\x084M\xe0G\xef\x01\x00\x00,\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm84\x8f1k\xc0 \x10\x85w\x7f\xc5C\n\x19\x8aI\xd7\xba\x16\xbau\xeb\xd6\x86r\xe8 \x07\xc6X5\xd0\xf4\xd7\x17m2\x89\x8f\xef\xbe{W3;\xab\x00\xf2^\x9a\xec\x89\xe2\xcb\x9e\x1a\xa7V-\x02\xc5\xca\npw\xa2\x00\x03\xcf\xd5\x15\xc9\x1d\xb6x\x15\x8e\xbe\xc2s\x904\xe6\x15\x00\xb43\xb3E\x90\xc8\xe3\x9b\xa95.\xc9b\xfa \xf3\xfbd\x9e\xd7\xeb\xfdZ\x1f\xef\xe4s>\xb78\x0d\xbc\xf0\xf7!\x85\xbdE+\xc7\xbf\xe1j\xf0\xc6^\xe8}\xc85\xe5\x1c\xc5Q\xdf\xb9\xfc\x98\x93\xb6\xa8\x07\xfaP8X\xe8y \xa3\xda\xdc\x0f\xecn\xad\xfe\x02\x00\x00\xff\xffPK\x07\x08t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xbcW\xdd\x8f\xdbD\x10\x7f\xf7_1J\x90h\xa5&i\xe1\x01)/\xa8\xf4*q\x88\x96JA \x84\xd0ib\x8f\xe3\xad\xd6\xbbfg|\xb9\xfc\xf7h\xfd\x91\xac?/\x01\xd4}\x8agfg~;\xdfY.\xa3\xe5\x12\xee\x88c\xa7\xf6\xc4 \x19\x01\x17\x14\xabT\xc5(\xca\x1aH\xad\x03\x84\x04\x05\x81\xc5\x11\xe6_3\xe4hTJ,\xebS\xae!U\x9a\xa2\xe52\xf2\xd7\xb6\x11\xc0\x12\xde?\x92;I\xa6\xcc\x01J\x93\x90\x83\x8c\x1cAj\xb5\xb6G\x86\x9fv\xbf|\x04\x8e3\xca\x11^d\"\x05o7\x9b\xcfl\xcd\xaa&\xae\xad;l^\xbe\x82\xa3S\"d\x00\x19\xfex\xfb\xe1\xe7\n\x88#Lp\xaf\xb4\x92S\x04 \xa7\x82\xb6`\xf7\x9f)\x96\x08\x00\x93Dy\xc8\xa8?9[\x90\x13E\xbc\x85\x145S\x04\x90P\xaaL\xc5g\x8f\x12\xe0\x11]\xf3\xcb3\xbd\x03\n\xcf\xdd\xc2\xbd)J\xf1l\x85{M\xbcndjk\xe8\x1c\x9e\x1a\x8a\x12\xca\xcf*\x06p\xea3\x0f\xaa>\xc5\x85s\xa6\x01\x18\xcc)\xfc\xee\xa1\xfc\xad\xc1W\xc9\xad;r5\x10\x16\xa7\xcc\xa1\xc3\xa0'\xcc\x0b\xdd5\xe3\xcf\n2\xcb\xc2QO\xc5\xb4\xf1;\x9f\x0e^\x06lz\xf6\xd4\xb5 L\x99\x0f\x01(#t 7\xa0\xef\xad\xd5\x03b\x81\xccG\xeb\x92\x01C\xe8I\x06\xc4\x13\xe6\xfaJ7\xf4\xee\x8b\x12=\xe7\x86_=\xff\xdf\xb8`\x12\xc0\x8f\xbd8\x84\xe6\xa6q\xec2\xeb$$\xfd\xaf\x98\x16\x15(\xaf\xb2\n\x92\xab\xfb\x02\x93{T1\x81X\x88\xad1\x14\x0b\x88]\x04\x97\xf3R\x8b\x9a\x01\xfd\x0e\xcd\x19\xa3W!\xa8L}\xa9\xd0\x04\x8f\xa8K\xe2\xefG\xb0\xfb\x8c 4=\xc5)\x96Z\xfa\x85\x05\xf3\xc1ve(\xea\xe8\xefR9Jf \xdf\xf3\x05q+\xfe%!rf\x8f\x0f%\x93\x9b\xcf\x85R' \x99\n\xc0\xee\xa9\xbak|\xb4|\x8b\xf7:`\x7fjA\xdd\xfc\x86\x1e\xae\xb9'\xf4\x9f\xdb\xea\x98~\xc1]-Q\xa7\xc0\x0b~Yu\xfe\xf6)#H\xff\x84E\x9d\xcf\x8bW\xb0\xa8\xfa\xb3\xff\xd14\x14\xff\xb3y\xca\x02\xfe\xea\xdc\xee\xb5\xefP\xe5H}L\xbf\xb1\xaa\x11?\xc8\xb6\x9b\xcd\x9bo\xbe[\xbf^\xbf^\xbf\xb9T\xc2X^\xad\xaa\xae\xdd!x\xc3\xd1p\x16\xf8\xc1\xcb$\xa3\x83\xea#\xe6U\xf7\xa9\x873IwR\x05o\xe8\xf4\xb1\xf1\x0e\x16\x0c\xf8I5C\x17\xac\xe0\xed\xef;\xd8+\xad\xfd\xb0\xcfI\x9c\x8a\xeb\xf6\xe5H\x13\xf2\xb8\xd1\x9d43\xfc\x06\xc3\xc1\xd0X\x01=\x15\xe4TNFP\x9f\x89{\x12\x9c\x84yf\x86\x83\xad\xeb\x89f\x9a\x05x\xae\x85\x13\xbe\xdb\x7fk{\xe0I$\xa1pmf|\x0b\xd9\xd5<\xb0iJ\x8e\x92\xaaZ\xa7\\\xf5\xe5\x96\x12\xe5w\xa3n\x01\xdc8QV\x80G\xdet]\xd6r\xf8\xdb\x1e\xa1\xda-/\x84\x91y|\xb3u\x9f\xb0?\x8c$l}&\xe7\xed\xcdv\xdeY\xad\xfdP\x9c*\x90F-\xe5\x85F\xa1\x87\x02%\x9b\xe9\x89\x8bO(\x99\xef\xde\xef5\xb2\xa8\x98 ]\x9c\x812 =\x9d\x95T\x8d\xb2\xc9\x8f\xc55\xe8\xc3\x15\xb8>_9J\xb7\xb0Xn\x82uy\xe3\xc5B}d|'~fP\xd68Z\xd9k&\xcc\xb0Q\xae\xea\x88\x07\xdf\x81\x95\x80Zee\xf5M\xa1{F\xeb\xaa\xeb@d& \xff\x1bD!\xc2N\xd9<_4c%SE\xe8\xa1\x8d\xd0v\"\xd5\xe0\xbe\x1b\xc8\x0b\xa00W\xc6J\xf9\x1a\\0Y\xce\xe0\xc7\x86(s\x18\x0c\xb5n/j\x84\x80)n\xd7\xcbn\xea\xf5nO@\x05\xc8\xb1(\x9e5\xf7\xa1\x11\xfa\xef\xe6\x949\x10\xcbC\xa1\n\xd2\xca\xd0\xac\xd5~e\xf9\x9b\xd0\xde<\xfb\xe9Z\xcb\xd7\xc6\x05fb\x03\xa3\xff\x02\xeb\xd3\xcb\x9e.\xd8\xder\xd1\x9e\x99\xddf|\xf9\x0d\x16\x95P\xa0-\xcb\x7f\x02\x00\x00\xff\xffPK\x07\x084!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8\xb4\x95\xd1\x8b\xdb>\x0c\xc7\xdf\xfbW\x88\xf2\x83\xfe\xc6\x91v\xaf\xcb\x18\xe3\x18\x1bl\xecn\x0f\xb7\x97\xb1\x1dE\x17+=\x0d\xc7\xf1,\xa7\xac\xfb\xeb\x87\x9d\xa6I/\xa1I8\xf6\x16d\xe9\xeb\x8fdI\x11KY\xba\x00@\xa5\xd8siP\xbf+\x8d'\xe3%\x85\x1c\xb5\xd0\x02 k,\x0b\x80\x04\x14I\xe6\xd8\x06\xe7\x14>\x94Z\x91\x8b\x1e\xc8\x86\xcd\x0e\x10\x84\xcdN\x13(\xf4\x08\xe2\x1da\x01\x8ar6Q\x7f\x01\x00\xe0\x0f\x96R\xc8cl4X\xf4\x9e\x9cIa\xf5\x1d\x93?/\x93W\xf7\xff\x1f?\xb6\xf7W\x8d\xe9\xc5\xdbUtv\xf4\xabbG*\x05\xef*\x8a\xa6K\xf4\xe7\xfc\xbd\x0c\xae\xbb\xa0+\x81\x02\x0d\xe7$\x1er\xd6u\xf8\x89\xb75\x1c\x15oH1~\x8d\x87K\xb4Vs\x86At\xf3;9`\xa1\x97Gg\x83Eph\x84\xd7\x87\xf6h \x15\x80\xff\x1c\xe5),\xd7\x9bSDx\xa46l\xf4 r&\xad:5\x97\xf34\xda\xb27l1@&1\xd5\xae\x9b\x99D\xb8#\xe3\x13G\x1a=\xcd\"\x8b\x81=\xb0\xf6i\xc7\x9e\xfe\xe9\xe3Oe\xed7n\x83:\x08\xdb\xe0\xd6Q'\xe3`)\xc7\x90G\x01\xdfk\x14\xcf\x99\x10\xba\xec\x11P\x84\xfch\x1d\xa9\x1b\xf3\xaf*w\x0e\xf6\xd1\xec\xc2\x18\xdd\x96\x8a\xc0\xb2%\xcd\x86\xe6\xd6\x93\xa3\xc6\xb6 \x9fX\xc1!\xf8\x1e\xfe]em\xe9|\xe0\xaeo\x19\x84\x046\xf0\xed\xfa\xe6\xf3Ie`\x19\xc0\xd9\x02[_\xfd\x08\x83\xb1\xea\x1cN\xda\x16\xaf\x9bnIT\x99UE\x98\x17\x85\xf2H\xf2&\xf4\xce\xb2#7<\x07\xcfH\xf0\xd3\xdd\x97\xdby \xfe\x94\xd2\xcc\xc80\xb8\x8fe\xf0\x94\x1e\x0b\xab h\x1f\x86\xf1\xd2*>nW\x89\xfe\xdb\xe8\xbf\xee\xde7\x03m\x02V\xbf\xe9=I\xacq\xb3\xdc\x02\x9a\x00\x1a\x05R=$uW\x8f\x8e\xe72\xa8<\x0bC\xd1\x9etiC\xdf\x80#)+\x97\xd1\xe8\xb5[E\xfb\x0b\x97\x02\xecY\xf8\x815\xfbC\n\xd6\xf1\x1e}\xef\x87\x104\xda\xdf\xc1\xdf\x00\x00\x00\xff\xffPK\x07\x08\x0d\x13\xca\xa7\x0c\x02\x00\x00O\x08\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00 \x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8\xcc\x90\xbdN\xc30\x10\xc7w\x9e\xe2\x94\xa5\x03\xa2\xec\xde\x10\x12\x0bbcDB\xd7\xdc\x85\x1er\xce\xc6\xe7V\xc0\xd3\xa3\x98$\x94\xb6CP\x84\x94\xd1\xe7\xff\x97~\x00\x16\xb9v\x17\x00\x00H$Y\x82\xa2\xbf\x0d\x9aY\xb39h\xd0\x1b\x97\xdfz\xb8\x95\xd7\x15\x10[\x9d$v\x06\x07w\xc1\x13\xa7\xa2AQ\xd1\x17\xb8\x97\x0d*\x02\xa1m7\x01\x13\x01\x9aq\xb6b\x06\xc8\x1f\x91\x1d4\xc5\xd5\x9f\x14[v?\xfa\xfe\x9a\xf8m'\x89\xe9p\xc9\xf1\x96\x9357\xc7\xb5\xd0\x88\x1f\xbcc\xf9\xe1\xa9\x0f|`\x12|,\xdf\x15\xc6\xe8\xa5\xc6.\xf1\xfa\xd5\x82V\xa38b\xce\x9c\xd4\xc1j}\xf9\xb4\xee\xfeV\x7fb\xb2\x17\xdb\xa1\x97\xcf\x92=\x91\xcb/\xcf<6g\xea\x97\xc5\xc7p\xcf\x04\xc6\x98\xea\xedD<\xdf\xe2y\\Nk\x97\x85\xa5\xc58\x91F\x8bq\x1e\x8a\xb1jY\x04D\x89\xdf\x87\x94\x89,\xaabz\xeeM\xd5,.zn\xc1\xff#\xfa\n\x00\x00\xff\xffPK\x07\x08\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00 \x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xccXQo\xdb8\x12~\xf7\xaf\x18\xc4\x05\x92\\\xcer\xd2\xe2p\x88\x81\xbb h\x8bk\xef\xd2^\xb1\xe9\xcbn\xdb5(z,\xb3\xa1H\x953\xb2\xe3\xfc\xfa\x85(\xc9\xa6d\xcb1\x12/\xb6|\x12\x87\x14\xe7\x9b\x99oFC\xf5\xfb\xbd~\x1f\xde I\xa7b$\xe0\x19\x02e(\xd5TI\xc1\xca\x1a\x98Z\xe7\xa5\x99\x90w\"\xc1c\x82T(\x03\xa90j\x8a\xc4\xd12\xd50U\x1a{\xfd~\xafxs\xd4\x03\xe8\xc3\xdb9\xba%\xcf\x94I 7\x13t0C\x870\xb5Z\xdb\x05\xc1\x7fo\xff\xff\x11H\xce0\x15p2c\xceh4\x1c~'k\x06\xa50\xb2.\x19\x9e\xfe\x1d\x16N1\xa3\x01A\xf0\xeb\xf5\x87\x1b\x8f\xc5\xa1\x98\x88Xi\xc5\xcb\x1e\x00/3\x1c\x81\x8d\xbf\xa3\xe4\x1e\x80\x98LT\x81Z\xe8O\xcef\xe8X!\x8d`*4a\x0f [\xcbz\x00P\x1c\x97\n\x1e\xcf\xd1\x91\xb2\xa6\x94\x01L\xbc3\xb2\xe2\x98\x11|\x9e!T\xeb`\xa7\xa1#6\xdd\x94\n\x86\x9cp\x02\xf1\x12x\xa6\xa8\xde\x19U\x07\x97X\x89\x9d2I%\xca\x043:3\x82\xe3\xdfO\xbe\x9c\x0f.\xbf\x9d\x9d~\x8d6\x9fN\xaeF\x03\xff|=\xf8M\x0c\x1e\x06\xdf\xceN\xaeF_\xa3\x86\xe4\xf4o\xa7\xa7W\x85\xf8\xac)\xbezq\\)\xc3{\x91f\xba6\x1e`\x00G\x17\xd1yt~\xe4\xe7F\xa4\xd8\xe9\x82b\xb1e\xff^V}\x11\x83\x87\xf3\xc1\xe5\xf8\xdbY7\x08\x91 9C?e\xc5\xba\x1b\x84_\xdd\x1f\xc5\xa6\xa6\xeb\xb5\xa6\xf0\xf0m\xfa\xaeA[\x93\xa0\x0b\xa5\xcfW\x0d\xef\x0dc\xe2\xae\xdc\xeeL\x00r\xb2iS\x03\xf6/\xa8\x05\xabyQ\x13\x0b\xe7X_\x1f\x0b\x1b\x8e TZ\xc4\xbbhY\xa3\xc6\x01\x1da\xd8\xe1\xc3\xa1J\x93\xa1\xb6\x89\x1d\x97=LD\xf3\xe4(\x0cl\xd8\xce\x94\xa3Y\xc5\xeb\x86\xa6@\xf6\\0U\x87qc\x13\x1bb \xf5\xb0\x0b\xc2\xadzX\xb5T\x87@\xf1\xea\xe5\xfd\xab\x97Gmrw\xeb\xff\xf0\xfe\xc3\xdb\xd5W\xb5\x06q\xc0\x10\xf9\x93\x864O\xce\xeeS\xbd\xc6\xe5\xf0G\xae\x1cN\xc2jB\xael\x00H:DC3\xcb\xbbS\"\xd8WL\xab\x0c\x15D\xc8\x04\xd2\xa1\xe0\xc7\xae\x02?u\xb6\x14\xe6\x19o\xde\xe1s\xa6L\x97qq\xf3\x9b\x8c \xdd\x1c]\xf1A\xe4\x9c\xa2\xcc<-\x85\xd6\xd1x.\xc2*\x91\xde}\xfe\xfc\xe9\x0d\xdczpp\xeb\xc1=1\xaf\x0e\x07\xed\xe2\xe5\xc5?\xee/../\x9f\x93ak8\x07\x0ck\x99g\x8d\xe0\xed\xca1\xa8\xba\x01\xd6%s3\xab\x95\\\x8e\x19\xd3L\x0b\xeeh!\xeb\xc4+7\xc3j3\xd8\xe9\x14\xdd\xcf\x93l\xe1M\xba\x1c\x0d3>Vw\xe9\x96\x19\xcf\x8c@p\x8b\xaeN\xd87s\x0e\x8b\xa3\xca\x1em\x13\x02a&\x90\";%)\xd8\xb5\xe5\xea\xbd\xb9\x007[\xaf\xdf\x87\xc5\xfa\xdaj\x8d\x927\xc0\xc2\xd4\xd9\xb4\xb6\xc4w\x84Fbh\x822Y\xce\xb4\x0b}\xdd6\xf9\x8du#\\Rt\x0f\x1bB\xaeV\x1a\x9b\x8c\x0d7\xb7x[\x8e}\xd8[\x8e\xed\x1c.\xc7fi)G\x93HUm\xf1\xb6F[vw\xc6\x05\xb6\xd3\xb4\x1c\x1d\x9d\xd2\x93\x94tQ\xa0\x1c-\"<\x16\xfcrt\xb2xs\xb9\x83\xcb\x7f\xaa)\xca$\xb5\x0dBJ\xa4\x92\xdf\xe8\x9cu\xde\xca\x8dw\xe7\xc2m=\xf1\x85\xc3\xe9\x08\x8e\xa2aq\x99\x1d\x13;\x14\xe9p\xf5\xf3\x972\x94\xd12\xd5\xfd\xe1\x04\xa7\xca\x94\x97\xb0aq\xd6Q\xeb\xac\xcd\xafA9\x06\xde\xdcM\xe1\xea\xd3\x10J\x03\x0f\x06ki\xaeYem\x16\x95^\x8c\xad\xd5(\xd6\xbb\xb7}\x94\x8az\x1dL\x9b\xaa7\x95\xda\x85AW\xbf\x7f\xb0\xeba\xa2x\x96\xc7\xa1 \x0d\n\xfdG\xf1\xbb<\x06\x87\x99\xa5\xe2>\xbf\\\xfd\x92\xad/\xb0iq\xc1\xf5\x7f(BNm\xe1R\xdb\x05\x83Jw\xaf\xb94h\xfd\x1e\xef\x05\xaeZ;\xa9\xed\x9e\xd5u\xde?W\xbf\xb0\xfc\xb3w\xdb\x1f\x01\x00\x00\xff\xffPK\x07\x08\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x001/spec.ymlUT\x05\x00\x01\x80Cm8\xac\x92Oo\xdb0\x0c\xc5\xef\xfe\x14\x0f\xc9\x80\x9d\x92\xb4W\xdf\x86\xae\xeb\x80\xfd\xbb\xf4^0\x16\x95\x10\x91%M\x94\x8d\xf9\xdb\x0fV\xe2$(\xb2d\x05z\xb4\xf8\x1e\xf9\xe3\xa3\xe7\xf3j>\xc7\xa3\xcfi\x88A|F\xb0\x88\xd4\xech\xc3\xd0\xc8\x8dXi(K\xf0\xcbj/\xfd\xcc\xda$Y\xb3\"o\x1968\xc3IA\xde\xc0\x8a+\xaf\x94\xd1\xd2\x8e\xd1E\xd0\xd4kt\xa3\xea9\xa9\x04_\xe3~y\xb7\xbc[\x90\x8b[\xba\xaf\xc61u\x05\x9012N\"\xf7\x10|f\x9f\xb5FN\x1dW@3=T\xc0\x02\xa6 \xc4\\Z=o\x19-\x89?R\xb7\xe4\xc5\xb2\xe6\xc2S\x01@\x1e\"\xd7\xa7\xcfC\xb3\x1fl\x84\x9eKiF1\xba\xc3\x9e\xab?\x8b\x81Z7+RO\xedX\x9eZ.\x87\xa9\x90\xf8w'\x89\xcd\x91\x10\xf8\x90\xd8\xd6\x98-WG\xf5\xb8\xd8d\xb9@}\x00\xfe\xa8x\xf8\xfa\xe9\xe7\xd3\xe3\xf7_O\xef\xc8\xdcl\xc9o\xd8\x85\xcd%hKN_Q\x9f\xf4W\xb0\xbf\x94s\x17\x1a\x12/~\x03C\x99\xa091\xb50l\xc5\x97\x13\xea\xf9\x0e\xc5s\x866Z^\xf6\x96\x9bY\x9eiWo\xe3\nM\xd7\xb2\xcf%\x1f\xd8\x90\xca\xefz\x88\xfc*]h\xf42\xd6\xcd\x99\xdfdM\x9e@\xaa\x9c\x15\x9d\xb2\xc1z\xf8\xdf\xb9\xbbb\xbe}\xa7\xbd\xee\x8dap\xcf.\xc41\x0f$\xd6\xd0\xa5\x86\xaf\x9e\xe8\xc5p\xffO\x94^T\xd6\xe2$\x0f5b\x92\x9e\xf2+\xc4\xd1}\x02\xfc\x1b\x00\x00\xff\xffPK\x07\x08o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(3\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xfe\x00\x00\x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa65\x8d*\x01\x00\x00 \x02\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81J\x02\x00\x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xca\x03\x00\x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00\x14\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb3\x04\x00\x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf6\x06\x00\x001/changelog.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81 \x08\x00\x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x19\x05\xa8\xb0\xfd\x00\x00\x00\x9e\x01\x00\x00/\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf1\x08\x00\x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(v\xb2^\x18\x05\x01\x00\x00\xaa\x01\x00\x002\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81T\n\x00\x001/data_stream/_dev/test/pipeline/expected.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(g.\xe6-M\x01\x00\x00j\x04\x00\x00)\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xc2\x0b\x00\x001/data_stream/_dev/test/pipeline/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81o\x0d\x00\x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00'\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81V\x0e\x00\x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4M\xe0G\xef\x01\x00\x00,\x05\x00\x00$\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81@\x0f\x00\x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x8a\x11\x00\x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x85\x12\x00\x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x0d\x13\xca\xa7\x0c\x02\x00\x00O\x08\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xac\x16\x00\x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x05\x19\x00\x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81L\x1a\x00\x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x811 \x00\x001/spec.ymlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x13\x00\x13\x00)\x06\x00\x00\xf6!\x00\x00\x00\x00" fs.Register(data) } \ No newline at end of file diff --git a/code/go/internal/validator/folder_item_spec.go b/code/go/internal/validator/folder_item_spec.go index 6939794fd..0453204ee 100644 --- a/code/go/internal/validator/folder_item_spec.go +++ b/code/go/internal/validator/folder_item_spec.go @@ -1,11 +1,13 @@ package validator import ( + "bytes" "encoding/json" "fmt" "github.com/elastic/package-spec/code/go/internal/yamlschema" "github.com/xeipuuv/gojsonschema" "io/ioutil" + "mime" "net/http" "os" "path/filepath" @@ -64,7 +66,7 @@ func (s *folderItemSpec) validate(fs http.FileSystem, folderSpecPath string, ite // loading item content itemData, err := loadItemContent(itemPath, s.ContentMediaType) if err != nil { - return ValidationErrors{errors.Wrapf(err, "loading item content failed (path %s)", itemPath)} + return ValidationErrors{err} } var schemaLoader gojsonschema.JSONLoader @@ -105,8 +107,21 @@ func loadItemContent(itemPath, mediaType string) ([]byte, error) { return nil, errors.New("file is empty") } - switch mediaType { + if mediaType == "" { + return itemData, nil // no item's schema defined + } + + basicMediaType, params, err := mime.ParseMediaType(mediaType) + if err != nil { + return nil, errors.Wrapf(err, "invalid media type (%s)", mediaType) + } + + switch basicMediaType { case "application/x-yaml": + if v, _ := params["require-document-dashes"]; v == "true" && !bytes.HasPrefix(itemData, []byte("---\n")) { + return nil, errors.New("document dashes are required (start the document with '---')") + } + var c interface{} err = yaml.Unmarshal(itemData, &c) if err != nil { @@ -118,7 +133,6 @@ func loadItemContent(itemPath, mediaType string) ([]byte, error) { return nil, errors.Wrapf(err, "converting YAML file to JSON failed (path: %s)", itemPath) } case "application/json": // no need to convert the item content - case "": // undefined item content is consider as text/plain default: return nil, fmt.Errorf("unsupported media type (%s)", mediaType) } diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/elasticsearch/ingest_pipeline/default.yml b/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 000000000..e43bcd112 --- /dev/null +++ b/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,3 @@ +description: No dashes here + +processors: \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/fields/some_fields.yml b/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/fields/some_fields.yml new file mode 100644 index 000000000..e6e1d439f --- /dev/null +++ b/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/fields/some_fields.yml @@ -0,0 +1,24 @@ +- name: source + title: Source + group: 2 + type: group + fields: + - name: geo.city_name + level: core + type: keyword + description: City name. + ignore_above: 1024 + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + - name: geo.region_iso_code + level: core + type: keyword + description: Region ISO code. + ignore_above: 1024 + - name: geo.region_name + level: core + type: keyword + description: Region name. + ignore_above: 1024 \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/manifest.yml b/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/manifest.yml new file mode 100644 index 000000000..2adfb5005 --- /dev/null +++ b/code/go/internal/validator/test/packages/missing_pipeline_dashes/data_stream/foo/manifest.yml @@ -0,0 +1,23 @@ +title: Nginx access logs +type: logs +release: experimental +streams: + - input: logfile + vars: + - name: paths + type: text + title: Paths + multi: true + required: true + show_user: true + default: + - /var/log/nginx/access.log* + - name: server_status_path + type: text + title: Server Status Path + multi: false + required: true + show_user: false + default: /server-status + title: Nginx access logs + description: Collect Nginx access logs \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/docs/.empty b/code/go/internal/validator/test/packages/missing_pipeline_dashes/docs/.empty new file mode 100644 index 000000000..e69de29bb diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml b/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml new file mode 100644 index 000000000..dfa4c5a9b --- /dev/null +++ b/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml @@ -0,0 +1,27 @@ +format_version: 1.0.4 +name: good +title: GOOD +description: This package is good. +version: 0.1.2 +release: beta +conditions: + kibana.version: '^7.9.0' +policy_templates: + - name: apache + title: Apache logs and metrics + description: Collect logs and metrics from Apache instances + inputs: + - type: apache/metrics + title: Collect metrics from Apache instances + description: Collecting Apache status metrics + vars: + - name: hosts + type: text + title: Hosts + multi: true + required: true + show_user: true + default: + - http://127.0.0.1 +owner: + github: elastic/foobar \ No newline at end of file diff --git a/code/go/pkg/validator/validator_test.go b/code/go/pkg/validator/validator_test.go index 1c562f86d..3f93df0f5 100644 --- a/code/go/pkg/validator/validator_test.go +++ b/code/go/pkg/validator/validator_test.go @@ -24,6 +24,12 @@ func TestValidate(t *testing.T) { "field variants: Invalid type. Expected: object, given: array", }, }, + "missing_pipeline_dashes": { + "data_stream/foo/elasticsearch/ingest_pipeline/default.yml", + []string{ + "document dashes are required (start the document with '---')", + }, + }, } for pkgName, test := range tests { diff --git a/versions/1/data_stream/spec.yml b/versions/1/data_stream/spec.yml index eb965632e..e178d5b7d 100644 --- a/versions/1/data_stream/spec.yml +++ b/versions/1/data_stream/spec.yml @@ -42,7 +42,7 @@ spec: - description: Supporting ingest pipeline definitions in YAML type: file pattern: '.+\.yml' - contentMediaType: "application/x-yaml" + contentMediaType: "application/x-yaml; require-document-dashes=true" required: false - description: Supporting ingest pipeline definitions in JSON type: file From 1f503456ac20555600266879b2f5be123650c324 Mon Sep 17 00:00:00 2001 From: mtojek Date: Tue, 6 Oct 2020 14:07:21 +0200 Subject: [PATCH 3/4] Validate expanded and flat objects in YAML files --- code/go/go.mod | 2 +- code/go/go.sum | 8 +- code/go/internal/spec/statik.go | 2 +- .../internal/validator/folder_item_content.go | 84 ++ .../go/internal/validator/folder_item_spec.go | 47 - code/go/internal/validator/mapstr.go | 136 +++ .../_dev/test/pipeline/test-access-event.json | 12 + .../test-access-event.json-expected.json | 120 +++ .../_dev/test/pipeline/test-access-raw.log | 12 + .../pipeline/test-access-raw.log-config.json | 14 + .../test-access-raw.log-expected.json | 910 ++++++++++++++++++ .../elasticsearch/ingest_pipeline/default.yml | 4 + .../data_stream/foo/fields/some_fields.yml | 24 + .../expanded/data_stream/foo/manifest.yml | 23 + .../data_stream/pe/fields/some_fields.yml | 24 + .../expanded/data_stream/pe/manifest.yml | 23 + .../test/packages/expanded/docs/.empty | 0 .../test/packages/expanded/manifest.yml | 28 + .../good/data_stream/foo/manifest.yml | 6 +- .../missing_pipeline_dashes/manifest.yml | 3 +- versions/1/manifest.spec.yml | 17 +- 21 files changed, 1436 insertions(+), 63 deletions(-) create mode 100644 code/go/internal/validator/folder_item_content.go create mode 100644 code/go/internal/validator/mapstr.go create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json-expected.json create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-config.json create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-expected.json create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/elasticsearch/ingest_pipeline/default.yml create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/fields/some_fields.yml create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/foo/manifest.yml create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/pe/fields/some_fields.yml create mode 100644 code/go/internal/validator/test/packages/expanded/data_stream/pe/manifest.yml create mode 100644 code/go/internal/validator/test/packages/expanded/docs/.empty create mode 100644 code/go/internal/validator/test/packages/expanded/manifest.yml diff --git a/code/go/go.mod b/code/go/go.mod index 853b7d2bd..e3a138bc0 100644 --- a/code/go/go.mod +++ b/code/go/go.mod @@ -11,6 +11,6 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 github.com/xeipuuv/gojsonschema v1.2.0 golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect - golang.org/x/tools v0.0.0-20200929223013-bf155c11ec6f // indirect + golang.org/x/tools v0.0.0-20201005185003-576e169c3de7 // indirect gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c ) diff --git a/code/go/go.sum b/code/go/go.sum index 0bb591654..a50456d97 100644 --- a/code/go/go.sum +++ b/code/go/go.sum @@ -40,12 +40,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7 h1:EBZoQjiKKPaLbPrbpssUfuHtwM6KV/vb4U85g/cigFY= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200909210914-44a2922940c2 h1:daAzF/Ytp6YSqJDu1hZJthJIhOrsAa7UbIkziU1t0K4= -golang.org/x/tools v0.0.0-20200909210914-44a2922940c2/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200925191224-5d1fdd8fa346 h1:hzJjkvxUIF3bSt+v8N5tBQNx/605vszZJ+3XsIamzZo= -golang.org/x/tools v0.0.0-20200925191224-5d1fdd8fa346/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20200929223013-bf155c11ec6f h1:7+Nz9MyPqt2qMCTvNiRy1G0zYfkB7UCa+ayT6uVvbyI= -golang.org/x/tools v0.0.0-20200929223013-bf155c11ec6f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201005185003-576e169c3de7 h1:YTAUHYgZh/ZOA35/OrjTDmFFKb6ddkBL1Zgtl9r8Di8= +golang.org/x/tools v0.0.0-20201005185003-576e169c3de7/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/code/go/internal/spec/statik.go b/code/go/internal/spec/statik.go index fae058fc2..719bf1d25 100644 --- a/code/go/internal/spec/statik.go +++ b/code/go/internal/spec/statik.go @@ -8,7 +8,7 @@ import ( func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8D\x8f1N\xc50\x10D\xfb\x9cb\x94\x06(\x02\xbd\xdbOK\xc7\x05V\xf6$Z}\xc76k\x07\x91\xdb\xa3\x18\xa3\xdf\xce\xbe\xd1\xdb\xa9\x85\xdeM\x80\x84\xa0Ms\x92x\xcb\xa91\xb5\xea\xd0\xec\xe0\x04\xf8\xff`\x02\x80\x05\x81\xd5\x9b\x96\x8bvx\xcf\xfeN\xc3-\xef%W^\xec\xaa\xdbar]\xb1j$\xd6l\x08,1\x9f\x9a6\x14\xf1w\xd9\xf8T\xa1\xa9q\x1b`\xa5}\xab\xe7s}\xe9\x0e\xa0\x9d\x85\xae\xf7G\x90d\xa7\xc3\x1c\xban\xf1\x7f\xba\xd7s\x8f\xf3\x00\xc6\x97\x1f\x0c*\x9f\xbd=K)Q}7\xbc\xfd,\xa7<`\xe3\xd7\xa1\xc606\xfe\x06\x00\x00\xff\xffPK\x07\x08\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8t\x91\xb1r\xf20\x10\x84{\x9eb\xc7\xff\xdf\x02\xbdZ2\xe9\xd2\xe5\x05\xce\xbe5\\\"K\x8e$C\xfc\xf6\x19+\x86\x81\x19Rjoo\xa5o\x95Gvn\x03\x88\xaa\x15\x8bA\xfc!\x86\xc2P\xb2C/>s\x03tWe\x03\x00[(s\x97l\\\xec\x0e\xaf\xd1+S\xf5\x88\x05\x0bG(G\x1f\xe7\x81\xa1\xa07\xcf\x8c>&\x08^b\xf7\xc9\xb4m%S\x91\x99\xce\xd6\xf1\xce[\xb3\x812\x8ft\xe8k\xe8*\x05\x19\xe8\xa0u}\x95\xfe'\xf6\x0e\xcdn\xff\xab\xee\x17\x8a\xdd<\xf8f\x9d'~M\x96\xa8\x0e%M\xc4?\x94\x88\x96\x10\xfd\x98r\xa1\xe2rb\xc0e\x11\x14\xb1\x9c\x98\xee\x1f=D\xa5\xcf\xcfX\x0f1\xf4v\x9c\x92,\xc7\n\xb7\xce\xdb\x85\xfb,\xc9\xea$C\xceb^Z\xcf\xca\xfe\x17\xa4y> 65!\x94|\x8f\xb2\x96\xffF5y\xaf{\x8d\x8c\xa3\xb7\xae^\xb5\xff\xde\xce\xf2\x8c\xfb\xfaw\x0fm\xdd\xf2o}\xfd\x04\x00\x00\xff\xffPK\x07\x083\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8l\x90\xcd\x8a\x1c1\x0c\x84\xef~\x8a\x82>d\x17\xb2;\xf7\xbe\x056\x97\x90?\x08\x04r\xd4\xd8\xeanm\xbc\xb6#\xa9g\x98\xb7\x0f\xee\x9e$d\x19\xdf\xcaBU\x9fj\x18\xc20\xe0\x89-\xaa\x1c\xd9\xe0\x0b\xc3\x1aG\x99$\x92K-\x98\xaa\xe2D*\x9b2\xd0\x89$\xd313\xce\x0b\x17$n\xb9^\xa4\xcc 4\x8a?i\xe67\xd6-\xa58\xcf\xba[\x18\xebI\"\xdf\xd9\xfdc\x18\x86\xd0\xfd\xc7\x00\x0cx\x7fb\xbd\xf8\xd2\xd7\xd7\x92X\xb1\xb02\xa6\x9as=\x1b>|\xfb\xf2\x19\x16\x17~!\xdc-\xee\xcd\xc6\xc3\xe1\xd9jy\xd8?\x1f\xab\xce\x87\xfb\xb78\xab\xb8s\x01\x19~\xbc\xfb\xf4q#V\xa6DG\xc9\xe2\x97\x00\xf8\xa5\xf1\x88z|\xe6\xe8\x01\xa0\x94\xa4\x83Q\xfe\xaa\xb5\xb1\xba\xb0\x8d\x98(\x1b\x07\xa0\xfd\xfb\x0b\x00\xf6\xe3\x8b_\x15\x90\xb6\xb2Z7\x18\xf1}\x1f\xa2\xd0\x0b\x1b\xa8\xa4\xde\xa0(b-\x93\xcc\xeb^\x80]7_a\xf4w\x1b\xc5u\xe5\xb0gM\xb4f\xbf\x19\xfd\xb4\xcf\xfe\xf0\xc1+V\xe3\xff\xa2\xccU\xca\x1c\x00\xe5_\xab(\xa7n\xf4\xf0\xf7\xa2M\\#~\x07\x00\x00\xff\xffPK\x07\x08t\xa65\x8d*\x01\x00\x00 \x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xcf\xc1J\x041\x10\x04\xd0\xfb|E\xb1\x08\xea\xc1\xdd{\xae\x82\xff\xd1$5cc6\x89\x9d\x1ea\xfe^2F6\xa7P<\xba\xba{c\x0c\x0b )\xa9k-\x92\xdfkq\x16\xef\x01\xab\xe4\xce\x05\x88\xff\xc9\x02\x00oH\xec\xd1\xb4\x0d\x1e\xf0Qs\xa2\x9dF\xb4h\xd9\xc6w\xd5m7\x19\x00\xc6,\xce\x04\xafHl\xb9\x1e\x83\xf8'\xd1$~\xc9\xc6\xe7\x0e-\xcem\xf2N\xfb\xd1\xc8\x97\xfez\x96\x01~4\x06\xacg\xcb\x8c\x8a\xdc\x19\xe6\xb4\x19\x19\xbfw5\xa6\xc7\xd2\xe3=\x19\xd7\x80\xcb\xf5\xf6go\xe3\xd8\xebq\xcf\x97\xdf\x00\x00\x00\xff\xffPK\x07\x08\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00 \x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8\x9cT\xdfo\x94@\x10~\xe7\xaf\x98\x1c&\xd5(\xd0F\x8d\x91\xb7\xc6\xd6\x1as\xb6\x8d\xfab\xfc\x91,0\xc0\x94ew\xdd\x1dzw\xff\xbd\x81=\xee\xb8\x1f\xad\xd1y!\xf3\xcd\xb7\xc37\xdf2\x84a\x10\x86p\x81.\xb7\x94\xa1\x03\xae\x11\x9c\xc1\x9cJ\xca\x05\x93VPj;\xa0F\xe4\x8d\xa8\xf0\xc4\xc1\xbb\x0f\xe7\xd7W\x97\xf3\x9b+(Ib\x10\x86A\x7f\"\x0d\x00B\xb8\xbcG\xbb\xe2\x9aT\x05\x9d*\xd0B\x8d\x16\xa1\xd4R\xea\x85\x83\x8f_n\xae\xc1\xe55\xb6\x02\x9e\xd6\xcc\xc6\xa5Ir\xe7\xb4\x8a<\x18k[%\xcf^\xc0\xc2\x123*\x10\x0e\xbe\x9d\x7f\x9a\x0f\x1a,\x8aBd$\x89W\x01\x00\xaf\x0c\xa6 \xac\x15}F\x8c\xad\xeb\x05\x8c\x05\x9d\xdda\xce\x03 \x8a\x82\xfaA\x84\xbc\xb5\xda\xa0eB\x97B)\xa4\xc3\xa1n\xb6\xe8\x90\x03\xdc\xa3u\xa4\xd5\x98\x02\x14\x83=\xa6\xef\x92\xc2\xad\xf7ad\xc5\x1b\x96\x7f\xb3cK\xaa\xda\x80F0\xa3U)\x9c\xfc\xfa~\x1a\xbd\xfd\xf9\xfcG\xbc\xfb|r\xb2\xe1\xe2R\xb4Fnu\x00D0;\x8bO\xe3W\xb35\x92\xd7BUS\xc2\x8e\xb299\x06]\x8e, 5^\xdaCbG\xff|L\\\x9c\x92&^\xfa\xf8\x9b\xa3>\x0e}\xf51\x95\xbcS\xd8\x9b\xe6b\x9bl\x87\x8a\xf7N\x1c\xf5\xdc\xc7\xa1\x9b>\"\x98\xbd\xa7%dV7\xa8\x80\xb15R0\xce\x82\x83\xb6\x8f\x89\xfb\xba2\xf8\x7f\xaaT\xd7\x1eQ\x94Y\x14\x0d\xa9*\xf2\x0dgG\x18]U\xd2\xf2H\x01U-T\x8e-*>Rm\x94^\xa8\x88\x9c\xeb\xf6\x9aJR\xcd\xa3#\xceI5\xc0\x1a\x86\xb3\xa0-\xdc~^\x13\xb2~\xbb\xbd\xd0\xfe\x1b+\x90\x05\xc9\x7f\xf1\xe0\xe1\x9b\x19\xff \x15q\xddeq\xae\xdb\x04\xa5pLy\x92\xa1`\x97\x0cj\\r\xf6\xf2\xf5\xe9\x9b\xe9@\x16\x7fwd\xb1\x98\xf6\x8c\xa6\x03\xed\xe0\xbd\xb8\x1d\xa0w#8\xec\x13\x8d\x8b\xb3\xce\xd6\x9b\xf5'\x00\x00\xff\xffPK\x07\x08\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/changelog.ymlUT\x05\x00\x01\x80Cm8\xac\x8f1n+1\x0cD{\x9db\x80\xadwe\x7f\xe07\xdb\xa5p\xe1& \x10_\x80\x91\xb8+\xc2\xb2$\x98\xb4\x81\xdc>\xb0b7I\xca\xb4\xc4\xf0\xcd\x9bap\xc3\x80C\x12\xc5\"\x99\x11k\xb8\x9c\xb8\x98\"$*++\xa4\xc0\x12\xa3Q8\xd2\xca\xd0\xc6A\x16 dR\xcb\x84\xbdA\x14\xcf/\x07\xd0\xef\x91\x8e\x9d\xdc0\xb8\x11W>\xab\xd42c;m\xa6\xcdH\xb9%\xda:<\xaaf\x07\x8c\x88\xac\xe1,\xcdzp_\xc4\x84\xf2\xe3\x13u\xe92\xbbLj\x12\xf0\xfa\xad\xb1;9\x00\xb0\x8f\xc63\xb8$*\x81o\x83\xfa5K9\xceHfMg\xefW\xb1ty\x9fB=y\xfe\x02\xfa\xfb\x84\xf1\x06\xf4\xed\x92\xb3\xfa\xedO\xab\xa7\x18\xa5\xac\xdd$\x89Z]\xcft\xc2\"\x9c#HA\xb8R\x96\x88\xdd\xdb\xfdvs\xf9[+\xff\xff\x9f\xfb\x0c\x00\x00\xff\xffPK\x07\x08\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xce\xb1\xaa\xc30\x0c\x85\xe1=Oq\x08w\xbd\xc9\xee\xb5\xd0\xf70\xf6I18r*)C\xde\xbe\xd8\xa4T\xe3\xcf'$;\x98\xc2\x04\xc4\x9c\x8b\x97&\xb1>\x9a8\xc5-`\x8b\xd58\x01\xe9[&\x00\xf8G\xa6%-G\xe7\x01\xcfV3u\x98X\xa4\xc8\x0bNs(\xad\x9d\x9ahc\x07\xf0\xeb`\xc06\xf0\x9d$\xee\x0cC\xdfA\xf9>\x8b2\xff.\xf7\xf9Sn\x01\xf3\xb2v\xb9\xf6\x7f\x97k\xaf\xf3'\x00\x00\xff\xffPK\x07\x08T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00 \x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8l\x90OK\xc3@\x10\xc5\xef\xfb)\x1e\xcdA\x05\xb5\xf7\xdc\x04E\x10\xff\x81'\x11\x0f\xd3\xec\xa4\x99\xb2\xdd\x8d3\x93\x94|{i\x13\xf4\xa0{Z\xde\xbc7\xef\xc7TU\xa8*\xdc\xb25*\x1b6x\xc7\xb0\x9e\x1bi\xa5!\x97\x92\xd1\x16\x05!\x92\x13\xcc\x95i\x7ff\x18I\xa5\x0c\x86V8EDn%\xcbl\x96\xc4\x16\xaa*\x1cw\xd4\x01\xa8p7\xb2N\xdeI\xdeb\xc8\x91\x15\x1d+\xa3-)\x95\x83\xe1\xe1\xed\xe5\x19\xd6t\xbc'\x9cw\xee\xbd\xd5\xeb\xf5\xceJ\xbe\x9a\xc5\xeb\xa2\xdb\xf5\xc5%\x0e*\xee\x9cA\x86\xf7\x9b\xa7\xc7\x13\x952E\xdaH\x12\x9f\x02\xe0S\xcf5\xcaf\xc7\x8d\x07\x80b\xfd\xac\x0f9\xf8\xe5\xaa\x07\xfb\xb5[\xd2V\xee:\x95J\xc6\xe8\xac\x92e\xf3\xba\xb0U\x8f&\xfa\xdb\xdaDz\xf4\\~\xcbD\xa6AU\xaf;[u\x89Z\x9f\x8e\xaez5F\x92\xff\xdf\x11\xc2\x85\xfd\x90\xe1\x96\xb1\xab\xcd\x9b\xe0\x8d\xdd\xb7\xa9K\x85`\xc0\xb3Z\x11\xaa\xd3\x9f\xf9h{\x81\xa6\xff{\xb6\x15\xfe\x1cH\xf10\x1cK\xf5=\x85H\x89-\xe5\xa9\x0e\x10\xc7/\xc3\x0c0\x96\x9c\x9eL0=\xb5o\x05\x80&c}\xb7\"O\xd0\x9bn\xf0\xac#N-]`\xc7\xd6\xb1u\xd6\xd3\x0b\xfb\xb7\x85\x11\x05\x82\xba\xbc\xc0Yl\\5\xe4\xeb]$\xc5\xa4\x9f\x9a\x91(\xb7\x8e\xf3[\xea\xf0\xa1\\\xec\x83\x0b\xfb\x8f\x82z\xcd\x99{1>\xb9\xb3\xfe\xf0\xea\x1e\x03\x00\x00\xff\xffPK\x07\x08g.\xe6-M\x01\x00\x00j\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8\x8c\xce=\xae\x830\x10\xc4\xf1\x9eS\x8c\xd0k\x1f\xf4n#\xe5\x1e\x16\x1e\xa2\x95\xcc\xe2x7\x05\xb7\x8f\xf8\n-.G?k\xffV8\x84\x06\x88)\x89\xcb\xac1?fu\xaa[\xc0\x18\xb3\xb1\x01\x86si\x00\xe0\x1f\x896T)+\x0fx\xce9\xb1n&\x8a\x8a\xbeP\xa40\x8b\x12Ns\xdb\xfe\x00\xbe\x14\x06\x8c\x1b>&\x8d\x13\xc3O\x1fc\xe5\xfb#\x95\xe9\xba\xbe\xbe\xbf\xca1\xa0\xed\xfaS\xf7kw\xb7L\xb9\xbd\xd7d\x8b9\xa7{E\xbb\xbd\xd7\xb3\xdb\xab\xe6\x1b\x00\x00\xff\xffPK\x07\x08\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\x00 \x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm84\xce?\x0b\xc20\x10\x05\xf0\xbd\x9f\xe2Q\x84N\xd5=\xab\xb3\x93\xce\xc2\x91\\\xe5 Mc\xee\n\xe6\xdbKc\\\xdf\xfb\xdd\x1f\xcd\xec\xdd\x00P\x08b\xb2%\x8a\xd7-\x19'S\x87\x85\xa2\xf2\x00\xf8\x7f2\x00\xc0\x8c\xc0\xea\x8b\xe4\x83;\xdc\xab\x1a\xaf0V;\xe0\"\xaf\xbd\xd0Q5\x0cX\xcd\xec\xb0H\xe4\x1ed2\xe3\x92\x1c\xa6\xe7\xcf\x9f\xeb\x1aOSo\xfb\xad\x1b\x07\xa1G\x1b\x1d)\xe7(\xbe\xed\xbc|\xe6Jk\x1c;.\xfc\xde\xa5p\xe8\xaf~\x03\x00\x00\xff\xffPK\x07\x08;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00 \x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8\x8c\x94\xc1n\xd4@\x0c\x86\xef\xfb\x14V\x83\x04H]z\xcf\x0d\xa9\\\x10\x14\xa4r\xe1\xb4r2N2e2\x0e\xb6\xd3m\xde\x1e\xcd\xa4\xdbN\x1b*\xed-\xfe\xfc\xeb\x1f\x8f\xe3qU\xed\xaa\n\xaeI[\xf1\x0d)\xd8@\xa0\x13\xb5\xbe\xf3-\x9a\xe7\x08\x1d\x0b 84\x045!\x1c\xdf+\xdc\xa3x\x9e\x15:O\xc1\x81\xa3\xceG\xbf\x8a} \xddU\xd5.y\xd4;\x80\n\xbe\xdc\x93,6\xf8\xd8\xc3\x1c\x1d \x0c$\x04\x1d\x87\xc0G\x85\xaf\xb7?n@\xdb\x81F\x84\x0f\x83\xd9\xa4\xf5\xd5\xd5\x9dr\xdc\xaf\xf0\x13K\x7f\xf5\xf1\x12\x8e\xe2\xcd(\x02*\xfc\xfe\xfc\xfd[\xaeJ\x08\x1d6>x[v\x00\xb6LT\x03\x8a`\x8a\xbc\xd1\xa8\xa9\x80S\x82\x9b;j-\x03t.W\x8b\xe1\xa7\xf0Db\x9e\xb4\x06\x93\x99rzz\x869\x06\x888\xd2\xe9\x1b\xc0\xe5fM\xc9\xa1\x86\x1b\x1c \xb8[;\xf1$Y\x8fT\x13\x1f\xfbGh\xde\xc2[&\xbfR\xee<\x97\x84\xfeor\x8d\x86)}\x96\x0f\x00\xc5y|v\xda\xc3\xe0\xd5\xb8\x17\x1c\x0b\xd6rT\xc3h\x87?\xb4\x1cY\\\x912z\xb0\"\xdc\n\x02\x17\x87\xed\xc1G\xa3\x9e\xa4 :\xb0\x94\x16\xcdbT\x84\x8e\xe7&\x94\xa0\x0b\x8c\xa5~\xc0\xd0\x1d^Cm1\x90\xdb`\x87/\xbd\xd1\xe8\x101\xb2\x96\xe73\x07\xc2X\x12\x1fQ\x96\xed%\x0e\x82\xb1\xdf\x94\xb6\xa1\xa9\x03\x1b\xb8^k\x8bSE\xaf\xa1\x9f6\xa8\x17\x9e\xa72&>L\xeccy\xd9b\xd2O>E\x10I\x8d\xca\x1fuz1\xa7\xb8\x0b\x98^\xda\x93\xa6\x1c\xb2'\xd9\x8b\xc9\xbbM\x7f\xb2Dg\x8d`\x16\xe8[\x96s\xb3_\x05\x97p\x1c(f\x03\xf0\xfa\xaa\x01\xef\x84\xba\x1a.\xaa\x8b\x1cUy\x9b<.\x0e\xd0%\x1a>\xe4E\x91;\x94\x16\x90q^p\xc2l\xa9\xc6\xbc\xec\xb2:;\n\xfd\x9d\xbd\x90[k\xda\xe7g\xff\xf8\x99\x8e\xdf\xfd\x0b\x00\x00\xff\xffPK\x07\x084M\xe0G\xef\x01\x00\x00,\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm84\x8f1k\xc0 \x10\x85w\x7f\xc5C\n\x19\x8aI\xd7\xba\x16\xbau\xeb\xd6\x86r\xe8 \x07\xc6X5\xd0\xf4\xd7\x17m2\x89\x8f\xef\xbe{W3;\xab\x00\xf2^\x9a\xec\x89\xe2\xcb\x9e\x1a\xa7V-\x02\xc5\xca\npw\xa2\x00\x03\xcf\xd5\x15\xc9\x1d\xb6x\x15\x8e\xbe\xc2s\x904\xe6\x15\x00\xb43\xb3E\x90\xc8\xe3\x9b\xa95.\xc9b\xfa \xf3\xfbd\x9e\xd7\xeb\xfdZ\x1f\xef\xe4s>\xb78\x0d\xbc\xf0\xf7!\x85\xbdE+\xc7\xbf\xe1j\xf0\xc6^\xe8}\xc85\xe5\x1c\xc5Q\xdf\xb9\xfc\x98\x93\xb6\xa8\x07\xfaP8X\xe8y \xa3\xda\xdc\x0f\xecn\xad\xfe\x02\x00\x00\xff\xffPK\x07\x08t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xbcW\xdd\x8f\xdbD\x10\x7f\xf7_1J\x90h\xa5&i\xe1\x01)/\xa8\xf4*q\x88\x96JA \x84\xd0ib\x8f\xe3\xad\xd6\xbbfg|\xb9\xfc\xf7h\xfd\x91\xac?/\x01\xd4}\x8agfg~;\xdfY.\xa3\xe5\x12\xee\x88c\xa7\xf6\xc4 \x19\x01\x17\x14\xabT\xc5(\xca\x1aH\xad\x03\x84\x04\x05\x81\xc5\x11\xe6_3\xe4hTJ,\xebS\xae!U\x9a\xa2\xe52\xf2\xd7\xb6\x11\xc0\x12\xde?\x92;I\xa6\xcc\x01J\x93\x90\x83\x8c\x1cAj\xb5\xb6G\x86\x9fv\xbf|\x04\x8e3\xca\x11^d\"\x05o7\x9b\xcfl\xcd\xaa&\xae\xad;l^\xbe\x82\xa3S\"d\x00\x19\xfex\xfb\xe1\xe7\n\x88#Lp\xaf\xb4\x92S\x04 \xa7\x82\xb6`\xf7\x9f)\x96\x08\x00\x93Dy\xc8\xa8?9[\x90\x13E\xbc\x85\x145S\x04\x90P\xaaL\xc5g\x8f\x12\xe0\x11]\xf3\xcb3\xbd\x03\n\xcf\xdd\xc2\xbd)J\xf1l\x85{M\xbcndjk\xe8\x1c\x9e\x1a\x8a\x12\xca\xcf*\x06p\xea3\x0f\xaa>\xc5\x85s\xa6\x01\x18\xcc)\xfc\xee\xa1\xfc\xad\xc1W\xc9\xad;r5\x10\x16\xa7\xcc\xa1\xc3\xa0'\xcc\x0b\xdd5\xe3\xcf\n2\xcb\xc2QO\xc5\xb4\xf1;\x9f\x0e^\x06lz\xf6\xd4\xb5 L\x99\x0f\x01(#t 7\xa0\xef\xad\xd5\x03b\x81\xccG\xeb\x92\x01C\xe8I\x06\xc4\x13\xe6\xfaJ7\xf4\xee\x8b\x12=\xe7\x86_=\xff\xdf\xb8`\x12\xc0\x8f\xbd8\x84\xe6\xa6q\xec2\xeb$$\xfd\xaf\x98\x16\x15(\xaf\xb2\n\x92\xab\xfb\x02\x93{T1\x81X\x88\xad1\x14\x0b\x88]\x04\x97\xf3R\x8b\x9a\x01\xfd\x0e\xcd\x19\xa3W!\xa8L}\xa9\xd0\x04\x8f\xa8K\xe2\xefG\xb0\xfb\x8c 4=\xc5)\x96Z\xfa\x85\x05\xf3\xc1ve(\xea\xe8\xefR9Jf \xdf\xf3\x05q+\xfe%!rf\x8f\x0f%\x93\x9b\xcf\x85R' \x99\n\xc0\xee\xa9\xbak|\xb4|\x8b\xf7:`\x7fjA\xdd\xfc\x86\x1e\xae\xb9'\xf4\x9f\xdb\xea\x98~\xc1]-Q\xa7\xc0\x0b~Yu\xfe\xf6)#H\xff\x84E\x9d\xcf\x8bW\xb0\xa8\xfa\xb3\xff\xd14\x14\xff\xb3y\xca\x02\xfe\xea\xdc\xee\xb5\xefP\xe5H}L\xbf\xb1\xaa\x11?\xc8\xb6\x9b\xcd\x9bo\xbe[\xbf^\xbf^\xbf\xb9T\xc2X^\xad\xaa\xae\xdd!x\xc3\xd1p\x16\xf8\xc1\xcb$\xa3\x83\xea#\xe6U\xf7\xa9\x873IwR\x05o\xe8\xf4\xb1\xf1\x0e\x16\x0c\xf8I5C\x17\xac\xe0\xed\xef;\xd8+\xad\xfd\xb0\xcfI\x9c\x8a\xeb\xf6\xe5H\x13\xf2\xb8\xd1\x9d43\xfc\x06\xc3\xc1\xd0X\x01=\x15\xe4TNFP\x9f\x89{\x12\x9c\x84yf\x86\x83\xad\xeb\x89f\x9a\x05x\xae\x85\x13\xbe\xdb\x7fk{\xe0I$\xa1pmf|\x0b\xd9\xd5<\xb0iJ\x8e\x92\xaaZ\xa7\\\xf5\xe5\x96\x12\xe5w\xa3n\x01\xdc8QV\x80G\xdet]\xd6r\xf8\xdb\x1e\xa1\xda-/\x84\x91y|\xb3u\x9f\xb0?\x8c$l}&\xe7\xed\xcdv\xdeY\xad\xfdP\x9c*\x90F-\xe5\x85F\xa1\x87\x02%\x9b\xe9\x89\x8bO(\x99\xef\xde\xef5\xb2\xa8\x98 ]\x9c\x812 =\x9d\x95T\x8d\xb2\xc9\x8f\xc55\xe8\xc3\x15\xb8>_9J\xb7\xb0Xn\x82uy\xe3\xc5B}d|'~fP\xd68Z\xd9k&\xcc\xb0Q\xae\xea\x88\x07\xdf\x81\x95\x80Zee\xf5M\xa1{F\xeb\xaa\xeb@d& \xff\x1bD!\xc2N\xd9<_4c%SE\xe8\xa1\x8d\xd0v\"\xd5\xe0\xbe\x1b\xc8\x0b\xa00W\xc6J\xf9\x1a\\0Y\xce\xe0\xc7\x86(s\x18\x0c\xb5n/j\x84\x80)n\xd7\xcbn\xea\xf5nO@\x05\xc8\xb1(\x9e5\xf7\xa1\x11\xfa\xef\xe6\x949\x10\xcbC\xa1\n\xd2\xca\xd0\xac\xd5~e\xf9\x9b\xd0\xde<\xfb\xe9Z\xcb\xd7\xc6\x05fb\x03\xa3\xff\x02\xeb\xd3\xcb\x9e.\xd8\xder\xd1\x9e\x99\xddf|\xf9\x0d\x16\x95P\xa0-\xcb\x7f\x02\x00\x00\xff\xffPK\x07\x084!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8\xb4\x95\xd1\x8b\xdb>\x0c\xc7\xdf\xfbW\x88\xf2\x83\xfe\xc6\x91v\xaf\xcb\x18\xe3\x18\x1bl\xecn\x0f\xb7\x97\xb1\x1dE\x17+=\x0d\xc7\xf1,\xa7\xac\xfb\xeb\x87\x9d\xa6I/\xa1I8\xf6\x16d\xe9\xeb\x8fdI\x11KY\xba\x00@\xa5\xd8siP\xbf+\x8d'\xe3%\x85\x1c\xb5\xd0\x02 k,\x0b\x80\x04\x14I\xe6\xd8\x06\xe7\x14>\x94Z\x91\x8b\x1e\xc8\x86\xcd\x0e\x10\x84\xcdN\x13(\xf4\x08\xe2\x1da\x01\x8ar6Q\x7f\x01\x00\xe0\x0f\x96R\xc8cl4X\xf4\x9e\x9cIa\xf5\x1d\x93?/\x93W\xf7\xff\x1f?\xb6\xf7W\x8d\xe9\xc5\xdbUtv\xf4\xabbG*\x05\xef*\x8a\xa6K\xf4\xe7\xfc\xbd\x0c\xae\xbb\xa0+\x81\x02\x0d\xe7$\x1er\xd6u\xf8\x89\xb75\x1c\x15oH1~\x8d\x87K\xb4Vs\x86At\xf3;9`\xa1\x97Gg\x83Eph\x84\xd7\x87\xf6h \x15\x80\xff\x1c\xe5),\xd7\x9bSDx\xa46l\xf4 r&\xad:5\x97\xf34\xda\xb27l1@&1\xd5\xae\x9b\x99D\xb8#\xe3\x13G\x1a=\xcd\"\x8b\x81=\xb0\xf6i\xc7\x9e\xfe\xe9\xe3Oe\xed7n\x83:\x08\xdb\xe0\xd6Q'\xe3`)\xc7\x90G\x01\xdfk\x14\xcf\x99\x10\xba\xec\x11P\x84\xfch\x1d\xa9\x1b\xf3\xaf*w\x0e\xf6\xd1\xec\xc2\x18\xdd\x96\x8a\xc0\xb2%\xcd\x86\xe6\xd6\x93\xa3\xc6\xb6 \x9fX\xc1!\xf8\x1e\xfe]em\xe9|\xe0\xaeo\x19\x84\x046\xf0\xed\xfa\xe6\xf3Ie`\x19\xc0\xd9\x02[_\xfd\x08\x83\xb1\xea\x1cN\xda\x16\xaf\x9bnIT\x99UE\x98\x17\x85\xf2H\xf2&\xf4\xce\xb2#7<\x07\xcfH\xf0\xd3\xdd\x97\xdby \xfe\x94\xd2\xcc\xc80\xb8\x8fe\xf0\x94\x1e\x0b\xab h\x1f\x86\xf1\xd2*>nW\x89\xfe\xdb\xe8\xbf\xee\xde7\x03m\x02V\xbf\xe9=I\xacq\xb3\xdc\x02\x9a\x00\x1a\x05R=$uW\x8f\x8e\xe72\xa8<\x0bC\xd1\x9etiC\xdf\x80#)+\x97\xd1\xe8\xb5[E\xfb\x0b\x97\x02\xecY\xf8\x815\xfbC\n\xd6\xf1\x1e}\xef\x87\x104\xda\xdf\xc1\xdf\x00\x00\x00\xff\xffPK\x07\x08\x0d\x13\xca\xa7\x0c\x02\x00\x00O\x08\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00 \x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8\xcc\x90\xbdN\xc30\x10\xc7w\x9e\xe2\x94\xa5\x03\xa2\xec\xde\x10\x12\x0bbcDB\xd7\xdc\x85\x1er\xce\xc6\xe7V\xc0\xd3\xa3\x98$\x94\xb6CP\x84\x94\xd1\xe7\xff\x97~\x00\x16\xb9v\x17\x00\x00H$Y\x82\xa2\xbf\x0d\x9aY\xb39h\xd0\x1b\x97\xdfz\xb8\x95\xd7\x15\x10[\x9d$v\x06\x07w\xc1\x13\xa7\xa2AQ\xd1\x17\xb8\x97\x0d*\x02\xa1m7\x01\x13\x01\x9aq\xb6b\x06\xc8\x1f\x91\x1d4\xc5\xd5\x9f\x14[v?\xfa\xfe\x9a\xf8m'\x89\xe9p\xc9\xf1\x96\x9357\xc7\xb5\xd0\x88\x1f\xbcc\xf9\xe1\xa9\x0f|`\x12|,\xdf\x15\xc6\xe8\xa5\xc6.\xf1\xfa\xd5\x82V\xa38b\xce\x9c\xd4\xc1j}\xf9\xb4\xee\xfeV\x7fb\xb2\x17\xdb\xa1\x97\xcf\x92=\x91\xcb/\xcf<6g\xea\x97\xc5\xc7p\xcf\x04\xc6\x98\xea\xedD<\xdf\xe2y\\Nk\x97\x85\xa5\xc58\x91F\x8bq\x1e\x8a\xb1jY\x04D\x89\xdf\x87\x94\x89,\xaabz\xeeM\xd5,.zn\xc1\xff#\xfa\n\x00\x00\xff\xffPK\x07\x08\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00 \x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xccXQo\xdb8\x12~\xf7\xaf\x18\xc4\x05\x92\\\xcer\xd2\xe2p\x88\x81\xbb h\x8bk\xef\xd2^\xb1\xe9\xcbn\xdb5(z,\xb3\xa1H\x953\xb2\xe3\xfc\xfa\x85(\xc9\xa6d\xcb1\x12/\xb6|\x12\x87\x14\xe7\x9b\x99oFC\xf5\xfb\xbd~\x1f\xde I\xa7b$\xe0\x19\x02e(\xd5TI\xc1\xca\x1a\x98Z\xe7\xa5\x99\x90w\"\xc1c\x82T(\x03\xa90j\x8a\xc4\xd12\xd50U\x1a{\xfd~\xafxs\xd4\x03\xe8\xc3\xdb9\xba%\xcf\x94I 7\x13t0C\x870\xb5Z\xdb\x05\xc1\x7fo\xff\xff\x11H\xce0\x15p2c\xceh4\x1c~'k\x06\xa50\xb2.\x19\x9e\xfe\x1d\x16N1\xa3\x01A\xf0\xeb\xf5\x87\x1b\x8f\xc5\xa1\x98\x88Xi\xc5\xcb\x1e\x00/3\x1c\x81\x8d\xbf\xa3\xe4\x1e\x80\x98LT\x81Z\xe8O\xcef\xe8X!\x8d`*4a\x0f [\xcbz\x00P\x1c\x97\n\x1e\xcf\xd1\x91\xb2\xa6\x94\x01L\xbc3\xb2\xe2\x98\x11|\x9e!T\xeb`\xa7\xa1#6\xdd\x94\n\x86\x9cp\x02\xf1\x12x\xa6\xa8\xde\x19U\x07\x97X\x89\x9d2I%\xca\x043:3\x82\xe3\xdfO\xbe\x9c\x0f.\xbf\x9d\x9d~\x8d6\x9fN\xaeF\x03\xff|=\xf8M\x0c\x1e\x06\xdf\xceN\xaeF_\xa3\x86\xe4\xf4o\xa7\xa7W\x85\xf8\xac)\xbezq\\)\xc3{\x91f\xba6\x1e`\x00G\x17\xd1yt~\xe4\xe7F\xa4\xd8\xe9\x82b\xb1e\xff^V}\x11\x83\x87\xf3\xc1\xe5\xf8\xdbY7\x08\x91 9C?e\xc5\xba\x1b\x84_\xdd\x1f\xc5\xa6\xa6\xeb\xb5\xa6\xf0\xf0m\xfa\xaeA[\x93\xa0\x0b\xa5\xcfW\x0d\xef\x0dc\xe2\xae\xdc\xeeL\x00r\xb2iS\x03\xf6/\xa8\x05\xabyQ\x13\x0b\xe7X_\x1f\x0b\x1b\x8e TZ\xc4\xbbhY\xa3\xc6\x01\x1da\xd8\xe1\xc3\xa1J\x93\xa1\xb6\x89\x1d\x97=LD\xf3\xe4(\x0cl\xd8\xce\x94\xa3Y\xc5\xeb\x86\xa6@\xf6\\0U\x87qc\x13\x1bb \xf5\xb0\x0b\xc2\xadzX\xb5T\x87@\xf1\xea\xe5\xfd\xab\x97Gmrw\xeb\xff\xf0\xfe\xc3\xdb\xd5W\xb5\x06q\xc0\x10\xf9\x93\x864O\xce\xeeS\xbd\xc6\xe5\xf0G\xae\x1cN\xc2jB\xael\x00H:DC3\xcb\xbbS\"\xd8WL\xab\x0c\x15D\xc8\x04\xd2\xa1\xe0\xc7\xae\x02?u\xb6\x14\xe6\x19o\xde\xe1s\xa6L\x97qq\xf3\x9b\x8c \xdd\x1c]\xf1A\xe4\x9c\xa2\xcc<-\x85\xd6\xd1x.\xc2*\x91\xde}\xfe\xfc\xe9\x0d\xdczpp\xeb\xc1=1\xaf\x0e\x07\xed\xe2\xe5\xc5?\xee/../\x9f\x93ak8\x07\x0ck\x99g\x8d\xe0\xed\xca1\xa8\xba\x01\xd6%s3\xab\x95\\\x8e\x19\xd3L\x0b\xeeh!\xeb\xc4+7\xc3j3\xd8\xe9\x14\xdd\xcf\x93l\xe1M\xba\x1c\x0d3>Vw\xe9\x96\x19\xcf\x8c@p\x8b\xaeN\xd87s\x0e\x8b\xa3\xca\x1em\x13\x02a&\x90\";%)\xd8\xb5\xe5\xea\xbd\xb9\x007[\xaf\xdf\x87\xc5\xfa\xdaj\x8d\x927\xc0\xc2\xd4\xd9\xb4\xb6\xc4w\x84Fbh\x822Y\xce\xb4\x0b}\xdd6\xf9\x8du#\\Rt\x0f\x1bB\xaeV\x1a\x9b\x8c\x0d7\xb7x[\x8e}\xd8[\x8e\xed\x1c.\xc7fi)G\x93HUm\xf1\xb6F[vw\xc6\x05\xb6\xd3\xb4\x1c\x1d\x9d\xd2\x93\x94tQ\xa0\x1c-\"<\x16\xfcrt\xb2xs\xb9\x83\xcb\x7f\xaa)\xca$\xb5\x0dBJ\xa4\x92\xdf\xe8\x9cu\xde\xca\x8dw\xe7\xc2m=\xf1\x85\xc3\xe9\x08\x8e\xa2aq\x99\x1d\x13;\x14\xe9p\xf5\xf3\x972\x94\xd12\xd5\xfd\xe1\x04\xa7\xca\x94\x97\xb0aq\xd6Q\xeb\xac\xcd\xafA9\x06\xde\xdcM\xe1\xea\xd3\x10J\x03\x0f\x06ki\xaeYem\x16\x95^\x8c\xad\xd5(\xd6\xbb\xb7}\x94\x8az\x1dL\x9b\xaa7\x95\xda\x85AW\xbf\x7f\xb0\xeba\xa2x\x96\xc7\xa1 \x0d\n\xfdG\xf1\xbb<\x06\x87\x99\xa5\xe2>\xbf\\\xfd\x92\xad/\xb0iq\xc1\xf5\x7f(BNm\xe1R\xdb\x05\x83Jw\xaf\xb94h\xfd\x1e\xef\x05\xaeZ;\xa9\xed\x9e\xd5u\xde?W\xbf\xb0\xfc\xb3w\xdb\x1f\x01\x00\x00\xff\xffPK\x07\x08\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x001/spec.ymlUT\x05\x00\x01\x80Cm8\xac\x92Oo\xdb0\x0c\xc5\xef\xfe\x14\x0f\xc9\x80\x9d\x92\xb4W\xdf\x86\xae\xeb\x80\xfd\xbb\xf4^0\x16\x95\x10\x91%M\x94\x8d\xf9\xdb\x0fV\xe2$(\xb2d\x05z\xb4\xf8\x1e\xf9\xe3\xa3\xe7\xf3j>\xc7\xa3\xcfi\x88A|F\xb0\x88\xd4\xech\xc3\xd0\xc8\x8dXi(K\xf0\xcbj/\xfd\xcc\xda$Y\xb3\"o\x1968\xc3IA\xde\xc0\x8a+\xaf\x94\xd1\xd2\x8e\xd1E\xd0\xd4kt\xa3\xea9\xa9\x04_\xe3~y\xb7\xbc[\x90\x8b[\xba\xaf\xc61u\x05\x9012N\"\xf7\x10|f\x9f\xb5FN\x1dW@3=T\xc0\x02\xa6 \xc4\\Z=o\x19-\x89?R\xb7\xe4\xc5\xb2\xe6\xc2S\x01@\x1e\"\xd7\xa7\xcfC\xb3\x1fl\x84\x9eKiF1\xba\xc3\x9e\xab?\x8b\x81Z7+RO\xedX\x9eZ.\x87\xa9\x90\xf8w'\x89\xcd\x91\x10\xf8\x90\xd8\xd6\x98-WG\xf5\xb8\xd8d\xb9@}\x00\xfe\xa8x\xf8\xfa\xe9\xe7\xd3\xe3\xf7_O\xef\xc8\xdcl\xc9o\xd8\x85\xcd%hKN_Q\x9f\xf4W\xb0\xbf\x94s\x17\x1a\x12/~\x03C\x99\xa091\xb50l\xc5\x97\x13\xea\xf9\x0e\xc5s\x866Z^\xf6\x96\x9bY\x9eiWo\xe3\nM\xd7\xb2\xcf%\x1f\xd8\x90\xca\xefz\x88\xfc*]h\xf42\xd6\xcd\x99\xdfdM\x9e@\xaa\x9c\x15\x9d\xb2\xc1z\xf8\xdf\xb9\xbbb\xbe}\xa7\xbd\xee\x8dap\xcf.\xc41\x0f$\xd6\xd0\xa5\x86\xaf\x9e\xe8\xc5p\xffO\x94^T\xd6\xe2$\x0f5b\x92\x9e\xf2+\xc4\xd1}\x02\xfc\x1b\x00\x00\xff\xffPK\x07\x08o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(3\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xfe\x00\x00\x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa65\x8d*\x01\x00\x00 \x02\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81J\x02\x00\x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xca\x03\x00\x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00\x14\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb3\x04\x00\x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf6\x06\x00\x001/changelog.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81 \x08\x00\x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x19\x05\xa8\xb0\xfd\x00\x00\x00\x9e\x01\x00\x00/\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf1\x08\x00\x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(v\xb2^\x18\x05\x01\x00\x00\xaa\x01\x00\x002\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81T\n\x00\x001/data_stream/_dev/test/pipeline/expected.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(g.\xe6-M\x01\x00\x00j\x04\x00\x00)\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xc2\x0b\x00\x001/data_stream/_dev/test/pipeline/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81o\x0d\x00\x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00'\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81V\x0e\x00\x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4M\xe0G\xef\x01\x00\x00,\x05\x00\x00$\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81@\x0f\x00\x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x8a\x11\x00\x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x85\x12\x00\x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x0d\x13\xca\xa7\x0c\x02\x00\x00O\x08\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xac\x16\x00\x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x05\x19\x00\x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x02=>\xf5\x9b\x05\x00\x00o\x18\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81L\x1a\x00\x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x811 \x00\x001/spec.ymlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x13\x00\x13\x00)\x06\x00\x00\xf6!\x00\x00\x00\x00" + data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8D\x8f1N\xc50\x10D\xfb\x9cb\x94\x06(\x02\xbd\xdbOK\xc7\x05V\xf6$Z}\xc76k\x07\x91\xdb\xa3\x18\xa3\xdf\xce\xbe\xd1\xdb\xa9\x85\xdeM\x80\x84\xa0Ms\x92x\xcb\xa91\xb5\xea\xd0\xec\xe0\x04\xf8\xff`\x02\x80\x05\x81\xd5\x9b\x96\x8bvx\xcf\xfeN\xc3-\xef%W^\xec\xaa\xdbar]\xb1j$\xd6l\x08,1\x9f\x9a6\x14\xf1w\xd9\xf8T\xa1\xa9q\x1b`\xa5}\xab\xe7s}\xe9\x0e\xa0\x9d\x85\xae\xf7G\x90d\xa7\xc3\x1c\xban\xf1\x7f\xba\xd7s\x8f\xf3\x00\xc6\x97\x1f\x0c*\x9f\xbd=K)Q}7\xbc\xfd,\xa7<`\xe3\xd7\xa1\xc606\xfe\x06\x00\x00\xff\xffPK\x07\x08\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8t\x91\xb1r\xf20\x10\x84{\x9eb\xc7\xff\xdf\x02\xbdZ2\xe9\xd2\xe5\x05\xce\xbe5\\\"K\x8e$C\xfc\xf6\x19+\x86\x81\x19Rjoo\xa5o\x95Gvn\x03\x88\xaa\x15\x8bA\xfc!\x86\xc2P\xb2C/>s\x03tWe\x03\x00[(s\x97l\\\xec\x0e\xaf\xd1+S\xf5\x88\x05\x0bG(G\x1f\xe7\x81\xa1\xa07\xcf\x8c>&\x08^b\xf7\xc9\xb4m%S\x91\x99\xce\xd6\xf1\xce[\xb3\x812\x8ft\xe8k\xe8*\x05\x19\xe8\xa0u}\x95\xfe'\xf6\x0e\xcdn\xff\xab\xee\x17\x8a\xdd<\xf8f\x9d'~M\x96\xa8\x0e%M\xc4?\x94\x88\x96\x10\xfd\x98r\xa1\xe2rb\xc0e\x11\x14\xb1\x9c\x98\xee\x1f=D\xa5\xcf\xcfX\x0f1\xf4v\x9c\x92,\xc7\n\xb7\xce\xdb\x85\xfb,\xc9\xea$C\xceb^Z\xcf\xca\xfe\x17\xa4y> 65!\x94|\x8f\xb2\x96\xffF5y\xaf{\x8d\x8c\xa3\xb7\xae^\xb5\xff\xde\xce\xf2\x8c\xfb\xfaw\x0fm\xdd\xf2o}\xfd\x04\x00\x00\xff\xffPK\x07\x083\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8l\x90\xcd\x8a\x1c1\x0c\x84\xef~\x8a\x82>d\x17\xb2;\xf7\xbe\x056\x97\x90?\x08\x04r\xd4\xd8\xeanm\xbc\xb6#\xa9g\x98\xb7\x0f\xee\x9e$d\x19\xdf\xcaBU\x9fj\x18\xc20\xe0\x89-\xaa\x1c\xd9\xe0\x0b\xc3\x1aG\x99$\x92K-\x98\xaa\xe2D*\x9b2\xd0\x89$\xd313\xce\x0b\x17$n\xb9^\xa4\xcc 4\x8a?i\xe67\xd6-\xa58\xcf\xba[\x18\xebI\"\xdf\xd9\xfdc\x18\x86\xd0\xfd\xc7\x00\x0cx\x7fb\xbd\xf8\xd2\xd7\xd7\x92X\xb1\xb02\xa6\x9as=\x1b>|\xfb\xf2\x19\x16\x17~!\xdc-\xee\xcd\xc6\xc3\xe1\xd9jy\xd8?\x1f\xab\xce\x87\xfb\xb78\xab\xb8s\x01\x19~\xbc\xfb\xf4q#V\xa6DG\xc9\xe2\x97\x00\xf8\xa5\xf1\x88z|\xe6\xe8\x01\xa0\x94\xa4\x83Q\xfe\xaa\xb5\xb1\xba\xb0\x8d\x98(\x1b\x07\xa0\xfd\xfb\x0b\x00\xf6\xe3\x8b_\x15\x90\xb6\xb2Z7\x18\xf1}\x1f\xa2\xd0\x0b\x1b\xa8\xa4\xde\xa0(b-\x93\xcc\xeb^\x80]7_a\xf4w\x1b\xc5u\xe5\xb0gM\xb4f\xbf\x19\xfd\xb4\xcf\xfe\xf0\xc1+V\xe3\xff\xa2\xccU\xca\x1c\x00\xe5_\xab(\xa7n\xf4\xf0\xf7\xa2M\\#~\x07\x00\x00\xff\xffPK\x07\x08t\xa65\x8d*\x01\x00\x00 \x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xcf\xc1J\x041\x10\x04\xd0\xfb|E\xb1\x08\xea\xc1\xdd{\xae\x82\xff\xd1$5cc6\x89\x9d\x1ea\xfe^2F6\xa7P<\xba\xba{c\x0c\x0b )\xa9k-\x92\xdfkq\x16\xef\x01\xab\xe4\xce\x05\x88\xff\xc9\x02\x00oH\xec\xd1\xb4\x0d\x1e\xf0Qs\xa2\x9dF\xb4h\xd9\xc6w\xd5m7\x19\x00\xc6,\xce\x04\xafHl\xb9\x1e\x83\xf8'\xd1$~\xc9\xc6\xe7\x0e-\xcem\xf2N\xfb\xd1\xc8\x97\xfez\x96\x01~4\x06\xacg\xcb\x8c\x8a\xdc\x19\xe6\xb4\x19\x19\xbfw5\xa6\xc7\xd2\xe3=\x19\xd7\x80\xcb\xf5\xf6go\xe3\xd8\xebq\xcf\x97\xdf\x00\x00\x00\xff\xffPK\x07\x08\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00 \x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8\x9cT\xdfo\x94@\x10~\xe7\xaf\x98\x1c&\xd5(\xd0F\x8d\x91\xb7\xc6\xd6\x1as\xb6\x8d\xfab\xfc\x91,0\xc0\x94ew\xdd\x1dzw\xff\xbd\x81=\xee\xb8\x1f\xad\xd1y!\xf3\xcd\xb7\xc37\xdf2\x84a\x10\x86p\x81.\xb7\x94\xa1\x03\xae\x11\x9c\xc1\x9cJ\xca\x05\x93VPj;\xa0F\xe4\x8d\xa8\xf0\xc4\xc1\xbb\x0f\xe7\xd7W\x97\xf3\x9b+(Ib\x10\x86A\x7f\"\x0d\x00B\xb8\xbcG\xbb\xe2\x9aT\x05\x9d*\xd0B\x8d\x16\xa1\xd4R\xea\x85\x83\x8f_n\xae\xc1\xe55\xb6\x02\x9e\xd6\xcc\xc6\xa5Ir\xe7\xb4\x8a<\x18k[%\xcf^\xc0\xc2\x123*\x10\x0e\xbe\x9d\x7f\x9a\x0f\x1a,\x8aBd$\x89W\x01\x00\xaf\x0c\xa6 \xac\x15}F\x8c\xad\xeb\x05\x8c\x05\x9d\xdda\xce\x03 \x8a\x82\xfaA\x84\xbc\xb5\xda\xa0eB\x97B)\xa4\xc3\xa1n\xb6\xe8\x90\x03\xdc\xa3u\xa4\xd5\x98\x02\x14\x83=\xa6\xef\x92\xc2\xad\xf7ad\xc5\x1b\x96\x7f\xb3cK\xaa\xda\x80F0\xa3U)\x9c\xfc\xfa~\x1a\xbd\xfd\xf9\xfcG\xbc\xfb|r\xb2\xe1\xe2R\xb4Fnu\x00D0;\x8bO\xe3W\xb35\x92\xd7BUS\xc2\x8e\xb299\x06]\x8e, 5^\xdaCbG\xff|L\\\x9c\x92&^\xfa\xf8\x9b\xa3>\x0e}\xf51\x95\xbcS\xd8\x9b\xe6b\x9bl\x87\x8a\xf7N\x1c\xf5\xdc\xc7\xa1\x9b>\"\x98\xbd\xa7%dV7\xa8\x80\xb15R0\xce\x82\x83\xb6\x8f\x89\xfb\xba2\xf8\x7f\xaaT\xd7\x1eQ\x94Y\x14\x0d\xa9*\xf2\x0dgG\x18]U\xd2\xf2H\x01U-T\x8e-*>Rm\x94^\xa8\x88\x9c\xeb\xf6\x9aJR\xcd\xa3#\xceI5\xc0\x1a\x86\xb3\xa0-\xdc~^\x13\xb2~\xbb\xbd\xd0\xfe\x1b+\x90\x05\xc9\x7f\xf1\xe0\xe1\x9b\x19\xff \x15q\xddeq\xae\xdb\x04\xa5pLy\x92\xa1`\x97\x0cj\\r\xf6\xf2\xf5\xe9\x9b\xe9@\x16\x7fwd\xb1\x98\xf6\x8c\xa6\x03\xed\xe0\xbd\xb8\x1d\xa0w#8\xec\x13\x8d\x8b\xb3\xce\xd6\x9b\xf5'\x00\x00\xff\xffPK\x07\x08\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x001/changelog.ymlUT\x05\x00\x01\x80Cm8\xac\x8f1n+1\x0cD{\x9db\x80\xadwe\x7f\xe07\xdb\xa5p\xe1& \x10_\x80\x91\xb8+\xc2\xb2$\x98\xb4\x81\xdc>\xb0b7I\xca\xb4\xc4\xf0\xcd\x9bap\xc3\x80C\x12\xc5\"\x99\x11k\xb8\x9c\xb8\x98\"$*++\xa4\xc0\x12\xa3Q8\xd2\xca\xd0\xc6A\x16 dR\xcb\x84\xbdA\x14\xcf/\x07\xd0\xef\x91\x8e\x9d\xdc0\xb8\x11W>\xab\xd42c;m\xa6\xcdH\xb9%\xda:<\xaaf\x07\x8c\x88\xac\xe1,\xcdzp_\xc4\x84\xf2\xe3\x13u\xe92\xbbLj\x12\xf0\xfa\xad\xb1;9\x00\xb0\x8f\xc63\xb8$*\x81o\x83\xfa5K9\xceHfMg\xefW\xb1ty\x9fB=y\xfe\x02\xfa\xfb\x84\xf1\x06\xf4\xed\x92\xb3\xfa\xedO\xab\xa7\x18\xa5\xac\xdd$\x89Z]\xcft\xc2\"\x9c#HA\xb8R\x96\x88\xdd\xdb\xfdvs\xf9[+\xff\xff\x9f\xfb\x0c\x00\x00\xff\xffPK\x07\x08\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8D\xce\xb1\xaa\xc30\x0c\x85\xe1=Oq\x08w\xbd\xc9\xee\xb5\xd0\xf70\xf6I18r*)C\xde\xbe\xd8\xa4T\xe3\xcf'$;\x98\xc2\x04\xc4\x9c\x8b\x97&\xb1>\x9a8\xc5-`\x8b\xd58\x01\xe9[&\x00\xf8G\xa6%-G\xe7\x01\xcfV3u\x98X\xa4\xc8\x0bNs(\xad\x9d\x9ahc\x07\xf0\xeb`\xc06\xf0\x9d$\xee\x0cC\xdfA\xf9>\x8b2\xff.\xf7\xf9Sn\x01\xf3\xb2v\xb9\xf6\x7f\x97k\xaf\xf3'\x00\x00\xff\xffPK\x07\x08T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00 \x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8l\x90OK\xc3@\x10\xc5\xef\xfb)\x1e\xcdA\x05\xb5\xf7\xdc\x04E\x10\xff\x81'\x11\x0f\xd3\xec\xa4\x99\xb2\xdd\x8d3\x93\x94|{i\x13\xf4\xa0{Z\xde\xbc7\xef\xc7TU\xa8*\xdc\xb25*\x1b6x\xc7\xb0\x9e\x1bi\xa5!\x97\x92\xd1\x16\x05!\x92\x13\xcc\x95i\x7ff\x18I\xa5\x0c\x86V8EDn%\xcbl\x96\xc4\x16\xaa*\x1cw\xd4\x01\xa8p7\xb2N\xdeI\xdeb\xc8\x91\x15\x1d+\xa3-)\x95\x83\xe1\xe1\xed\xe5\x19\xd6t\xbc'\x9cw\xee\xbd\xd5\xeb\xf5\xceJ\xbe\x9a\xc5\xeb\xa2\xdb\xf5\xc5%\x0e*\xee\x9cA\x86\xf7\x9b\xa7\xc7\x13\x952E\xdaH\x12\x9f\x02\xe0S\xcf5\xcaf\xc7\x8d\x07\x80b\xfd\xac\x0f9\xf8\xe5\xaa\x07\xfb\xb5[\xd2V\xee:\x95J\xc6\xe8\xac\x92e\xf3\xba\xb0U\x8f&\xfa\xdb\xdaDz\xf4\\~\xcbD\xa6AU\xaf;[u\x89Z\x9f\x8e\xaez5F\x92\xff\xdf\x11\xc2\x85\xfd\x90\xe1\x96\xb1\xab\xcd\x9b\xe0\x8d\xdd\xb7\xa9K\x85`\xc0\xb3Z\x11\xaa\xd3\x9f\xf9h{\x81\xa6\xff{\xb6\x15\xfe\x1cH\xf10\x1cK\xf5=\x85H\x89-\xe5\xa9\x0e\x10\xc7/\xc3\x0c0\x96\x9c\x9eL0=\xb5o\x05\x80&c}\xb7\"O\xd0\x9bn\xf0\xac#N-]`\xc7\xd6\xb1u\xd6\xd3\x0b\xfb\xb7\x85\x11\x05\x82\xba\xbc\xc0Yl\\5\xe4\xeb]$\xc5\xa4\x9f\x9a\x91(\xb7\x8e\xf3[\xea\xf0\xa1\\\xec\x83\x0b\xfb\x8f\x82z\xcd\x99{1>\xb9\xb3\xfe\xf0\xea\x1e\x03\x00\x00\xff\xffPK\x07\x08g.\xe6-M\x01\x00\x00j\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8\x8c\xce=\xae\x830\x10\xc4\xf1\x9eS\x8c\xd0k\x1f\xf4n#\xe5\x1e\x16\x1e\xa2\x95\xcc\xe2x7\x05\xb7\x8f\xf8\n-.G?k\xffV8\x84\x06\x88)\x89\xcb\xac1?fu\xaa[\xc0\x18\xb3\xb1\x01\x86si\x00\xe0\x1f\x896T)+\x0fx\xce9\xb1n&\x8a\x8a\xbeP\xa40\x8b\x12Ns\xdb\xfe\x00\xbe\x14\x06\x8c\x1b>&\x8d\x13\xc3O\x1fc\xe5\xfb#\x95\xe9\xba\xbe\xbe\xbf\xca1\xa0\xed\xfaS\xf7kw\xb7L\xb9\xbd\xd7d\x8b9\xa7{E\xbb\xbd\xd7\xb3\xdb\xab\xe6\x1b\x00\x00\xff\xffPK\x07\x08\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\x00 \x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm84\xce?\x0b\xc20\x10\x05\xf0\xbd\x9f\xe2Q\x84N\xd5=\xab\xb3\x93\xce\xc2\x91\\\xe5 Mc\xee\n\xe6\xdbKc\\\xdf\xfb\xdd\x1f\xcd\xec\xdd\x00P\x08b\xb2%\x8a\xd7-\x19'S\x87\x85\xa2\xf2\x00\xf8\x7f2\x00\xc0\x8c\xc0\xea\x8b\xe4\x83;\xdc\xab\x1a\xaf0V;\xe0\"\xaf\xbd\xd0Q5\x0cX\xcd\xec\xb0H\xe4\x1ed2\xe3\x92\x1c\xa6\xe7\xcf\x9f\xeb\x1aOSo\xfb\xad\x1b\x07\xa1G\x1b\x1d)\xe7(\xbe\xed\xbc|\xe6Jk\x1c;.\xfc\xde\xa5p\xe8\xaf~\x03\x00\x00\xff\xffPK\x07\x08;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00 \x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8\x8c\x94\xc1n\xd4@\x0c\x86\xef\xfb\x14V\x83\x04H]z\xcf\x0d\xa9\\\x10\x14\xa4r\xe1\xb4r2N2e2\x0e\xb6\xd3m\xde\x1e\xcd\xa4\xdbN\x1b*\xed-\xfe\xfc\xeb\x1f\x8f\xe3qU\xed\xaa\n\xaeI[\xf1\x0d)\xd8@\xa0\x13\xb5\xbe\xf3-\x9a\xe7\x08\x1d\x0b 84\x045!\x1c\xdf+\xdc\xa3x\x9e\x15:O\xc1\x81\xa3\xceG\xbf\x8a} \xddU\xd5.y\xd4;\x80\n\xbe\xdc\x93,6\xf8\xd8\xc3\x1c\x1d \x0c$\x04\x1d\x87\xc0G\x85\xaf\xb7?n@\xdb\x81F\x84\x0f\x83\xd9\xa4\xf5\xd5\xd5\x9dr\xdc\xaf\xf0\x13K\x7f\xf5\xf1\x12\x8e\xe2\xcd(\x02*\xfc\xfe\xfc\xfd[\xaeJ\x08\x1d6>x[v\x00\xb6LT\x03\x8a`\x8a\xbc\xd1\xa8\xa9\x80S\x82\x9b;j-\x03t.W\x8b\xe1\xa7\xf0Db\x9e\xb4\x06\x93\x99rzz\x869\x06\x888\xd2\xe9\x1b\xc0\xe5fM\xc9\xa1\x86\x1b\x1c \xb8[;\xf1$Y\x8fT\x13\x1f\xfbGh\xde\xc2[&\xbfR\xee<\x97\x84\xfeor\x8d\x86)}\x96\x0f\x00\xc5y|v\xda\xc3\xe0\xd5\xb8\x17\x1c\x0b\xd6rT\xc3h\x87?\xb4\x1cY\\\x912z\xb0\"\xdc\n\x02\x17\x87\xed\xc1G\xa3\x9e\xa4 :\xb0\x94\x16\xcdbT\x84\x8e\xe7&\x94\xa0\x0b\x8c\xa5~\xc0\xd0\x1d^Cm1\x90\xdb`\x87/\xbd\xd1\xe8\x101\xb2\x96\xe73\x07\xc2X\x12\x1fQ\x96\xed%\x0e\x82\xb1\xdf\x94\xb6\xa1\xa9\x03\x1b\xb8^k\x8bSE\xaf\xa1\x9f6\xa8\x17\x9e\xa72&>L\xeccy\xd9b\xd2O>E\x10I\x8d\xca\x1fuz1\xa7\xb8\x0b\x98^\xda\x93\xa6\x1c\xb2'\xd9\x8b\xc9\xbbM\x7f\xb2Dg\x8d`\x16\xe8[\x96s\xb3_\x05\x97p\x1c(f\x03\xf0\xfa\xaa\x01\xef\x84\xba\x1a.\xaa\x8b\x1cUy\x9b<.\x0e\xd0%\x1a>\xe4E\x91;\x94\x16\x90q^p\xc2l\xa9\xc6\xbc\xec\xb2:;\n\xfd\x9d\xbd\x90[k\xda\xe7g\xff\xf8\x99\x8e\xdf\xfd\x0b\x00\x00\xff\xffPK\x07\x084M\xe0G\xef\x01\x00\x00,\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00 \x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm84\x8f1k\xc0 \x10\x85w\x7f\xc5C\n\x19\x8aI\xd7\xba\x16\xbau\xeb\xd6\x86r\xe8 \x07\xc6X5\xd0\xf4\xd7\x17m2\x89\x8f\xef\xbe{W3;\xab\x00\xf2^\x9a\xec\x89\xe2\xcb\x9e\x1a\xa7V-\x02\xc5\xca\npw\xa2\x00\x03\xcf\xd5\x15\xc9\x1d\xb6x\x15\x8e\xbe\xc2s\x904\xe6\x15\x00\xb43\xb3E\x90\xc8\xe3\x9b\xa95.\xc9b\xfa \xf3\xfbd\x9e\xd7\xeb\xfdZ\x1f\xef\xe4s>\xb78\x0d\xbc\xf0\xf7!\x85\xbdE+\xc7\xbf\xe1j\xf0\xc6^\xe8}\xc85\xe5\x1c\xc5Q\xdf\xb9\xfc\x98\x93\xb6\xa8\x07\xfaP8X\xe8y \xa3\xda\xdc\x0f\xecn\xad\xfe\x02\x00\x00\xff\xffPK\x07\x08t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00 \x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xbcW\xdd\x8f\xdbD\x10\x7f\xf7_1J\x90h\xa5&i\xe1\x01)/\xa8\xf4*q\x88\x96JA \x84\xd0ib\x8f\xe3\xad\xd6\xbbfg|\xb9\xfc\xf7h\xfd\x91\xac?/\x01\xd4}\x8agfg~;\xdfY.\xa3\xe5\x12\xee\x88c\xa7\xf6\xc4 \x19\x01\x17\x14\xabT\xc5(\xca\x1aH\xad\x03\x84\x04\x05\x81\xc5\x11\xe6_3\xe4hTJ,\xebS\xae!U\x9a\xa2\xe52\xf2\xd7\xb6\x11\xc0\x12\xde?\x92;I\xa6\xcc\x01J\x93\x90\x83\x8c\x1cAj\xb5\xb6G\x86\x9fv\xbf|\x04\x8e3\xca\x11^d\"\x05o7\x9b\xcfl\xcd\xaa&\xae\xad;l^\xbe\x82\xa3S\"d\x00\x19\xfex\xfb\xe1\xe7\n\x88#Lp\xaf\xb4\x92S\x04 \xa7\x82\xb6`\xf7\x9f)\x96\x08\x00\x93Dy\xc8\xa8?9[\x90\x13E\xbc\x85\x145S\x04\x90P\xaaL\xc5g\x8f\x12\xe0\x11]\xf3\xcb3\xbd\x03\n\xcf\xdd\xc2\xbd)J\xf1l\x85{M\xbcndjk\xe8\x1c\x9e\x1a\x8a\x12\xca\xcf*\x06p\xea3\x0f\xaa>\xc5\x85s\xa6\x01\x18\xcc)\xfc\xee\xa1\xfc\xad\xc1W\xc9\xad;r5\x10\x16\xa7\xcc\xa1\xc3\xa0'\xcc\x0b\xdd5\xe3\xcf\n2\xcb\xc2QO\xc5\xb4\xf1;\x9f\x0e^\x06lz\xf6\xd4\xb5 L\x99\x0f\x01(#t 7\xa0\xef\xad\xd5\x03b\x81\xccG\xeb\x92\x01C\xe8I\x06\xc4\x13\xe6\xfaJ7\xf4\xee\x8b\x12=\xe7\x86_=\xff\xdf\xb8`\x12\xc0\x8f\xbd8\x84\xe6\xa6q\xec2\xeb$$\xfd\xaf\x98\x16\x15(\xaf\xb2\n\x92\xab\xfb\x02\x93{T1\x81X\x88\xad1\x14\x0b\x88]\x04\x97\xf3R\x8b\x9a\x01\xfd\x0e\xcd\x19\xa3W!\xa8L}\xa9\xd0\x04\x8f\xa8K\xe2\xefG\xb0\xfb\x8c 4=\xc5)\x96Z\xfa\x85\x05\xf3\xc1ve(\xea\xe8\xefR9Jf \xdf\xf3\x05q+\xfe%!rf\x8f\x0f%\x93\x9b\xcf\x85R' \x99\n\xc0\xee\xa9\xbak|\xb4|\x8b\xf7:`\x7fjA\xdd\xfc\x86\x1e\xae\xb9'\xf4\x9f\xdb\xea\x98~\xc1]-Q\xa7\xc0\x0b~Yu\xfe\xf6)#H\xff\x84E\x9d\xcf\x8bW\xb0\xa8\xfa\xb3\xff\xd14\x14\xff\xb3y\xca\x02\xfe\xea\xdc\xee\xb5\xefP\xe5H}L\xbf\xb1\xaa\x11?\xc8\xb6\x9b\xcd\x9bo\xbe[\xbf^\xbf^\xbf\xb9T\xc2X^\xad\xaa\xae\xdd!x\xc3\xd1p\x16\xf8\xc1\xcb$\xa3\x83\xea#\xe6U\xf7\xa9\x873IwR\x05o\xe8\xf4\xb1\xf1\x0e\x16\x0c\xf8I5C\x17\xac\xe0\xed\xef;\xd8+\xad\xfd\xb0\xcfI\x9c\x8a\xeb\xf6\xe5H\x13\xf2\xb8\xd1\x9d43\xfc\x06\xc3\xc1\xd0X\x01=\x15\xe4TNFP\x9f\x89{\x12\x9c\x84yf\x86\x83\xad\xeb\x89f\x9a\x05x\xae\x85\x13\xbe\xdb\x7fk{\xe0I$\xa1pmf|\x0b\xd9\xd5<\xb0iJ\x8e\x92\xaaZ\xa7\\\xf5\xe5\x96\x12\xe5w\xa3n\x01\xdc8QV\x80G\xdet]\xd6r\xf8\xdb\x1e\xa1\xda-/\x84\x91y|\xb3u\x9f\xb0?\x8c$l}&\xe7\xed\xcdv\xdeY\xad\xfdP\x9c*\x90F-\xe5\x85F\xa1\x87\x02%\x9b\xe9\x89\x8bO(\x99\xef\xde\xef5\xb2\xa8\x98 ]\x9c\x812 =\x9d\x95T\x8d\xb2\xc9\x8f\xc55\xe8\xc3\x15\xb8>_9J\xb7\xb0Xn\x82uy\xe3\xc5B}d|'~fP\xd68Z\xd9k&\xcc\xb0Q\xae\xea\x88\x07\xdf\x81\x95\x80Zee\xf5M\xa1{F\xeb\xaa\xeb@d& \xff\x1bD!\xc2N\xd9<_4c%SE\xe8\xa1\x8d\xd0v\"\xd5\xe0\xbe\x1b\xc8\x0b\xa00W\xc6J\xf9\x1a\\0Y\xce\xe0\xc7\x86(s\x18\x0c\xb5n/j\x84\x80)n\xd7\xcbn\xea\xf5nO@\x05\xc8\xb1(\x9e5\xf7\xa1\x11\xfa\xef\xe6\x949\x10\xcbC\xa1\n\xd2\xca\xd0\xac\xd5~e\xf9\x9b\xd0\xde<\xfb\xe9Z\xcb\xd7\xc6\x05fb\x03\xa3\xff\x02\xeb\xd3\xcb\x9e.\xd8\xder\xd1\x9e\x99\xddf|\xf9\x0d\x16\x95P\xa0-\xcb\x7f\x02\x00\x00\xff\xffPK\x07\x084!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00 \x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8\xb4\x95\xd1\x8b\xdb>\x0c\xc7\xdf\xfbW\x88\xf2\x83\xfe\xc6\x91v\xaf\xcb\x18\xe3\x18\x1bl\xecn\x0f\xb7\x97\xb1\x1dE\x17+=\x0d\xc7\xf1,\xa7\xac\xfb\xeb\x87\x9d\xa6I/\xa1I8\xf6\x16d\xe9\xeb\x8fdI\x11KY\xba\x00@\xa5\xd8siP\xbf+\x8d'\xe3%\x85\x1c\xb5\xd0\x02 k,\x0b\x80\x04\x14I\xe6\xd8\x06\xe7\x14>\x94Z\x91\x8b\x1e\xc8\x86\xcd\x0e\x10\x84\xcdN\x13(\xf4\x08\xe2\x1da\x01\x8ar6Q\x7f\x01\x00\xe0\x0f\x96R\xc8cl4X\xf4\x9e\x9cIa\xf5\x1d\x93?/\x93W\xf7\xff\x1f?\xb6\xf7W\x8d\xe9\xc5\xdbUtv\xf4\xabbG*\x05\xef*\x8a\xa6K\xf4\xe7\xfc\xbd\x0c\xae\xbb\xa0+\x81\x02\x0d\xe7$\x1er\xd6u\xf8\x89\xb75\x1c\x15oH1~\x8d\x87K\xb4Vs\x86At\xf3;9`\xa1\x97Gg\x83Eph\x84\xd7\x87\xf6h \x15\x80\xff\x1c\xe5),\xd7\x9bSDx\xa46l\xf4 r&\xad:5\x97\xf34\xda\xb27l1@&1\xd5\xae\x9b\x99D\xb8#\xe3\x13G\x1a=\xcd\"\x8b\x81=\xb0\xf6i\xc7\x9e\xfe\xe9\xe3Oe\xed7n\x83:\x08\xdb\xe0\xd6Q'\xe3`)\xc7\x90G\x01\xdfk\x14\xcf\x99\x10\xba\xec\x11P\x84\xfch\x1d\xa9\x1b\xf3\xaf*w\x0e\xf6\xd1\xec\xc2\x18\xdd\x96\x8a\xc0\xb2%\xcd\x86\xe6\xd6\x93\xa3\xc6\xb6 \x9fX\xc1!\xf8\x1e\xfe]em\xe9|\xe0\xaeo\x19\x84\x046\xf0\xed\xfa\xe6\xf3Ie`\x19\xc0\xd9\x02[_\xfd\x08\x83\xb1\xea\x1cN\xda\x16\xaf\x9bnIT\x99UE\x98\x17\x85\xf2H\xf2&\xf4\xce\xb2#7<\x07\xcfH\xf0\xd3\xdd\x97\xdby \xfe\x94\xd2\xcc\xc80\xb8\x8fe\xf0\x94\x1e\x0b\xab h\x1f\x86\xf1\xd2*>nW\x89\xfe\xdb\xe8\xbf\xee\xde7\x03m\x02V\xbf\xe9=I\xacq\xb3\xdc\x02\x9a\x00\x1a\x05R=$uW\x8f\x8e\xe72\xa8<\x0bC\xd1\x9etiC\xdf\x80#)+\x97\xd1\xe8\xb5[E\xfb\x0b\x97\x02\xecY\xf8\x815\xfbC\n\xd6\xf1\x1e}\xef\x87\x104\xda\xdf\xc1\xdf\x00\x00\x00\xff\xffPK\x07\x08\x0d\x13\xca\xa7\x0c\x02\x00\x00O\x08\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00 \x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8\xcc\x90\xbdN\xc30\x10\xc7w\x9e\xe2\x94\xa5\x03\xa2\xec\xde\x10\x12\x0bbcDB\xd7\xdc\x85\x1er\xce\xc6\xe7V\xc0\xd3\xa3\x98$\x94\xb6CP\x84\x94\xd1\xe7\xff\x97~\x00\x16\xb9v\x17\x00\x00H$Y\x82\xa2\xbf\x0d\x9aY\xb39h\xd0\x1b\x97\xdfz\xb8\x95\xd7\x15\x10[\x9d$v\x06\x07w\xc1\x13\xa7\xa2AQ\xd1\x17\xb8\x97\x0d*\x02\xa1m7\x01\x13\x01\x9aq\xb6b\x06\xc8\x1f\x91\x1d4\xc5\xd5\x9f\x14[v?\xfa\xfe\x9a\xf8m'\x89\xe9p\xc9\xf1\x96\x9357\xc7\xb5\xd0\x88\x1f\xbcc\xf9\xe1\xa9\x0f|`\x12|,\xdf\x15\xc6\xe8\xa5\xc6.\xf1\xfa\xd5\x82V\xa38b\xce\x9c\xd4\xc1j}\xf9\xb4\xee\xfeV\x7fb\xb2\x17\xdb\xa1\x97\xcf\x92=\x91\xcb/\xcf<6g\xea\x97\xc5\xc7p\xcf\x04\xc6\x98\xea\xedD<\xdf\xe2y\\Nk\x97\x85\xa5\xc58\x91F\x8bq\x1e\x8a\xb1jY\x04D\x89\xdf\x87\x94\x89,\xaabz\xeeM\xd5,.zn\xc1\xff#\xfa\n\x00\x00\xff\xffPK\x07\x08\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00 \x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8\xccXmo\xdb\xb6\x13\x7f\xefOq\xb0\x0b$\xf9\xe7/;i1\x0c1\xb0\x05A[\xac\xdd\xd2\xaeX\xfafk;\x83\xa2\xcf2\x1b\x8aT\xc9\x93\x1d\xe7\xd3\x0f\xa2\x1eL=9F\xe2a\xe5+\xf1\x8e\xe2\xfd\xee\x91G\x8eF\x83\xd1\x08^\xa1\xe5F\x84h\x81\x96\x086A.\x16\x823\x12Z\xc1B\x1bGM\x18\xbfe\x11\x1eY\x88\x99P\x103%\x16hi\xbc\x89%,\x84\xc4\xc1h4\xc8\xfe\x9c\x0e\x00F\xf0z\x85fCK\xa1\"H\xd5\x1c\x0d,\xd1 ,\xb4\x94zm\xe1\xd7\x9b\xdf\xdf\x83\xe5K\x8c\x19\x1c/\x89\x12;\x9dL\xbeZ\xad\x82\x9c8\xd6&\x9a\x9c\xfc\x1f\xd6F\x10\xa1\x02f\xe1\xcf\xabw\xd7\x0e\x8bA6g\xa1\x90\x826\x03\x00\xda$8\x05\x1d~EN\x03\x006\x9f\x8b\x0c5\x93\x1f\x8cN\xd0\x90@;\x85\x05\x93\x16\x07\x00\xc9\x966\x00\x80l\xbb\x98\xd1l\x85\xc6\n\xadr\x1a\xc0\xdc\x19#\xc9\xb6\x99\xc2\xc7%B\xc1\x07\xbd\xf0\x0d\xd16S\xcc\x08R\x8bs\x087@Ka\xcb\x95\xe3b\xe3\x1c\xab%#TT\x90\x12F\x84FM\xe1\xe8\xef\xe3Og\xc1\xc5\x97\xd3\x93\xcf\xe3\xf6\xd7\xf1\xe54p\xdfW\xc1_,\xb8\x0f\xbe\x9c\x1e_N?\x8fk\x94\x93\xff\x9d\x9c\\f\xe4\xd3:\xf9\xf2\xd9Q!\x0c\xefX\x9c\xc8Ry\x80\x00\x86\xe7\xe3\xb3\xf1\xd9\xd0\xcd\x15\x8b\xb1\xd7\x04\x19\xb3\xa1\xff^Z}b\xc1\xfdYp1\xfbr\xda\x0f\x82%\x8c/\xd1MI\x90\xec\x07\xe1\xb8\xfb\xa3hK\xba\xdaJ\xf27\xef\x92w\x05R\xab\x08\x8dO}\xbahx\xab\x08#\xe3\"\xc6\xb1\x1e\x17z{\x99\xfe\xbf \xa8\xb3\xf1y\x19PRpT\xb6\xdf\x9d\x05\xbf\xa8\x0f\xeb\xa5\xe0\xcbZ~ \x0b!f\x05\xc4\xa0Dfq\xbe\xcb\xe0*\x8d\xb7(Bf\x05\xaf\xc4.X*iZ#\xb6\x81o\xb9n\xf7\xde\x10\xdc$.\x02\x1fvD\x1d\x91h\xf8\xbd\x0bBsM\xa1v/\x16KE\x19\xdc?:\xea\xa0\xf0.A#bT\xc4\xe4\xd6\x10H\xac\x9aD\xac\x17m\xebg\xce\x08#m\xc4vQ\x0d\xf1\xcb\x8a\x0d\xa4+oo\x8b$\x84\x98e\x9c\xad\xa3g\xc6\xb0MA\x11\x84q\xb5w\xa7zu\x05]mY[\x7fv\x9f\x1a\xf4\xe6\\\xeat\xee\xcf\xb5Z\x88h\x163\xc5\"\xccT\xab\xf3\x88 \x85\xc6\xdf\x90\x9b\xd8\x9f\xa5\x96\xb4O\x983b\x96tM&JfI\xf0\x99%\xc6o=z\xa4u$q\xd6\x84t\x9b\x86h\x14\x12\xfab%SQ\xca\xa2\x1a-FkY\x84\xb3o)\xa6\xbe\xbcX+A\xbaf\xa4\x00\x14\xd2Z\x1b_\xbc\xd2T\x9de\x1eY\xdb\x99\xddXB_\xab\xc4\xe8y\xcaI\xac\xf2\x13\xb8$[\xe4\xa9i\x90\xd2$\xd1\xc6\xb7\" ~\x8bT\x07S\xd4\xb8Yfa\xa3\xa5\xc7Yc\xb8\xf5l#\x02}>\xd7*?\xf6{B\xafb7j\x8d\x17}\x9c)\x08\x11\x84\xb2\xc4\xa4l\xd6\x9a\xaa\xbf\xc8\xc6\xee\x1e#\x1b\xcd>#\x1b\xb7\"d\x8am\xe7\x0d\x8c\xbf9\xb6\xa7\x89\xb7\xb0\x03\xc3~8\xa0\x07\x0b\xb4O\x9ertfU>\xba\xf0\x16\xbbX\xe0:N\x18\x89P\"\xac\x05-;\xfb\x9fr\xb4]Y\x8e\x00\x86?\xff\xf4\xe3\xf8\xa2\xea\x81T\xd4\x16\xa7k\xb3\x07\x85\xdd\xbdng\x98\xe6\xa3\xa7Sz\x94\x90]\xbdp+\x10\x1er~>z\xa3\xb8\xcd\xee\x89\xe5\x7fU\x15\xa1\xa2R\x07\xc69\xda<\xbe\xd1\x18m\x9c\x96\xad\x7fW\xcct\xee\xf8\xcc\xe0b\n\xc3\xf1$\xbbd\xcf,\x19d\xf1\xa4z\x94\xb6 \xf2\xf1&\x96\xa3\xc9\x1c\x17B\xe5W\xaaI\xb6\xd7\xb0\xb1W\xfb4\xc8G\xe0\xd4m\x13\xab\xa3\xc1\xa7z\x16\xf4xq*I$\xcd(\xca\xad\x18j-\x91mWw\x1dJY\xbd\xf6\xa6u\xd1m\xa1z\xad\xd0\x94\xff\x1f\xec\xde\x1a Z\xa6\xa1\xafB-\x84~\x11\xf4&\x0d\xc1`\xa2\xad m6\xd5Sqy\xb3\x8e\x99(^N\xfc\x98\xea\x88\xa5\xa6 \x82B\xf6\xa0\xce\n\x1a\xcf\xf6\x03\xcfT[#5\xcdS=3\xb8\xef\xe2i\xcd};\xb3\xfd\x13\x00\x00\xff\xffPK\x07\x08l\x91\x1d\xd2\xa3\x05\x00\x00\x07\x19\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x001/spec.ymlUT\x05\x00\x01\x80Cm8\xac\x92Oo\xdb0\x0c\xc5\xef\xfe\x14\x0f\xc9\x80\x9d\x92\xb4W\xdf\x86\xae\xeb\x80\xfd\xbb\xf4^0\x16\x95\x10\x91%M\x94\x8d\xf9\xdb\x0fV\xe2$(\xb2d\x05z\xb4\xf8\x1e\xf9\xe3\xa3\xe7\xf3j>\xc7\xa3\xcfi\x88A|F\xb0\x88\xd4\xech\xc3\xd0\xc8\x8dXi(K\xf0\xcbj/\xfd\xcc\xda$Y\xb3\"o\x1968\xc3IA\xde\xc0\x8a+\xaf\x94\xd1\xd2\x8e\xd1E\xd0\xd4kt\xa3\xea9\xa9\x04_\xe3~y\xb7\xbc[\x90\x8b[\xba\xaf\xc61u\x05\x9012N\"\xf7\x10|f\x9f\xb5FN\x1dW@3=T\xc0\x02\xa6 \xc4\\Z=o\x19-\x89?R\xb7\xe4\xc5\xb2\xe6\xc2S\x01@\x1e\"\xd7\xa7\xcfC\xb3\x1fl\x84\x9eKiF1\xba\xc3\x9e\xab?\x8b\x81Z7+RO\xedX\x9eZ.\x87\xa9\x90\xf8w'\x89\xcd\x91\x10\xf8\x90\xd8\xd6\x98-WG\xf5\xb8\xd8d\xb9@}\x00\xfe\xa8x\xf8\xfa\xe9\xe7\xd3\xe3\xf7_O\xef\xc8\xdcl\xc9o\xd8\x85\xcd%hKN_Q\x9f\xf4W\xb0\xbf\x94s\x17\x1a\x12/~\x03C\x99\xa091\xb50l\xc5\x97\x13\xea\xf9\x0e\xc5s\x866Z^\xf6\x96\x9bY\x9eiWo\xe3\nM\xd7\xb2\xcf%\x1f\xd8\x90\xca\xefz\x88\xfc*]h\xf42\xd6\xcd\x99\xdfdM\x9e@\xaa\x9c\x15\x9d\xb2\xc1z\xf8\xdf\xb9\xbbb\xbe}\xa7\xbd\xee\x8dap\xcf.\xc41\x0f$\xd6\xd0\xa5\x86\xaf\x9e\xe8\xc5p\xffO\x94^T\xd6\xe2$\x0f5b\x92\x9e\xf2+\xc4\xd1}\x02\xfc\x1b\x00\x00\xff\xffPK\x07\x08o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xd6\xc8_\xaa\x00\x00\x00\x05\x01\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x001/_dev/deploy/docker/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(3\x9a\x9f\xb1\xff\x00\x00\x00\xff\x01\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xfe\x00\x00\x001/_dev/deploy/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa65\x8d*\x01\x00\x00 \x02\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81J\x02\x00\x001/_dev/deploy/variants.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x97\x05_\xfe\xa3\x00\x00\x00\xf6\x00\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xca\x03\x00\x001/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeeO\xccS\xf8\x01\x00\x005\x05\x00\x00\x14\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb3\x04\x00\x001/changelog.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xf0\xe1z\xec\xe4\x00\x00\x00\xba\x01\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf6\x06\x00\x001/changelog.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(T\xb6\xb4\x9c\x7f\x00\x00\x00\xb9\x00\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81 \x08\x00\x001/data_stream/_dev/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x19\x05\xa8\xb0\xfd\x00\x00\x00\x9e\x01\x00\x00/\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf1\x08\x00\x001/data_stream/_dev/test/pipeline/event.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(v\xb2^\x18\x05\x01\x00\x00\xaa\x01\x00\x002\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81T\n\x00\x001/data_stream/_dev/test/pipeline/expected.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(g.\xe6-M\x01\x00\x00j\x04\x00\x00)\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xc2\x0b\x00\x001/data_stream/_dev/test/pipeline/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x7f\x83m\x85\x90\x00\x00\x00O\x01\x00\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81o\x0d\x00\x001/data_stream/_dev/test/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(;\x10#\xda\x8c\x00\x00\x00\xcc\x00\x00\x00'\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81V\x0e\x00\x001/data_stream/_dev/test/system/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4M\xe0G\xef\x01\x00\x00,\x05\x00\x00$\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81@\x0f\x00\x001/data_stream/fields/fields.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(t\xa7P\x0f\xa7\x00\x00\x00\xeb\x00\x00\x00\x1d\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x8a\x11\x00\x001/data_stream/fields/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(4!\x95\xe4\xd1\x03\x00\x00=\x10\x00\x00\x1f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x85\x12\x00\x001/data_stream/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x0d\x13\xca\xa7\x0c\x02\x00\x00O\x08\x00\x00\x16\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xac\x16\x00\x001/data_stream/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xed\xdd\xda\xfb\xff\x00\x00\x00\xa4\x05\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x05\x19\x00\x001/kibana/spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(l\x91\x1d\xd2\xa3\x05\x00\x00\x07\x19\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81L\x1a\x00\x001/manifest.spec.ymlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(o?\x9d\x04\x84\x01\x00\x00b\x04\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x819 \x00\x001/spec.ymlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x13\x00\x13\x00)\x06\x00\x00\xfe!\x00\x00\x00\x00" fs.Register(data) } \ No newline at end of file diff --git a/code/go/internal/validator/folder_item_content.go b/code/go/internal/validator/folder_item_content.go new file mode 100644 index 000000000..b1c0e15c6 --- /dev/null +++ b/code/go/internal/validator/folder_item_content.go @@ -0,0 +1,84 @@ +package validator + +import ( + "bytes" + "encoding/json" + "fmt" + "io/ioutil" + "mime" + + "github.com/pkg/errors" + "gopkg.in/yaml.v3" +) + +func loadItemContent(itemPath, mediaType string) ([]byte, error) { + itemData, err := ioutil.ReadFile(itemPath) + if err != nil { + return nil, errors.Wrap(err, "reading item file failed") + } + + if len(itemData) == 0 { + return nil, errors.New("file is empty") + } + + if mediaType == "" { + return itemData, nil // no item's schema defined + } + + basicMediaType, params, err := mime.ParseMediaType(mediaType) + if err != nil { + return nil, errors.Wrapf(err, "invalid media type (%s)", mediaType) + } + + switch basicMediaType { + case "application/x-yaml": + if v, _ := params["require-document-dashes"]; v == "true" && !bytes.HasPrefix(itemData, []byte("---\n")) { + return nil, errors.New("document dashes are required (start the document with '---')") + } + + var c interface{} + err = yaml.Unmarshal(itemData, &c) + if err != nil { + return nil, errors.Wrapf(err, "unmarshalling YAML file failed (path: %s)", itemPath) + } + c = expandItemKey(c) + + itemData, err = json.Marshal(&c) + if err != nil { + return nil, errors.Wrapf(err, "converting YAML file to JSON failed (path: %s)", itemPath) + } + case "application/json": // no need to convert the item content + default: + return nil, fmt.Errorf("unsupported media type (%s)", mediaType) + } + return itemData, nil +} + +func expandItemKey(c interface{}) interface{} { + if c == nil { + return c + } + + // c is an array + if cArr, isArray := c.([]interface{}); isArray { + var arr []interface{} + for _, ca := range cArr { + arr = append(arr, expandItemKey(ca)) + } + return arr + } + + // c is map[string]interface{} + if cMap, isMapString := c.(map[string]interface{}); isMapString { + expanded := MapStr{} + for k, v := range cMap { + ex := expandItemKey(v) + _, err := expanded.Put(k, ex) + if err != nil { + panic(errors.Wrapf(err, "unexpected error while setting key value (key: %s)", k)) + } + } + return expanded + } + return c // c is something else, e.g. string, int, etc. +} \ No newline at end of file diff --git a/code/go/internal/validator/folder_item_spec.go b/code/go/internal/validator/folder_item_spec.go index 0453204ee..f7873cb43 100644 --- a/code/go/internal/validator/folder_item_spec.go +++ b/code/go/internal/validator/folder_item_spec.go @@ -1,20 +1,15 @@ package validator import ( - "bytes" - "encoding/json" "fmt" "github.com/elastic/package-spec/code/go/internal/yamlschema" "github.com/xeipuuv/gojsonschema" - "io/ioutil" - "mime" "net/http" "os" "path/filepath" "regexp" "github.com/pkg/errors" - "gopkg.in/yaml.v3" ) type folderItemSpec struct { @@ -96,45 +91,3 @@ func (s *folderItemSpec) validate(fs http.FileSystem, folderSpecPath string, ite } return errs } - -func loadItemContent(itemPath, mediaType string) ([]byte, error) { - itemData, err := ioutil.ReadFile(itemPath) - if err != nil { - return nil, errors.Wrap(err, "reading item file failed") - } - - if len(itemData) == 0 { - return nil, errors.New("file is empty") - } - - if mediaType == "" { - return itemData, nil // no item's schema defined - } - - basicMediaType, params, err := mime.ParseMediaType(mediaType) - if err != nil { - return nil, errors.Wrapf(err, "invalid media type (%s)", mediaType) - } - - switch basicMediaType { - case "application/x-yaml": - if v, _ := params["require-document-dashes"]; v == "true" && !bytes.HasPrefix(itemData, []byte("---\n")) { - return nil, errors.New("document dashes are required (start the document with '---')") - } - - var c interface{} - err = yaml.Unmarshal(itemData, &c) - if err != nil { - return nil, errors.Wrapf(err, "unmarshalling YAML file failed (path: %s)", itemPath) - } - - itemData, err = json.Marshal(&c) - if err != nil { - return nil, errors.Wrapf(err, "converting YAML file to JSON failed (path: %s)", itemPath) - } - case "application/json": // no need to convert the item content - default: - return nil, fmt.Errorf("unsupported media type (%s)", mediaType) - } - return itemData, nil -} diff --git a/code/go/internal/validator/mapstr.go b/code/go/internal/validator/mapstr.go new file mode 100644 index 000000000..b00987edf --- /dev/null +++ b/code/go/internal/validator/mapstr.go @@ -0,0 +1,136 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package validator + +// WARNING: This code is copied from https://github.com/elastic/beats/blob/master/libbeat/common/mapstr.go +// This was done to not have to import the full common package and all its dependencies +// Not needed methods / variables were removed, but no changes made to the logic. + +import ( + "encoding/json" + "fmt" + "strings" + + "github.com/pkg/errors" +) + +var ( + // errKeyNotFound indicates that the specified key was not found. + errKeyNotFound = errors.New("key not found") +) + +// MapStr is a map[string]interface{} wrapper with utility methods for common +// map operations like converting to JSON. +type MapStr map[string]interface{} + +// GetValue gets a value from the map. If the key does not exist then an error +// is returned. +func (m MapStr) GetValue(key string) (interface{}, error) { + _, _, v, found, err := mapFind(key, m, false) + if err != nil { + return nil, err + } + if !found { + return nil, errKeyNotFound + } + return v, nil +} + +// Put associates the specified value with the specified key. If the map +// previously contained a mapping for the key, the old value is replaced and +// returned. The key can be expressed in dot-notation (e.g. x.y) to put a value +// into a nested map. +// +// If you need insert keys containing dots then you must use bracket notation +// to insert values (e.g. m[key] = value). +func (m MapStr) Put(key string, value interface{}) (interface{}, error) { + // XXX `safemapstr.Put` mimics this implementation, both should be updated to have similar behavior + k, d, old, _, err := mapFind(key, m, true) + if err != nil { + return nil, err + } + + d[k] = value + return old, nil +} + +// StringToPrint returns the MapStr as pretty JSON. +func (m MapStr) StringToPrint() string { + j, err := json.MarshalIndent(m, "", " ") + if err != nil { + return fmt.Sprintf("Not valid json: %v", err) + } + return string(j) +} + +// tomapStr performs a type assertion on v and returns a MapStr. v can be either +// a MapStr or a map[string]interface{}. If it's any other type or nil then +// an error is returned. +func toMapStr(v interface{}) (MapStr, error) { + m, ok := tryToMapStr(v) + if !ok { + return nil, errors.Errorf("expected map but type is %T", v) + } + return m, nil +} + +func tryToMapStr(v interface{}) (MapStr, bool) { + switch m := v.(type) { + case MapStr: + return m, true + case map[string]interface{}: + return MapStr(m), true + default: + return nil, false + } +} + +// mapFind iterates a MapStr based on a the given dotted key, finding the final +// subMap and subKey to operate on. +// An error is returned if some intermediate is no map or the key doesn't exist. +// If createMissing is set to true, intermediate maps are created. +// The final map and un-dotted key to run further operations on are returned in +// subKey and subMap. The subMap already contains a value for subKey, the +// present flag is set to true and the oldValue return will hold +// the original value. +func mapFind( + key string, + data MapStr, + createMissing bool, +) (subKey string, subMap MapStr, oldValue interface{}, present bool, err error) { + // XXX `safemapstr.mapFind` mimics this implementation, both should be updated to have similar behavior + + for { + // Fast path, key is present as is. + if v, exists := data[key]; exists { + return key, data, v, true, nil + } + + idx := strings.IndexRune(key, '.') + if idx < 0 { + return key, data, nil, false, nil + } + + k := key[:idx] + d, exists := data[k] + if !exists { + if createMissing { + d = MapStr{} + data[k] = d + } else { + return "", nil, nil, false, errKeyNotFound + } + } + + v, err := toMapStr(d) + if err != nil { + return "", nil, nil, false, err + } + + // advance to sub-map + key = key[idx+1:] + data = v + } +} diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json new file mode 100644 index 000000000..b5e42e4f9 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json @@ -0,0 +1,12 @@ +{ + "events": [ + { + "@timestamp": "2016-10-25T12:49:34.000Z", + "message": "127.0.0.1 - - [07/Dec/2016:11:04:37 +0100] \"GET /test1 HTTP/1.1\" 404 571 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36\"\n" + }, + { + "@timestamp": "2016-10-25T12:49:34.000Z", + "message": "127.0.0.1 - - [07/Dec/2016:11:05:07 +0100] \"GET /taga HTTP/1.1\" 404 169 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0\"\n" + } + ] +} \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json-expected.json b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json-expected.json new file mode 100644 index 000000000..55bdd8dc6 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-event.json-expected.json @@ -0,0 +1,120 @@ +{ + "expected": [ + { + "@timestamp": "2016-12-07T10:04:37.000Z", + "nginx": { + "access": { + "remote_ip_list": [ + "127.0.0.1" + ] + } + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "source": { + "address": "127.0.0.1", + "ip": "127.0.0.1" + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2016-10-25T12:49:34.000Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + }, + "url": { + "original": "/test1" + } + }, + { + "@timestamp": "2016-12-07T10:05:07.000Z", + "nginx": { + "access": { + "remote_ip_list": [ + "127.0.0.1" + ] + } + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 169 + }, + "status_code": 404 + } + }, + "source": { + "address": "127.0.0.1", + "ip": "127.0.0.1" + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2016-10-25T12:49:34.000Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Firefox", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0", + "os": { + "name": "Mac OS X", + "version": "10.12", + "full": "Mac OS X 10.12" + }, + "device": { + "name": "Mac" + }, + "version": "49.0." + }, + "url": { + "original": "/taga" + } + } + ] +} \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log new file mode 100644 index 000000000..355980356 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log @@ -0,0 +1,12 @@ +127.0.0.1 - - [07/Dec/2016:11:04:37 +0100] "GET /test1 HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" +127.0.0.1 - - [07/Dec/2016:11:04:58 +0100] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0" +127.0.0.1 - - [07/Dec/2016:11:04:59 +0100] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0" +127.0.0.1 - - [07/Dec/2016:11:05:07 +0100] "GET /taga HTTP/1.1" 404 169 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0" +77.179.66.156 - - [07/Dec/2016:10:34:43 +0100] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" +77.179.66.156 - - [07/Dec/2016:10:34:43 +0100] "GET /favicon.ico HTTP/1.1" 404 571 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" +77.179.66.156 - - [07/Dec/2016:10:43:18 +0100] "GET /test HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" +77.179.66.156 - - [07/Dec/2016:10:43:21 +0100] "GET /test HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" +77.179.66.156 - - [07/Dec/2016:10:43:23 +0100] "GET /test1 HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" +77.179.66.156 - - [25/Oct/2016:14:49:33 +0200] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" +77.179.66.156 - - [25/Oct/2016:14:49:34 +0200] "GET /favicon.ico HTTP/1.1" 404 571 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" +77.179.66.156 - - [25/Oct/2016:14:50:44 +0200] "GET /adsasd HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-config.json b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-config.json new file mode 100644 index 000000000..8fcda1b98 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-config.json @@ -0,0 +1,14 @@ +{ + "multiline": { + "first_line_pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}" + }, + "fields": { + "@timestamp": "2020-04-28T11:07:58.223Z", + "ecs": { + "version": "1.5.0" + }, + "event.category": [ + "web" + ] + } +} \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-expected.json b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-expected.json new file mode 100644 index 000000000..4b619857f --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/_dev/test/pipeline/test-access-raw.log-expected.json @@ -0,0 +1,910 @@ +{ + "expected": [ + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "127.0.0.1" + ] + } + }, + "source": { + "address": "127.0.0.1", + "ip": "127.0.0.1" + }, + "url": { + "original": "/test1" + }, + "@timestamp": "2016-12-07T10:04:37.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "127.0.0.1" + ] + } + }, + "source": { + "address": "127.0.0.1", + "ip": "127.0.0.1" + }, + "url": { + "original": "/" + }, + "@timestamp": "2016-12-07T10:04:58.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 0 + }, + "status_code": 304 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "success" + }, + "user_agent": { + "name": "Firefox", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0", + "os": { + "name": "Mac OS X", + "version": "10.12", + "full": "Mac OS X 10.12" + }, + "device": { + "name": "Mac" + }, + "version": "49.0." + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "127.0.0.1" + ] + } + }, + "source": { + "address": "127.0.0.1", + "ip": "127.0.0.1" + }, + "url": { + "original": "/" + }, + "@timestamp": "2016-12-07T10:04:59.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 0 + }, + "status_code": 304 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "success" + }, + "user_agent": { + "name": "Firefox", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0", + "os": { + "name": "Mac OS X", + "version": "10.12", + "full": "Mac OS X 10.12" + }, + "device": { + "name": "Mac" + }, + "version": "49.0." + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "127.0.0.1" + ] + } + }, + "source": { + "address": "127.0.0.1", + "ip": "127.0.0.1" + }, + "url": { + "original": "/taga" + }, + "@timestamp": "2016-12-07T10:05:07.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 169 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Firefox", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0", + "os": { + "name": "Mac OS X", + "version": "10.12", + "full": "Mac OS X 10.12" + }, + "device": { + "name": "Mac" + }, + "version": "49.0." + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/" + }, + "@timestamp": "2016-12-07T09:34:43.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 612 + }, + "status_code": 200 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "success" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/favicon.ico" + }, + "@timestamp": "2016-12-07T09:34:43.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get", + "referrer": "http://localhost:8080/" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/test" + }, + "@timestamp": "2016-12-07T09:43:18.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/test" + }, + "@timestamp": "2016-12-07T09:43:21.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/test1" + }, + "@timestamp": "2016-12-07T09:43:23.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.98" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/" + }, + "@timestamp": "2016-10-25T12:49:33.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 612 + }, + "status_code": 200 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "success" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.59" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/favicon.ico" + }, + "@timestamp": "2016-10-25T12:49:34.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get", + "referrer": "http://localhost:8080/" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.59" + } + }, + { + "event.category": [ + "web" + ], + "nginx": { + "access": { + "remote_ip_list": [ + "77.179.66.156" + ] + } + }, + "source": { + "geo": { + "continent_name": "Europe", + "region_iso_code": "DE-RP", + "city_name": "Germersheim", + "region_name": "Rheinland-Pfalz", + "location": { + "lon": 8.3639, + "lat": 49.2231 + }, + "country_iso_code": "DE" + }, + "as": { + "number": 6805, + "organization": { + "name": "Telefonica Germany" + } + }, + "address": "77.179.66.156", + "ip": "77.179.66.156" + }, + "url": { + "original": "/adsasd" + }, + "@timestamp": "2016-10-25T12:50:44.000Z", + "ecs": { + "version": "1.5.0" + }, + "related": { + "ip": [ + "77.179.66.156" + ] + }, + "http": { + "request": { + "method": "get" + }, + "version": "1.1", + "response": { + "body": { + "bytes": 571 + }, + "status_code": 404 + } + }, + "event": { + "category": [ + "web" + ], + "type": [ + "access" + ], + "created": "2020-04-28T11:07:58.223Z", + "kind": "event", + "outcome": "failure" + }, + "user_agent": { + "name": "Chrome", + "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36", + "os": { + "name": "Mac OS X", + "version": "10.12.0", + "full": "Mac OS X 10.12.0" + }, + "device": { + "name": "Mac" + }, + "version": "54.0.2840.59" + } + } + ] +} \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/elasticsearch/ingest_pipeline/default.yml b/code/go/internal/validator/test/packages/expanded/data_stream/foo/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 000000000..2c1a50fa4 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,4 @@ +--- +description: Pipeline for Microsoft DHCP + +processors: \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/fields/some_fields.yml b/code/go/internal/validator/test/packages/expanded/data_stream/foo/fields/some_fields.yml new file mode 100644 index 000000000..e6e1d439f --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/fields/some_fields.yml @@ -0,0 +1,24 @@ +- name: source + title: Source + group: 2 + type: group + fields: + - name: geo.city_name + level: core + type: keyword + description: City name. + ignore_above: 1024 + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + - name: geo.region_iso_code + level: core + type: keyword + description: Region ISO code. + ignore_above: 1024 + - name: geo.region_name + level: core + type: keyword + description: Region name. + ignore_above: 1024 \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/foo/manifest.yml b/code/go/internal/validator/test/packages/expanded/data_stream/foo/manifest.yml new file mode 100644 index 000000000..2adfb5005 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/foo/manifest.yml @@ -0,0 +1,23 @@ +title: Nginx access logs +type: logs +release: experimental +streams: + - input: logfile + vars: + - name: paths + type: text + title: Paths + multi: true + required: true + show_user: true + default: + - /var/log/nginx/access.log* + - name: server_status_path + type: text + title: Server Status Path + multi: false + required: true + show_user: false + default: /server-status + title: Nginx access logs + description: Collect Nginx access logs \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/pe/fields/some_fields.yml b/code/go/internal/validator/test/packages/expanded/data_stream/pe/fields/some_fields.yml new file mode 100644 index 000000000..e6e1d439f --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/pe/fields/some_fields.yml @@ -0,0 +1,24 @@ +- name: source + title: Source + group: 2 + type: group + fields: + - name: geo.city_name + level: core + type: keyword + description: City name. + ignore_above: 1024 + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + - name: geo.region_iso_code + level: core + type: keyword + description: Region ISO code. + ignore_above: 1024 + - name: geo.region_name + level: core + type: keyword + description: Region name. + ignore_above: 1024 \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/data_stream/pe/manifest.yml b/code/go/internal/validator/test/packages/expanded/data_stream/pe/manifest.yml new file mode 100644 index 000000000..e2d59613f --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/data_stream/pe/manifest.yml @@ -0,0 +1,23 @@ +title: pe sample +type: logs +release: experimental +streams: + - input: logfile + vars: + - name: paths + type: text + title: Paths + multi: true + required: true + show_user: true + default: + - /var/log/nginx/access.log* + - name: server_status_path + type: text + title: Server Status Path + multi: false + required: true + show_user: false + default: /server-status + title: Nginx access logs + description: Collect Nginx access logs \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/expanded/docs/.empty b/code/go/internal/validator/test/packages/expanded/docs/.empty new file mode 100644 index 000000000..e69de29bb diff --git a/code/go/internal/validator/test/packages/expanded/manifest.yml b/code/go/internal/validator/test/packages/expanded/manifest.yml new file mode 100644 index 000000000..2f921c5d9 --- /dev/null +++ b/code/go/internal/validator/test/packages/expanded/manifest.yml @@ -0,0 +1,28 @@ +format_version: 1.0.4 +name: good +title: GOOD +description: This package is good. +version: 0.1.2 +release: beta +conditions: + kibana: + version: '^7.9.0' +policy_templates: + - name: apache + title: Apache logs and metrics + description: Collect logs and metrics from Apache instances + inputs: + - type: apache/metrics + title: Collect metrics from Apache instances + description: Collecting Apache status metrics + vars: + - name: hosts + type: text + title: Hosts + multi: true + required: true + show_user: true + default: + - http://127.0.0.1 +owner: + github: elastic/foobar \ No newline at end of file diff --git a/code/go/internal/validator/test/packages/good/data_stream/foo/manifest.yml b/code/go/internal/validator/test/packages/good/data_stream/foo/manifest.yml index 2adfb5005..28c38215f 100644 --- a/code/go/internal/validator/test/packages/good/data_stream/foo/manifest.yml +++ b/code/go/internal/validator/test/packages/good/data_stream/foo/manifest.yml @@ -20,4 +20,8 @@ streams: show_user: false default: /server-status title: Nginx access logs - description: Collect Nginx access logs \ No newline at end of file + description: Collect Nginx access logs +elasticsearch.index_template.mappings: + a: + b: 1 +elasticsearch.index_template.ingest_pipeline.name: foobar diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml b/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml index dfa4c5a9b..2f921c5d9 100644 --- a/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml +++ b/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml @@ -5,7 +5,8 @@ description: This package is good. version: 0.1.2 release: beta conditions: - kibana.version: '^7.9.0' + kibana: + version: '^7.9.0' policy_templates: - name: apache title: Apache logs and metrics diff --git a/versions/1/manifest.spec.yml b/versions/1/manifest.spec.yml index bd6972d55..96c65ae89 100644 --- a/versions/1/manifest.spec.yml +++ b/versions/1/manifest.spec.yml @@ -90,15 +90,20 @@ spec: examples: - web conditions: - description: Constraints under which this package can be installed. + description: Conditions under which this package can be installed. type: object additionalProperties: false properties: - kibana.version: - type: string - description: Kibana versions compatible with this package. - examples: - - ">=7.9.0" + kibana: + description: Kibana conditions + type: object + additionalProperties: false + properties: + version: + type: string + description: Kibana versions compatible with this package. + examples: + - ">=7.9.0" icons: description: List of icons for by this package. type: array From 631cc97d44bf2025e5dadc36737d947740c67674 Mon Sep 17 00:00:00 2001 From: mtojek Date: Tue, 6 Oct 2020 16:29:43 +0200 Subject: [PATCH 4/4] Fix: kibana.version --- code/go/internal/validator/folder_item_spec.go | 2 +- .../test/packages/missing_pipeline_dashes/manifest.yml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/go/internal/validator/folder_item_spec.go b/code/go/internal/validator/folder_item_spec.go index cb10abec8..a55d58e4c 100644 --- a/code/go/internal/validator/folder_item_spec.go +++ b/code/go/internal/validator/folder_item_spec.go @@ -9,7 +9,7 @@ import ( "github.com/pkg/errors" "github.com/xeipuuv/gojsonschema" - + "github.com/elastic/package-spec/code/go/internal/yamlschema" ) diff --git a/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml b/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml index 2f921c5d9..dfa4c5a9b 100644 --- a/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml +++ b/code/go/internal/validator/test/packages/missing_pipeline_dashes/manifest.yml @@ -5,8 +5,7 @@ description: This package is good. version: 0.1.2 release: beta conditions: - kibana: - version: '^7.9.0' + kibana.version: '^7.9.0' policy_templates: - name: apache title: Apache logs and metrics