diff --git a/core/config.go b/core/config.go index 9284c0b..126fe62 100644 --- a/core/config.go +++ b/core/config.go @@ -72,6 +72,7 @@ type Config struct { type Table struct { Name string Table string + Type string Blocklist []string Remotes []Remote Columns []Column diff --git a/core/init.go b/core/init.go index a464ef0..4d88287 100644 --- a/core/init.go +++ b/core/init.go @@ -21,7 +21,7 @@ func (sg *SuperGraph) initConfig() error { for i := 0; i < len(c.Tables); i++ { t := &c.Tables[i] - t.Name = flect.Pluralize(strings.ToLower(t.Name)) + // t.Name = flect.Pluralize(strings.ToLower(t.Name)) if _, ok := tm[t.Name]; ok { sg.conf.Tables = append(c.Tables[:i], c.Tables[i+1:]...) @@ -100,21 +100,26 @@ func getDBTableAliases(c *Config) map[string][]string { for i := range c.Tables { t := c.Tables[i] - if len(t.Table) == 0 || len(t.Columns) != 0 { - continue + if t.Table != "" && t.Type == "" { + m[t.Table] = append(m[t.Table], t.Name) } - - m[t.Table] = append(m[t.Table], t.Name) } return m } func addTables(c *Config, di *psql.DBInfo) error { + var err error + for _, t := range c.Tables { - if t.Table == "" || len(t.Columns) == 0 { - continue + switch t.Type { + case "json", "jsonb": + err = addJsonTable(di, t.Columns, t) + + case "polymorphic": + err = addVirtualTable(di, t.Columns, t) } - if err := addTable(di, t.Columns, t); err != nil { + + if err != nil { return err } @@ -122,17 +127,18 @@ func addTables(c *Config, di *psql.DBInfo) error { return nil } -func addTable(di *psql.DBInfo, cols []Column, t Table) error { +func addJsonTable(di *psql.DBInfo, cols []Column, t Table) error { + // This is for jsonb columns that want to be tables. bc, ok := di.GetColumn(t.Table, t.Name) if !ok { return fmt.Errorf( - "Column '%s' not found on table '%s'", + "json table: column '%s' not found on table '%s'", t.Name, t.Table) } if bc.Type != "json" && bc.Type != "jsonb" { return fmt.Errorf( - "Column '%s' in table '%s' is of type '%s'. Only JSON or JSONB is valid", + "json table: column '%s' in table '%s' is of type '%s'. Only JSON or JSONB is valid", t.Name, t.Table, bc.Type) } @@ -159,8 +165,38 @@ func addTable(di *psql.DBInfo, cols []Column, t Table) error { return nil } +func addVirtualTable(di *psql.DBInfo, cols []Column, t Table) error { + if len(cols) == 0 { + return fmt.Errorf("polymorphic table: no id column specified") + } + + c := cols[0] + + if c.ForeignKey == "" { + return fmt.Errorf("polymorphic table: no 'related_to' specified on id column") + } + + s := strings.SplitN(c.ForeignKey, ".", 2) + + if len(s) != 2 { + return fmt.Errorf("polymorphic table: foreign key must be .") + } + + di.VTables = append(di.VTables, psql.VirtualTable{ + Name: t.Name, + IDColumn: c.Name, + TypeColumn: s[0], + FKeyColumn: s[1], + }) + + return nil +} + func addForeignKeys(c *Config, di *psql.DBInfo) error { for _, t := range c.Tables { + if t.Type != "" { + continue + } for _, c := range t.Columns { if c.ForeignKey == "" { continue @@ -174,30 +210,52 @@ func addForeignKeys(c *Config, di *psql.DBInfo) error { } func addForeignKey(di *psql.DBInfo, c Column, t Table) error { - c1, ok := di.GetColumn(t.Name, c.Name) + var tn string + + if t.Type == "polymorphic" { + tn = t.Table + } else { + tn = t.Name + } + + c1, ok := di.GetColumn(tn, c.Name) if !ok { return fmt.Errorf( - "Invalid table '%s' or column '%s' in Config", - t.Name, c.Name) + "config: invalid table '%s' or column '%s' defined", + tn, c.Name) } v := strings.SplitN(c.ForeignKey, ".", 2) if len(v) != 2 { return fmt.Errorf( - "Invalid foreign_key in Config for table '%s' and column '%s", - t.Name, c.Name) + "config: invalid foreign_key defined for table '%s' and column '%s': %s", + tn, c.Name, c.ForeignKey) + } + + // check if it's a polymorphic foreign key + if _, ok := di.GetColumn(tn, v[0]); ok { + c2, ok := di.GetColumn(tn, v[1]) + if !ok { + return fmt.Errorf( + "config: invalid column '%s' for polymorphic relationship on table '%s' and column '%s'", + v[1], tn, c.Name) + } + + c1.FKeyTable = v[0] + c1.FKeyColID = []int16{c2.ID} + return nil } fkt, fkc := v[0], v[1] - c2, ok := di.GetColumn(fkt, fkc) + c3, ok := di.GetColumn(fkt, fkc) if !ok { return fmt.Errorf( - "Invalid foreign_key in Config for table '%s' and column '%s", - t.Name, c.Name) + "config: foreign_key for table '%s' and column '%s' points to unknown table '%s' and column '%s'", + t.Name, c.Name, v[0], v[1]) } c1.FKeyTable = fkt - c1.FKeyColID = []int16{c2.ID} + c1.FKeyColID = []int16{c3.ID} return nil } diff --git a/core/internal/psql/query.go b/core/internal/psql/query.go index 1d0c255..26514c7 100644 --- a/core/internal/psql/query.go +++ b/core/internal/psql/query.go @@ -156,27 +156,29 @@ func (co *Compiler) compileQueryWithMetadata( if id < closeBlock { sel := &c.s[id] - if len(sel.Cols) == 0 { - continue - } - ti, err := c.schema.GetTable(sel.Name) if err != nil { return c.md, err } - if sel.ParentID == -1 { - io.WriteString(c.w, `(`) - } else { - c.renderLateralJoin(sel) - } + if sel.Type != qcode.STUnion { + if len(sel.Cols) == 0 { + continue + } - if !ti.IsSingular { - c.renderPluralSelect(sel, ti) - } + if sel.ParentID == -1 { + io.WriteString(c.w, `(`) + } else { + c.renderLateralJoin(sel) + } - if err := c.renderSelect(sel, ti, vars); err != nil { - return c.md, err + if !ti.IsSingular { + c.renderPluralSelect(sel, ti) + } + + if err := c.renderSelect(sel, ti, vars); err != nil { + return c.md, err + } } for _, cid := range sel.Children { @@ -184,10 +186,10 @@ func (co *Compiler) compileQueryWithMetadata( continue } child := &c.s[cid] + if child.SkipRender { continue } - st.Push(child.ID + closeBlock) st.Push(child.ID) } @@ -195,33 +197,37 @@ func (co *Compiler) compileQueryWithMetadata( } else { sel := &c.s[(id - closeBlock)] - ti, err := c.schema.GetTable(sel.Name) - if err != nil { - return c.md, err - } + if sel.Type != qcode.STUnion { + ti, err := c.schema.GetTable(sel.Name) + if err != nil { + return c.md, err + } - io.WriteString(c.w, `)`) - aliasWithID(c.w, "__sr", sel.ID) + io.WriteString(c.w, `)`) + aliasWithID(c.w, "__sr", sel.ID) - io.WriteString(c.w, `)`) - aliasWithID(c.w, "__sj", sel.ID) - - if !ti.IsSingular { io.WriteString(c.w, `)`) aliasWithID(c.w, "__sj", sel.ID) - } - if sel.ParentID == -1 { - if st.Len() != 0 { - io.WriteString(c.w, `, `) + if !ti.IsSingular { + io.WriteString(c.w, `)`) + aliasWithID(c.w, "__sj", sel.ID) + } + + if sel.ParentID == -1 { + if st.Len() != 0 { + io.WriteString(c.w, `, `) + } + } else { + c.renderLateralJoinClose(sel) } - } else { - c.renderLateralJoinClose(sel) } - if len(sel.Args) != 0 { - for _, v := range sel.Args { - qcode.FreeNode(v) + if sel.Type != qcode.STMember { + if len(sel.Args) != 0 { + for _, v := range sel.Args { + qcode.FreeNode(v) + } } } } @@ -359,6 +365,16 @@ func (c *compilerContext) initSelect(sel *qcode.Select, ti *DBTableInfo, vars Va c.md.skipped |= (1 << uint(id)) } + case RelPolymorphic: + if _, ok := colmap[rel.Left.Col]; !ok { + cols = append(cols, &qcode.Column{Table: ti.Name, Name: rel.Left.Col, FieldName: rel.Left.Col}) + colmap[rel.Left.Col] = struct{}{} + } + if _, ok := colmap[rel.Right.Table]; !ok { + cols = append(cols, &qcode.Column{Table: ti.Name, Name: rel.Right.Table, FieldName: rel.Right.Table}) + colmap[rel.Right.Table] = struct{}{} + } + default: return nil, fmt.Errorf("unknown relationship %s", rel) } @@ -437,15 +453,23 @@ func (c *compilerContext) renderSelect(sel *qcode.Select, ti *DBTableInfo, vars var rel *DBRel var err error + // Relationships must be between union parents and their parents if sel.ParentID != -1 { - parent := c.s[sel.ParentID] + if sel.Type == qcode.STMember && sel.UParentID != -1 { + cn := c.s[sel.ParentID].Name + pn := c.s[sel.UParentID].Name + rel, err = c.schema.GetRel(cn, pn) - rel, err = c.schema.GetRel(ti.Name, parent.Name) - if err != nil { - return err + } else { + pn := c.s[sel.ParentID].Name + rel, err = c.schema.GetRel(ti.Name, pn) } } + if err != nil { + return err + } + childCols, err := c.initSelect(sel, ti, vars) if err != nil { return err @@ -529,30 +553,27 @@ func (c *compilerContext) renderJoin(sel *qcode.Select, ti *DBTableInfo) error { } func (c *compilerContext) renderJoinByName(table, parent string, id int32) error { - rel, err := c.schema.GetRel(table, parent) - if err != nil { - return err - } + rel, _ := c.schema.GetRel(table, parent) // This join is only required for one-to-many relations since // these make use of join tables that need to be pulled in. - if rel.Type != RelOneToManyThrough { - return err + if rel == nil || rel.Type != RelOneToManyThrough { + return nil } - pt, err := c.schema.GetTable(parent) - if err != nil { - return err - } + // pt, err := c.schema.GetTable(parent) + // if err != nil { + // return err + // } //fmt.Fprintf(w, ` LEFT OUTER JOIN "%s" ON (("%s"."%s") = ("%s_%d"."%s"))`, //rel.Through, rel.Through, rel.ColT, c.parent.Name, c.parent.ID, rel.Left.Col) io.WriteString(c.w, ` LEFT OUTER JOIN "`) - io.WriteString(c.w, rel.Through) + io.WriteString(c.w, rel.Through.Table) io.WriteString(c.w, `" ON ((`) - colWithTable(c.w, rel.Through, rel.ColT) + colWithTable(c.w, rel.Through.Table, rel.Through.ColL) io.WriteString(c.w, `) = (`) - colWithTableID(c.w, pt.Name, id, rel.Left.Col) + colWithTable(c.w, rel.Left.Table, rel.Left.Col) io.WriteString(c.w, `))`) return nil @@ -639,10 +660,33 @@ func (c *compilerContext) renderJoinColumns(sel *qcode.Select, ti *DBTableInfo, continue } - io.WriteString(c.w, `"__sj_`) - int32String(c.w, childSel.ID) - io.WriteString(c.w, `"."json"`) - alias(c.w, childSel.FieldName) + if childSel.Type == qcode.STUnion { + rel, err := c.schema.GetRel(childSel.Name, ti.Name) + if err != nil { + return err + } + io.WriteString(c.w, `(CASE `) + for _, uid := range childSel.Children { + unionSel := &c.s[uid] + + io.WriteString(c.w, `WHEN `) + colWithTableID(c.w, ti.Name, sel.ID, rel.Right.Table) + io.WriteString(c.w, ` = `) + squoted(c.w, unionSel.Name) + io.WriteString(c.w, ` THEN `) + io.WriteString(c.w, `"__sj_`) + int32String(c.w, unionSel.ID) + io.WriteString(c.w, `"."json"`) + } + io.WriteString(c.w, `END)`) + alias(c.w, childSel.FieldName) + + } else { + io.WriteString(c.w, `"__sj_`) + int32String(c.w, childSel.ID) + io.WriteString(c.w, `"."json"`) + alias(c.w, childSel.FieldName) + } if childSel.Paging.Type != qcode.PtOffset { io.WriteString(c.w, `, "__sj_`) @@ -697,7 +741,8 @@ func (c *compilerContext) renderBaseSelect(sel *qcode.Select, ti *DBTableInfo, r } io.WriteString(c.w, ` WHERE (`) - if err := c.renderRelationship(sel, ti); err != nil { + + if err := c.renderRelationship(sel, rel); err != nil { return err } if isFil { @@ -811,22 +856,25 @@ func (c *compilerContext) renderCursorCTE(sel *qcode.Select) error { return nil } -func (c *compilerContext) renderRelationship(sel *qcode.Select, ti *DBTableInfo) error { - parent := c.s[sel.ParentID] - - pti, err := c.schema.GetTable(parent.Name) - if err != nil { - return err - } - - return c.renderRelationshipByName(ti.Name, pti.Name, parent.ID) -} - -func (c *compilerContext) renderRelationshipByName(table, parent string, id int32) error { +func (c *compilerContext) renderRelationshipByName(table, parent string) error { rel, err := c.schema.GetRel(table, parent) if err != nil { return err } + return c.renderRelationship(nil, rel) +} + +func (c *compilerContext) renderRelationship(sel *qcode.Select, rel *DBRel) error { + var pid int32 + + switch { + case sel == nil: + pid = int32(-1) + case sel.Type == qcode.STMember: + pid = sel.UParentID + default: + pid = sel.ParentID + } io.WriteString(c.w, `((`) @@ -838,19 +886,19 @@ func (c *compilerContext) renderRelationshipByName(table, parent string, id int3 switch { case !rel.Left.Array && rel.Right.Array: - colWithTable(c.w, table, rel.Left.Col) + colWithTable(c.w, rel.Left.Table, rel.Left.Col) io.WriteString(c.w, `) = any (`) - colWithTableID(c.w, parent, id, rel.Right.Col) + colWithTableID(c.w, rel.Right.Table, pid, rel.Right.Col) case rel.Left.Array && !rel.Right.Array: - colWithTableID(c.w, parent, id, rel.Right.Col) + colWithTableID(c.w, rel.Right.Table, pid, rel.Right.Col) io.WriteString(c.w, `) = any (`) - colWithTable(c.w, table, rel.Left.Col) + colWithTable(c.w, rel.Left.Table, rel.Left.Col) default: - colWithTable(c.w, table, rel.Left.Col) + colWithTable(c.w, rel.Left.Table, rel.Left.Col) io.WriteString(c.w, `) = (`) - colWithTableID(c.w, parent, id, rel.Right.Col) + colWithTableID(c.w, rel.Right.Table, pid, rel.Right.Col) } case RelOneToManyThrough: @@ -860,25 +908,34 @@ func (c *compilerContext) renderRelationshipByName(table, parent string, id int3 switch { case !rel.Left.Array && rel.Right.Array: - colWithTable(c.w, table, rel.Left.Col) + colWithTable(c.w, rel.Left.Table, rel.Left.Col) io.WriteString(c.w, `) = any (`) - colWithTable(c.w, rel.Through, rel.Right.Col) + colWithTable(c.w, rel.Through.Table, rel.Through.ColR) case rel.Left.Array && !rel.Right.Array: - colWithTable(c.w, rel.Through, rel.Right.Col) + colWithTable(c.w, rel.Through.Table, rel.Through.ColR) io.WriteString(c.w, `) = any (`) - colWithTable(c.w, table, rel.Left.Col) + colWithTable(c.w, rel.Left.Table, rel.Left.Col) default: - colWithTable(c.w, table, rel.Left.Col) + colWithTable(c.w, rel.Through.Table, rel.Through.ColR) io.WriteString(c.w, `) = (`) - colWithTable(c.w, rel.Through, rel.Right.Col) + colWithTable(c.w, rel.Right.Table, rel.Right.Col) } case RelEmbedded: colWithTable(c.w, rel.Left.Table, rel.Left.Col) io.WriteString(c.w, `) = (`) - colWithTableID(c.w, parent, id, rel.Left.Col) + colWithTableID(c.w, rel.Left.Table, pid, rel.Left.Col) + + case RelPolymorphic: + colWithTable(c.w, sel.Name, rel.Right.Col) + io.WriteString(c.w, `) = (`) + colWithTableID(c.w, rel.Left.Table, pid, rel.Left.Col) + io.WriteString(c.w, `) AND (`) + colWithTableID(c.w, rel.Left.Table, pid, rel.Right.Table) + io.WriteString(c.w, `) = (`) + squoted(c.w, sel.Name) } io.WriteString(c.w, `))`) @@ -991,7 +1048,7 @@ func (c *compilerContext) renderNestedWhere(ex *qcode.Exp, ti *DBTableInfo) erro io.WriteString(c.w, ` WHERE `) - if err := c.renderRelationshipByName(cti.Name, ti.Name, -1); err != nil { + if err := c.renderRelationshipByName(cti.Name, ti.Name); err != nil { return err } diff --git a/core/internal/psql/query_test.go b/core/internal/psql/query_test.go index faf234b..d028350 100644 --- a/core/internal/psql/query_test.go +++ b/core/internal/psql/query_test.go @@ -497,7 +497,7 @@ func TestCompileQuery(t *testing.T) { t.Run("withFragment1", withFragment1) t.Run("withFragment2", withFragment2) t.Run("withFragment3", withFragment3) - t.Run("withInlineFragment", withInlineFragment) + //t.Run("withInlineFragment", withInlineFragment) t.Run("jsonColumnAsTable", jsonColumnAsTable) t.Run("withCursor", withCursor) t.Run("nullForAuthRequiredInAnon", nullForAuthRequiredInAnon) diff --git a/core/internal/psql/schema.go b/core/internal/psql/schema.go index e95e1aa..bad36e8 100644 --- a/core/internal/psql/schema.go +++ b/core/internal/psql/schema.go @@ -11,6 +11,7 @@ type DBSchema struct { ver int t map[string]*DBTableInfo rm map[string]map[string]*DBRel + vt map[string]*VirtualTable fm map[string]*DBFunction } @@ -33,15 +34,19 @@ const ( RelOneToOne RelType = iota + 1 RelOneToMany RelOneToManyThrough + RelPolymorphic RelEmbedded RelRemote ) type DBRel struct { Type RelType - Through string - ColT string - Left struct { + Through struct { + Table string + ColL string + ColR string + } + Left struct { col *DBColumn Table string Col string @@ -60,6 +65,7 @@ func NewDBSchema(info *DBInfo, aliases map[string][]string) (*DBSchema, error) { ver: info.Version, t: make(map[string]*DBTableInfo), rm: make(map[string]map[string]*DBRel), + vt: make(map[string]*VirtualTable), fm: make(map[string]*DBFunction, len(info.Functions)), } @@ -70,6 +76,10 @@ func NewDBSchema(info *DBInfo, aliases map[string][]string) (*DBSchema, error) { } } + if err := schema.virtualRels(info.VTables); err != nil { + return nil, err + } + for i, t := range info.Tables { err := schema.firstDegreeRels(t, info.Columns[i]) if err != nil { @@ -102,7 +112,7 @@ func (s *DBSchema) addTable( singular := flect.Singularize(t.Key) plural := flect.Pluralize(t.Key) - s.t[singular] = &DBTableInfo{ + ts := &DBTableInfo{ Name: t.Name, Type: t.Type, IsSingular: true, @@ -112,8 +122,9 @@ func (s *DBSchema) addTable( Singular: singular, Plural: plural, } + s.t[singular] = ts - s.t[plural] = &DBTableInfo{ + tp := &DBTableInfo{ Name: t.Name, Type: t.Type, IsSingular: false, @@ -123,14 +134,15 @@ func (s *DBSchema) addTable( Singular: singular, Plural: plural, } + s.t[plural] = tp if al, ok := aliases[t.Key]; ok { for i := range al { k1 := flect.Singularize(al[i]) - s.t[k1] = s.t[singular] + s.t[k1] = ts k2 := flect.Pluralize(al[i]) - s.t[k2] = s.t[plural] + s.t[k2] = tp } } @@ -154,6 +166,54 @@ func (s *DBSchema) addTable( return nil } +func (s *DBSchema) virtualRels(vts []VirtualTable) error { + for _, vt := range vts { + s.vt[vt.Name] = &vt + + for _, t := range s.t { + idCol, ok := t.ColMap[vt.IDColumn] + if !ok { + continue + } + if _, ok = t.ColMap[vt.TypeColumn]; !ok { + continue + } + + nt := DBTable{ + ID: -1, + Name: vt.Name, + Key: strings.ToLower(vt.Name), + Type: "virtual", + } + + if err := s.addTable(nt, nil, nil); err != nil { + return err + } + + rel := &DBRel{Type: RelPolymorphic} + rel.Left.col = idCol + rel.Left.Table = t.Name + rel.Left.Col = idCol.Name + + rcol := DBColumn{ + Name: vt.FKeyColumn, + Key: strings.ToLower(vt.FKeyColumn), + Type: idCol.Type, + } + + rel.Right.col = &rcol + rel.Right.Table = vt.TypeColumn + rel.Right.Col = rcol.Name + + if err := s.SetRel(vt.Name, t.Name, rel); err != nil { + return err + } + } + } + + return nil +} + func (s *DBSchema) firstDegreeRels(t DBTable, cols []DBColumn) error { ct := t.Key cti, ok := s.t[ct] @@ -164,7 +224,7 @@ func (s *DBSchema) firstDegreeRels(t DBTable, cols []DBColumn) error { for i := range cols { c := cols[i] - if len(c.FKeyTable) == 0 { + if c.FKeyTable == "" { continue } @@ -344,16 +404,17 @@ func (s *DBSchema) updateSchemaOTMT( // One-to-many-through relation between 1nd foreign key table and the // 2nd foreign key table rel1 := &DBRel{Type: RelOneToManyThrough} - rel1.Through = ti.Name - rel1.ColT = col2.Name + rel1.Through.Table = ti.Name + rel1.Through.ColL = col1.Name + rel1.Through.ColR = col2.Name - rel1.Left.col = &col2 - rel1.Left.Table = col2.FKeyTable - rel1.Left.Col = fc2.Name + rel1.Left.col = fc1 + rel1.Left.Table = col1.FKeyTable + rel1.Left.Col = fc1.Name - rel1.Right.col = &col1 - rel1.Right.Table = ti.Name - rel1.Right.Col = col1.Name + rel1.Right.col = fc2 + rel1.Right.Table = t2 + rel1.Right.Col = fc2.Name if err := s.SetRel(t1, t2, rel1); err != nil { return err @@ -362,16 +423,17 @@ func (s *DBSchema) updateSchemaOTMT( // One-to-many-through relation between 2nd foreign key table and the // 1nd foreign key table rel2 := &DBRel{Type: RelOneToManyThrough} - rel2.Through = ti.Name - rel2.ColT = col1.Name + rel2.Through.Table = ti.Name + rel2.Through.ColL = col2.Name + rel2.Through.ColR = col1.Name - rel1.Left.col = fc1 - rel2.Left.Table = col1.FKeyTable - rel2.Left.Col = fc1.Name + rel2.Left.col = fc2 + rel2.Left.Table = col2.FKeyTable + rel2.Left.Col = fc2.Name - rel1.Right.col = &col2 - rel2.Right.Table = ti.Name - rel2.Right.Col = col2.Name + rel2.Right.col = fc1 + rel2.Right.Table = t1 + rel2.Right.Col = fc1.Name if err := s.SetRel(t2, t1, rel2); err != nil { return err diff --git a/core/internal/psql/strings.go b/core/internal/psql/strings.go index 6213a44..8ebf605 100644 --- a/core/internal/psql/strings.go +++ b/core/internal/psql/strings.go @@ -14,14 +14,18 @@ func (rt RelType) String() string { return "remote" case RelEmbedded: return "embedded" + case RelPolymorphic: + return "polymorphic" } return "" } func (re *DBRel) String() string { if re.Type == RelOneToManyThrough { - return fmt.Sprintf("'%s.%s' --(Through: %s)--> '%s.%s'", - re.Left.Table, re.Left.Col, re.Through, re.Right.Table, re.Right.Col) + return fmt.Sprintf("'%s.%s' --(%s.%s, %s.%s)--> '%s.%s'", + re.Left.Table, re.Left.Col, + re.Through.Table, re.Through.ColL, re.Through.Table, re.Through.ColR, + re.Right.Table, re.Right.Col) } return fmt.Sprintf("'%s.%s' --(%s)--> '%s.%s'", re.Left.Table, re.Left.Col, re.Type, re.Right.Table, re.Right.Col) diff --git a/core/internal/psql/tables.go b/core/internal/psql/tables.go index 219587b..ddcdd33 100644 --- a/core/internal/psql/tables.go +++ b/core/internal/psql/tables.go @@ -14,9 +14,17 @@ type DBInfo struct { Tables []DBTable Columns [][]DBColumn Functions []DBFunction + VTables []VirtualTable colMap map[string]map[string]*DBColumn } +type VirtualTable struct { + Name string + IDColumn string + TypeColumn string + FKeyColumn string +} + func GetDBInfo(db *sql.DB, schema string) (*DBInfo, error) { di := &DBInfo{} var version string diff --git a/core/internal/psql/tests.sql b/core/internal/psql/tests.sql index 61b7dd9..47d1dbe 100644 --- a/core/internal/psql/tests.sql +++ b/core/internal/psql/tests.sql @@ -67,9 +67,9 @@ SELECT jsonb_build_object('products', "__sj_0"."json") as "__root" FROM (SELECT === RUN TestCompileQuery/oneToManyArray SELECT jsonb_build_object('tags', "__sj_0"."json", 'product', "__sj_2"."json") as "__root" FROM (SELECT to_jsonb("__sr_2".*) AS "json"FROM (SELECT "products_2"."name" AS "name", "products_2"."price" AS "price", "__sj_3"."json" AS "tags" FROM (SELECT "products"."name", "products"."price", "products"."tags" FROM "products" LIMIT ('1') :: integer) AS "products_2" LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_3"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_3".*) AS "json"FROM (SELECT "tags_3"."id" AS "id", "tags_3"."name" AS "name" FROM (SELECT "tags"."id", "tags"."name" FROM "tags" WHERE ((("tags"."slug") = any ("products_2"."tags"))) LIMIT ('20') :: integer) AS "tags_3") AS "__sr_3") AS "__sj_3") AS "__sj_3" ON ('true')) AS "__sr_2") AS "__sj_2", (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "tags_0"."name" AS "name", "__sj_1"."json" AS "product" FROM (SELECT "tags"."name", "tags"."slug" FROM "tags" LIMIT ('20') :: integer) AS "tags_0" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "products_1"."name" AS "name" FROM (SELECT "products"."name" FROM "products" WHERE ((("tags_0"."slug") = any ("products"."tags"))) LIMIT ('1') :: integer) AS "products_1") AS "__sr_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/manyToMany -SELECT jsonb_build_object('products', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."name" AS "name", "__sj_1"."json" AS "customers" FROM (SELECT "products"."name", "products"."id" FROM "products" WHERE (((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) LIMIT ('20') :: integer) AS "products_0" LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_1"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "customers_1"."email" AS "email", "customers_1"."full_name" AS "full_name" FROM (SELECT "customers"."email", "customers"."full_name" FROM "customers" LEFT OUTER JOIN "purchases" ON (("purchases"."product_id") = ("products_0"."id")) WHERE ((("customers"."id") = ("purchases"."customer_id"))) LIMIT ('20') :: integer) AS "customers_1") AS "__sr_1") AS "__sj_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0") AS "__sj_0" +SELECT jsonb_build_object('products', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."name" AS "name", "__sj_1"."json" AS "customers" FROM (SELECT "products"."name", "products"."id" FROM "products" WHERE (((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) LIMIT ('20') :: integer) AS "products_0" LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_1"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "customers_1"."email" AS "email", "customers_1"."full_name" AS "full_name" FROM (SELECT "customers"."email", "customers"."full_name" FROM "customers" LEFT OUTER JOIN "purchases" ON (("purchases"."customer_id") = ("customers"."id")) WHERE ((("purchases"."product_id") = ("products"."id"))) LIMIT ('20') :: integer) AS "customers_1") AS "__sr_1") AS "__sj_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/manyToManyReverse -SELECT jsonb_build_object('customers', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "customers_0"."email" AS "email", "customers_0"."full_name" AS "full_name", "__sj_1"."json" AS "products" FROM (SELECT "customers"."email", "customers"."full_name", "customers"."id" FROM "customers" LIMIT ('20') :: integer) AS "customers_0" LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_1"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "products_1"."name" AS "name" FROM (SELECT "products"."name" FROM "products" LEFT OUTER JOIN "purchases" ON (("purchases"."customer_id") = ("customers_0"."id")) WHERE ((("products"."id") = ("purchases"."product_id")) AND ((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) LIMIT ('20') :: integer) AS "products_1") AS "__sr_1") AS "__sj_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0") AS "__sj_0" +SELECT jsonb_build_object('customers', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "customers_0"."email" AS "email", "customers_0"."full_name" AS "full_name", "__sj_1"."json" AS "products" FROM (SELECT "customers"."email", "customers"."full_name", "customers"."id" FROM "customers" LIMIT ('20') :: integer) AS "customers_0" LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_1"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "products_1"."name" AS "name" FROM (SELECT "products"."name" FROM "products" LEFT OUTER JOIN "purchases" ON (("purchases"."product_id") = ("products"."id")) WHERE ((("purchases"."customer_id") = ("customers"."id")) AND ((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) LIMIT ('20') :: integer) AS "products_1") AS "__sr_1") AS "__sj_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/aggFunction SELECT jsonb_build_object('products', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."name" AS "name", "products_0"."count_price" AS "count_price" FROM (SELECT "products"."name", count("products"."price") AS "count_price" FROM "products" WHERE (((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) GROUP BY "products"."name" LIMIT ('20') :: integer) AS "products_0") AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/aggFunctionBlockedByCol @@ -85,15 +85,13 @@ SELECT jsonb_build_object('product', "__sj_0"."json") as "__root" FROM (SELECT t === RUN TestCompileQuery/withWhereOnRelations SELECT jsonb_build_object('users', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "users_0"."id" AS "id", "users_0"."email" AS "email" FROM (SELECT "users"."id", "users"."email" FROM "users" WHERE (NOT EXISTS (SELECT 1 FROM products WHERE (("products"."user_id") = ("users"."id")) AND ((("products"."price") > '3' :: numeric(7,2))))) LIMIT ('20') :: integer) AS "users_0") AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/multiRoot -SELECT jsonb_build_object('customer', "__sj_0"."json", 'user', "__sj_1"."json", 'product', "__sj_2"."json") as "__root" FROM (SELECT to_jsonb("__sr_2".*) AS "json"FROM (SELECT "products_2"."id" AS "id", "products_2"."name" AS "name", "__sj_3"."json" AS "customers", "__sj_4"."json" AS "customer" FROM (SELECT "products"."id", "products"."name" FROM "products" WHERE (((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) LIMIT ('1') :: integer) AS "products_2" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_4".*) AS "json"FROM (SELECT "customers_4"."email" AS "email" FROM (SELECT "customers"."email" FROM "customers" LEFT OUTER JOIN "purchases" ON (("purchases"."product_id") = ("products_2"."id")) WHERE ((("customers"."id") = ("purchases"."customer_id"))) LIMIT ('1') :: integer) AS "customers_4") AS "__sr_4") AS "__sj_4" ON ('true') LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_3"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_3".*) AS "json"FROM (SELECT "customers_3"."email" AS "email" FROM (SELECT "customers"."email" FROM "customers" LEFT OUTER JOIN "purchases" ON (("purchases"."product_id") = ("products_2"."id")) WHERE ((("customers"."id") = ("purchases"."customer_id"))) LIMIT ('20') :: integer) AS "customers_3") AS "__sr_3") AS "__sj_3") AS "__sj_3" ON ('true')) AS "__sr_2") AS "__sj_2", (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "users_1"."id" AS "id", "users_1"."email" AS "email" FROM (SELECT "users"."id", "users"."email" FROM "users" LIMIT ('1') :: integer) AS "users_1") AS "__sr_1") AS "__sj_1", (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "customers_0"."id" AS "id" FROM (SELECT "customers"."id" FROM "customers" LIMIT ('1') :: integer) AS "customers_0") AS "__sr_0") AS "__sj_0" +SELECT jsonb_build_object('customer', "__sj_0"."json", 'user', "__sj_1"."json", 'product', "__sj_2"."json") as "__root" FROM (SELECT to_jsonb("__sr_2".*) AS "json"FROM (SELECT "products_2"."id" AS "id", "products_2"."name" AS "name", "__sj_3"."json" AS "customers", "__sj_4"."json" AS "customer" FROM (SELECT "products"."id", "products"."name" FROM "products" WHERE (((("products"."price") > '0' :: numeric(7,2)) AND (("products"."price") < '8' :: numeric(7,2)))) LIMIT ('1') :: integer) AS "products_2" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_4".*) AS "json"FROM (SELECT "customers_4"."email" AS "email" FROM (SELECT "customers"."email" FROM "customers" LEFT OUTER JOIN "purchases" ON (("purchases"."customer_id") = ("customers"."id")) WHERE ((("purchases"."product_id") = ("products"."id"))) LIMIT ('1') :: integer) AS "customers_4") AS "__sr_4") AS "__sj_4" ON ('true') LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_3"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_3".*) AS "json"FROM (SELECT "customers_3"."email" AS "email" FROM (SELECT "customers"."email" FROM "customers" LEFT OUTER JOIN "purchases" ON (("purchases"."customer_id") = ("customers"."id")) WHERE ((("purchases"."product_id") = ("products"."id"))) LIMIT ('20') :: integer) AS "customers_3") AS "__sr_3") AS "__sj_3") AS "__sj_3" ON ('true')) AS "__sr_2") AS "__sj_2", (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "users_1"."id" AS "id", "users_1"."email" AS "email" FROM (SELECT "users"."id", "users"."email" FROM "users" LIMIT ('1') :: integer) AS "users_1") AS "__sr_1") AS "__sj_1", (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "customers_0"."id" AS "id" FROM (SELECT "customers"."id" FROM "customers" LIMIT ('1') :: integer) AS "customers_0") AS "__sr_0") AS "__sj_0" === RUN TestCompileQuery/withFragment1 SELECT jsonb_build_object('users', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "users_0"."first_name" AS "first_name", "users_0"."last_name" AS "last_name", "users_0"."created_at" AS "created_at", "users_0"."id" AS "id", "users_0"."email" AS "email" FROM (SELECT , "users"."created_at", "users"."id", "users"."email" FROM "users" GROUP BY "users"."created_at", "users"."id", "users"."email" LIMIT ('20') :: integer) AS "users_0") AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/withFragment2 SELECT jsonb_build_object('users', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "users_0"."first_name" AS "first_name", "users_0"."last_name" AS "last_name", "users_0"."created_at" AS "created_at", "users_0"."id" AS "id", "users_0"."email" AS "email" FROM (SELECT , "users"."created_at", "users"."id", "users"."email" FROM "users" GROUP BY "users"."created_at", "users"."id", "users"."email" LIMIT ('20') :: integer) AS "users_0") AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/withFragment3 SELECT jsonb_build_object('users', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "users_0"."first_name" AS "first_name", "users_0"."last_name" AS "last_name", "users_0"."created_at" AS "created_at", "users_0"."id" AS "id", "users_0"."email" AS "email" FROM (SELECT , "users"."created_at", "users"."id", "users"."email" FROM "users" GROUP BY "users"."created_at", "users"."id", "users"."email" LIMIT ('20') :: integer) AS "users_0") AS "__sr_0") AS "__sj_0") AS "__sj_0" -=== RUN TestCompileQuery/withInlineFragment -SELECT jsonb_build_object('users', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "users_0"."id" AS "id", "users_0"."email" AS "email", "users_0"."created_at" AS "created_at", "users_0"."first_name" AS "first_name", "users_0"."last_name" AS "last_name" FROM (SELECT "users"."id", "users"."email", "users"."created_at" FROM "users" GROUP BY "users"."id", "users"."email", "users"."created_at" LIMIT ('20') :: integer) AS "users_0") AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/jsonColumnAsTable SELECT jsonb_build_object('products', "__sj_0"."json") as "__root" FROM (SELECT coalesce(jsonb_agg("__sj_0"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."id" AS "id", "products_0"."name" AS "name", "__sj_1"."json" AS "tag_count" FROM (SELECT "products"."id", "products"."name" FROM "products" LIMIT ('20') :: integer) AS "products_0" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "tag_count_1"."count" AS "count", "__sj_2"."json" AS "tags" FROM (SELECT "tag_count"."count", "tag_count"."tag_id" FROM "products", json_to_recordset("products"."tag_count") AS "tag_count"(tag_id bigint, count int) WHERE ((("products"."id") = ("products_0"."id"))) LIMIT ('1') :: integer) AS "tag_count_1" LEFT OUTER JOIN LATERAL (SELECT coalesce(jsonb_agg("__sj_2"."json"), '[]') as "json" FROM (SELECT to_jsonb("__sr_2".*) AS "json"FROM (SELECT "tags_2"."name" AS "name" FROM (SELECT "tags"."name" FROM "tags" WHERE ((("tags"."id") = ("tag_count_1"."tag_id"))) LIMIT ('20') :: integer) AS "tags_2") AS "__sr_2") AS "__sj_2") AS "__sj_2" ON ('true')) AS "__sr_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0") AS "__sj_0" === RUN TestCompileQuery/withCursor @@ -128,7 +126,6 @@ SELECT jsonb_build_object('users', "__sj_0"."json") as "__root" FROM (SELECT coa --- PASS: TestCompileQuery/withFragment1 (0.00s) --- PASS: TestCompileQuery/withFragment2 (0.00s) --- PASS: TestCompileQuery/withFragment3 (0.00s) - --- PASS: TestCompileQuery/withInlineFragment (0.00s) --- PASS: TestCompileQuery/jsonColumnAsTable (0.00s) --- PASS: TestCompileQuery/withCursor (0.00s) --- PASS: TestCompileQuery/nullForAuthRequiredInAnon (0.00s) @@ -149,8 +146,8 @@ WITH "_sg_input" AS (SELECT $1 :: json AS j), "products" AS (UPDATE "products" S === RUN TestCompileUpdate/nestedUpdateOneToManyWithConnect WITH "_sg_input" AS (SELECT $1 :: json AS j), "users" AS (UPDATE "users" SET ("full_name", "email", "created_at", "updated_at") = (SELECT CAST( i.j ->>'full_name' AS character varying), CAST( i.j ->>'email' AS character varying), CAST( i.j ->>'created_at' AS timestamp without time zone), CAST( i.j ->>'updated_at' AS timestamp without time zone) FROM "_sg_input" i) WHERE (("users"."id") = $2 :: bigint) RETURNING "users".*), "products_c" AS ( UPDATE "products" SET "user_id" = "users"."id" FROM "users" WHERE ("products"."id"= ((i.j->'product'->'connect'->>'id'))::bigint) RETURNING "products".*), "products_d" AS ( UPDATE "products" SET "user_id" = NULL FROM "users" WHERE ("products"."id"= ((i.j->'product'->'disconnect'->>'id'))::bigint) RETURNING "products".*), "products" AS (SELECT * FROM "products_c" UNION ALL SELECT * FROM "products_d") SELECT jsonb_build_object('user', "__sj_0"."json") as "__root" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "users_0"."id" AS "id", "users_0"."full_name" AS "full_name", "users_0"."email" AS "email", "__sj_1"."json" AS "product" FROM (SELECT "users"."id", "users"."full_name", "users"."email" FROM "users" LIMIT ('1') :: integer) AS "users_0" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "products_1"."id" AS "id", "products_1"."name" AS "name", "products_1"."price" AS "price" FROM (SELECT "products"."id", "products"."name", "products"."price" FROM "products" WHERE ((("products"."user_id") = ("users_0"."id"))) LIMIT ('1') :: integer) AS "products_1") AS "__sr_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0" === RUN TestCompileUpdate/nestedUpdateOneToOneWithConnect -WITH "_sg_input" AS (SELECT $1 :: json AS j), "_x_users" AS (SELECT "id" FROM "_sg_input" i,"users" WHERE "users"."id"= ((i.j->'user'->'connect'->>'id'))::bigint AND "users"."email"= ((i.j->'user'->'connect'->>'email'))::character varying LIMIT 1), "products" AS (UPDATE "products" SET ("name", "price", "user_id") = (SELECT CAST( i.j ->>'name' AS character varying), CAST( i.j ->>'price' AS numeric(7,2)), "_x_users"."id" FROM "_sg_input" i, "_x_users") WHERE (("products"."id") = $2 :: bigint) RETURNING "products".*) SELECT jsonb_build_object('product', "__sj_0"."json") as "__root" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."id" AS "id", "products_0"."name" AS "name", "__sj_1"."json" AS "user" FROM (SELECT "products"."id", "products"."name", "products"."user_id" FROM "products" LIMIT ('1') :: integer) AS "products_0" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "users_1"."id" AS "id", "users_1"."full_name" AS "full_name", "users_1"."email" AS "email" FROM (SELECT "users"."id", "users"."full_name", "users"."email" FROM "users" WHERE ((("users"."id") = ("products_0"."user_id"))) LIMIT ('1') :: integer) AS "users_1") AS "__sr_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0" WITH "_sg_input" AS (SELECT $1 :: json AS j), "_x_users" AS (SELECT "id" FROM "_sg_input" i,"users" WHERE "users"."email"= ((i.j->'user'->'connect'->>'email'))::character varying AND "users"."id"= ((i.j->'user'->'connect'->>'id'))::bigint LIMIT 1), "products" AS (UPDATE "products" SET ("name", "price", "user_id") = (SELECT CAST( i.j ->>'name' AS character varying), CAST( i.j ->>'price' AS numeric(7,2)), "_x_users"."id" FROM "_sg_input" i, "_x_users") WHERE (("products"."id") = $2 :: bigint) RETURNING "products".*) SELECT jsonb_build_object('product', "__sj_0"."json") as "__root" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."id" AS "id", "products_0"."name" AS "name", "__sj_1"."json" AS "user" FROM (SELECT "products"."id", "products"."name", "products"."user_id" FROM "products" LIMIT ('1') :: integer) AS "products_0" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "users_1"."id" AS "id", "users_1"."full_name" AS "full_name", "users_1"."email" AS "email" FROM (SELECT "users"."id", "users"."full_name", "users"."email" FROM "users" WHERE ((("users"."id") = ("products_0"."user_id"))) LIMIT ('1') :: integer) AS "users_1") AS "__sr_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0" +WITH "_sg_input" AS (SELECT $1 :: json AS j), "_x_users" AS (SELECT "id" FROM "_sg_input" i,"users" WHERE "users"."id"= ((i.j->'user'->'connect'->>'id'))::bigint AND "users"."email"= ((i.j->'user'->'connect'->>'email'))::character varying LIMIT 1), "products" AS (UPDATE "products" SET ("name", "price", "user_id") = (SELECT CAST( i.j ->>'name' AS character varying), CAST( i.j ->>'price' AS numeric(7,2)), "_x_users"."id" FROM "_sg_input" i, "_x_users") WHERE (("products"."id") = $2 :: bigint) RETURNING "products".*) SELECT jsonb_build_object('product', "__sj_0"."json") as "__root" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."id" AS "id", "products_0"."name" AS "name", "__sj_1"."json" AS "user" FROM (SELECT "products"."id", "products"."name", "products"."user_id" FROM "products" LIMIT ('1') :: integer) AS "products_0" LEFT OUTER JOIN LATERAL (SELECT to_jsonb("__sr_1".*) AS "json"FROM (SELECT "users_1"."id" AS "id", "users_1"."full_name" AS "full_name", "users_1"."email" AS "email" FROM (SELECT "users"."id", "users"."full_name", "users"."email" FROM "users" WHERE ((("users"."id") = ("products_0"."user_id"))) LIMIT ('1') :: integer) AS "users_1") AS "__sr_1") AS "__sj_1" ON ('true')) AS "__sr_0") AS "__sj_0" === RUN TestCompileUpdate/nestedUpdateOneToOneWithDisconnect WITH "_sg_input" AS (SELECT $1 :: json AS j), "_x_users" AS (SELECT * FROM (VALUES(NULL::bigint)) AS LOOKUP("id")), "products" AS (UPDATE "products" SET ("name", "price", "user_id") = (SELECT CAST( i.j ->>'name' AS character varying), CAST( i.j ->>'price' AS numeric(7,2)), "_x_users"."id" FROM "_sg_input" i, "_x_users") WHERE (("products"."id") = $2 :: bigint) RETURNING "products".*) SELECT jsonb_build_object('product', "__sj_0"."json") as "__root" FROM (SELECT to_jsonb("__sr_0".*) AS "json"FROM (SELECT "products_0"."id" AS "id", "products_0"."name" AS "name", "products_0"."user_id" AS "user_id" FROM (SELECT "products"."id", "products"."name", "products"."user_id" FROM "products" LIMIT ('1') :: integer) AS "products_0") AS "__sr_0") AS "__sj_0" --- PASS: TestCompileUpdate (0.02s) @@ -163,4 +160,4 @@ WITH "_sg_input" AS (SELECT $1 :: json AS j), "_x_users" AS (SELECT * FROM (VALU --- PASS: TestCompileUpdate/nestedUpdateOneToOneWithConnect (0.00s) --- PASS: TestCompileUpdate/nestedUpdateOneToOneWithDisconnect (0.00s) PASS -ok github.com/dosco/super-graph/core/internal/psql 0.371s +ok github.com/dosco/super-graph/core/internal/psql 0.323s diff --git a/core/internal/qcode/parse.go b/core/internal/qcode/parse.go index 3dfc82a..824b2d1 100644 --- a/core/internal/qcode/parse.go +++ b/core/internal/qcode/parse.go @@ -71,6 +71,7 @@ type Field struct { argsA [5]Arg Children []int32 childrenA [5]int32 + Union bool } type Arg struct { @@ -155,7 +156,7 @@ func Parse(gql []byte) (*Operation, error) { if p.peek(itemFragment) { p.ignore() - if f, err := p.parseFragment(false); err != nil { + if f, err := p.parseFragment(); err != nil { fragPool.Put(f) return nil, err } @@ -181,7 +182,7 @@ func Parse(gql []byte) (*Operation, error) { return op, nil } -func (p *Parser) parseFragment(inline bool) (*Fragment, error) { +func (p *Parser) parseFragment() (*Fragment, error) { var err error frag := fragPool.Get().(*Fragment) @@ -190,7 +191,7 @@ func (p *Parser) parseFragment(inline bool) (*Fragment, error) { if p.peek(itemName) { frag.Name = p.val(p.next()) - } else if !inline { + } else { return frag, errors.New("fragment: missing name") } @@ -217,18 +218,16 @@ func (p *Parser) parseFragment(inline bool) (*Fragment, error) { return frag, fmt.Errorf("fragment: %v", err) } - if !inline { - if p.frags == nil { - p.frags = make(map[uint64]*Fragment) - } - - _, _ = p.h.WriteString(frag.Name) - k := p.h.Sum64() - p.h.Reset() - - p.frags[k] = frag + if p.frags == nil { + p.frags = make(map[uint64]*Fragment) } + _, _ = p.h.WriteString(frag.Name) + k := p.h.Sum64() + p.h.Reset() + + p.frags[k] = frag + return frag, nil } @@ -405,18 +404,27 @@ func (p *Parser) parseNormalFields(st *Stack, fields []Field) ([]Field, error) { } func (p *Parser) parseFragmentFields(st *Stack, fields []Field) ([]Field, error) { - var fr *Fragment var err error + pid := st.Peek() if p.peek(itemOn) { - if fr, err = p.parseFragment(true); err != nil { + p.ignore() + fields[pid].Union = true + + if fields, err = p.parseNormalFields(st, fields); err != nil { return nil, err } - defer fragPool.Put(fr) + + // If parent is a union selector than copy over args from the parent + // to the first child which is the root selector for each union type. + for i := pid + 1; i < int32(len(fields)); i++ { + f := &fields[i] + if f.ParentID == pid { + f.Args = fields[pid].Args + } + } } else { - var ok bool - if !p.peek(itemName) { return nil, fmt.Errorf("expecting a fragment name, got: %s", p.next()) } @@ -426,41 +434,47 @@ func (p *Parser) parseFragmentFields(st *Stack, fields []Field) ([]Field, error) id := p.h.Sum64() p.h.Reset() - if fr, ok = p.frags[id]; !ok { + fr, ok := p.frags[id] + if !ok { return nil, fmt.Errorf("no fragment named '%s' defined", name) } - } + ff := fr.Fields - n := int32(len(fields)) - fields = append(fields, fr.Fields...) + parent := &fields[pid] - for i := 0; i < len(fr.Fields); i++ { - k := (n + int32(i)) - f := &fields[k] - f.ID = int32(k) + n := int32(len(fields)) + fields = append(fields, ff...) - // If this is the top-level point the parent to the parent of the - // previous field. - if f.ParentID == -1 { - pid := st.Peek() - f.ParentID = pid - if f.ParentID != -1 { - fields[pid].Children = append(fields[f.ParentID].Children, f.ID) + for i := 0; i < len(ff); i++ { + k := (n + int32(i)) + f := &fields[k] + f.ID = int32(k) + + // If this is the top-level point the parent to the parent of the + // previous field. + if f.ParentID == -1 { + f.ParentID = pid + + if f.ParentID != -1 { + parent.Children = append(parent.Children, f.ID) + } + // Update all the other parents id's by our new place in this new array + } else { + f.ParentID += n } - // Update all the other parents id's by our new place in this new array - } else { - f.ParentID += n - } - f.Children = make([]int32, len(f.Children)) - copy(f.Children, fr.Fields[i].Children) + // Copy over children since fields append is not a deep copy + f.Children = make([]int32, len(f.Children)) + copy(f.Children, ff[i].Children) - f.Args = make([]Arg, len(f.Args)) - copy(f.Args, fr.Fields[i].Args) + // Copy over args since args append is not a deep copy + f.Args = make([]Arg, len(f.Args)) + copy(f.Args, ff[i].Args) - // Update all the children which is needed. - for j := range f.Children { - f.Children[j] += n + // Update all the children which is needed. + for j := range f.Children { + f.Children[j] += n + } } } diff --git a/core/internal/qcode/qcode.go b/core/internal/qcode/qcode.go index bcfe9ae..674fe21 100644 --- a/core/internal/qcode/qcode.go +++ b/core/internal/qcode/qcode.go @@ -12,6 +12,7 @@ import ( ) type QType int +type SType int type Action int const ( @@ -19,7 +20,8 @@ const ( ) const ( - QTQuery QType = iota + 1 + QTUnknown QType = iota + QTQuery QTMutation QTInsert QTUpdate @@ -27,6 +29,12 @@ const ( QTUpsert ) +const ( + STNone SType = iota + STUnion + STMember +) + type QCode struct { Type QType ActionVar string @@ -38,6 +46,8 @@ type QCode struct { type Select struct { ID int32 ParentID int32 + UParentID int32 + Type SType Args map[string]*Node Name string FieldName string @@ -372,6 +382,10 @@ func (com *Compiler) compileQuery(qc *QCode, op *Operation, role string) error { }) s := &selects[(len(selects) - 1)] + if field.Union { + s.Type = STUnion + } + if len(field.Alias) != 0 { s.FieldName = field.Alias } else { @@ -383,6 +397,11 @@ func (com *Compiler) compileQuery(qc *QCode, op *Operation, role string) error { } else { p := &selects[s.ParentID] p.Children = append(p.Children, s.ID) + + if p.Type == STUnion { + s.Type = STMember + s.UParentID = p.ParentID + } } if skipRender { diff --git a/core/internal/qcode/utils.go b/core/internal/qcode/utils.go index e5a1881..04f86f0 100644 --- a/core/internal/qcode/utils.go +++ b/core/internal/qcode/utils.go @@ -29,6 +29,8 @@ func al(b byte) bool { func (qt QType) String() string { switch qt { + case QTUnknown: + return "unknown" case QTQuery: return "query" case QTMutation: diff --git a/internal/serv/cmd_new.go b/internal/serv/cmd_new.go index 05e7bb7..6d20dfd 100644 --- a/internal/serv/cmd_new.go +++ b/internal/serv/cmd_new.go @@ -88,6 +88,10 @@ func cmdNew(cmd *cobra.Command, args []string) { } }) + ifNotExists(path.Join(appConfigPath, "allow.list"), func(p string) error { + return ioutil.WriteFile(p, []byte{}, 0644) + }) + // Create app migrations folder and add relevant files appMigrationsPath := path.Join(appConfigPath, "migrations") diff --git a/internal/serv/rice-box.go b/internal/serv/rice-box.go index dbbdb66..fd06172 100644 --- a/internal/serv/rice-box.go +++ b/internal/serv/rice-box.go @@ -12,43 +12,43 @@ func init() { // define files file2 := &embedded.EmbeddedFile{ Filename: "0_init.sql", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1580832903, 0), Content: string("-- Write your migrate up statements here\n\nCREATE TABLE public.users (\n id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,\n full_name text,\n email text UNIQUE NOT NULL CHECK (length(email) < 255),\n created_at timestamptz NOT NULL NOT NULL DEFAULT NOW(),\n updated_at timestamptz NOT NULL NOT NULL DEFAULT NOW()\n);\n\n---- create above / drop below ----\n\n-- Write your down migrate statements here. If this migration is irreversible\n-- then delete the separator line above.\n\nDROP TABLE public.users\n\n"), } file3 := &embedded.EmbeddedFile{ Filename: "Dockerfile", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1579668006, 0), Content: string("FROM dosco/super-graph:latest\nWORKDIR /\n\nCOPY config/* /config/"), } file4 := &embedded.EmbeddedFile{ Filename: "cloudbuild.yaml", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1590522003, 0), Content: string("steps:\n # Build image with tag 'latest'\n - name: \"gcr.io/cloud-builders/docker\"\n args:\n [\n \"build\",\n \"--tag\",\n \"gcr.io/$PROJECT_ID/{{- .AppNameSlug -}}:latest\",\n \"--build-arg\",\n \"GO_ENV=production\",\n \".\",\n ]\n\n # Push new image to Google Container Registry\n - name: \"gcr.io/cloud-builders/docker\"\n args: [\"push\", \"gcr.io/$PROJECT_ID/{{- .AppNameSlug -}}:latest\"]\n\n # Deploy image to Cloud Run\n - name: \"gcr.io/cloud-builders/gcloud\"\n args:\n [\n \"run\",\n \"deploy\",\n \"data\",\n \"--image\",\n \"gcr.io/$PROJECT_ID/{{- .AppNameSlug -}}:latest\",\n \"--add-cloudsql-instances\",\n \"$PROJECT_ID:$REGION:{{- .AppNameSlug -}}_production\",\n \"--region\",\n \"$REGION\",\n \"--platform\",\n \"managed\",\n \"--update-env-vars\",\n \"GO_ENV=production,SG_DATABASE_HOST=/cloudsql/$PROJECT_ID:$REGION:{{- .AppNameSlug -}}_production,SECRETS_FILE=prod.secrets.yml\",\n \"--port\",\n \"8080\",\n \"--service-account\",\n \"$SERVICE_ACCOUNT\",\n \"--allow-unauthenticated\",\n \"--verbosity\",\n \"debug\",\n ]\n"), } file5 := &embedded.EmbeddedFile{ Filename: "dev.yml", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1592204345, 0), - Content: string("app_name: \"{{- .AppName }} Development\"\nhost_port: 0.0.0.0:8080\nweb_ui: true\n\n# debug, error, warn, info\nlog_level: \"info\"\n\n# enable or disable http compression (uses gzip)\nhttp_compress: true\n\n# When production mode is 'true' only queries \n# from the allow list are permitted.\n# When it's 'false' all queries are saved to the\n# the allow list in ./config/allow.list\nproduction: false\n\n# Throw a 401 on auth failure for queries that need auth\nauth_fail_block: false\n\n# Latency tracing for database queries and remote joins\n# the resulting latency information is returned with the\n# response\nenable_tracing: true\n\n# Watch the config folder and reload Super Graph\n# with the new configs when a change is detected\nreload_on_config_change: true\n\n# File that points to the database seeding script\n# seed_file: seed.js\n\n# Path pointing to where the migrations can be found\n# this must be a relative path under the config path\nmigrations_path: ./migrations\n\n# Secret key for general encryption operations like \n# encrypting the cursor data\nsecret_key: supercalifajalistics\n\n# CORS: A list of origins a cross-domain request can be executed from. \n# If the special * value is present in the list, all origins will be allowed. \n# An origin may contain a wildcard (*) to replace 0 or more \n# characters (i.e.: http://*.domain.com).\ncors_allowed_origins: [\"*\"]\n\n# Debug Cross Origin Resource Sharing requests\ncors_debug: false\n\n# Default API path prefix is /api you can change it if you like\n# api_path: \"/data\"\n\n# Cache-Control header can help cache queries if your CDN supports cache-control \n# on POST requests (does not work with not mutations) \n# cache_control: \"public, max-age=300, s-maxage=600\"\n\n# Postgres related environment Variables\n# SG_DATABASE_HOST\n# SG_DATABASE_PORT\n# SG_DATABASE_USER\n# SG_DATABASE_PASSWORD\n\n# Auth related environment Variables\n# SG_AUTH_RAILS_COOKIE_SECRET_KEY_BASE\n# SG_AUTH_RAILS_REDIS_URL\n# SG_AUTH_RAILS_REDIS_PASSWORD\n# SG_AUTH_JWT_PUBLIC_KEY_FILE\n\n# inflections:\n# person: people\n# sheep: sheep\n\n# open opencensus tracing and metrics\n# telemetry:\n# debug: true\n# metrics:\n# exporter: \"prometheus\"\n# tracing:\n# exporter: \"zipkin\"\n# endpoint: \"http://zipkin:9411/api/v2/spans\"\n# sample: 0.6\n\nauth:\n # Can be 'rails', 'jwt' or 'header'\n type: rails\n cookie: _{{- .AppNameSlug -}}_session\n\n # Comment this out if you want to disable setting\n # the user_id via a header for testing. \n # Disable in production\n creds_in_header: true\n\n rails:\n # Rails version this is used for reading the\n # various cookies formats.\n version: 5.2\n\n # Found in 'Rails.application.config.secret_key_base'\n secret_key_base: 0a248500a64c01184edb4d7ad3a805488f8097ac761b76aaa6c17c01dcb7af03a2f18ba61b2868134b9c7b79a122bc0dadff4367414a2d173297bfea92be5566\n\n # Remote cookie store. (memcache or redis)\n # url: redis://redis:6379\n # password: \"\"\n # max_idle: 80\n # max_active: 12000\n\n # In most cases you don't need these\n # salt: \"encrypted cookie\"\n # sign_salt: \"signed encrypted cookie\"\n # auth_salt: \"authenticated encrypted cookie\"\n\n # jwt:\n # provider: auth0\n # secret: abc335bfcfdb04e50db5bb0a4d67ab9\n # public_key_file: /secrets/public_key.pem\n # public_key_type: ecdsa #rsa\n\n # header:\n # name: dnt\n # exists: true\n # value: localhost:8080\n\n# You can add additional named auths to use with actions\n# In this example actions using this auth can only be\n# called from the Google Appengine Cron service that\n# sets a special header to all it's requests\nauths:\n - name: from_taskqueue\n type: header\n header:\n name: X-Appengine-Cron\n exists: true\n\ndatabase:\n type: postgres\n host: db\n port: 5432\n dbname: {{- .AppNameSlug -}}_development\n user: postgres\n password: postgres\n\n #schema: \"public\"\n #pool_size: 10\n #max_retries: 0\n #log_level: \"debug\"\n\n # Set session variable \"user.id\" to the user id\n # Enable this if you need the user id in triggers, etc\n set_user_id: false\n\n # database ping timeout is used for db health checking\n ping_timeout: 1m\n\n # Set up an secure tls encrypted db connection\n enable_tls: false\n\n # Required for tls. For example with Google Cloud SQL it's\n # :\"\n # server_name: blah\n\n # Required for tls. Can be a file path or the contents of the pem file\n # server_cert: ./server-ca.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_cert: ./client-cert.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_key: ./client-key.pem\n\n# Define additional variables here to be used with filters\nvariables:\n #admin_account_id: \"5\"\n admin_account_id: \"sql:select id from users where admin = true limit 1\"\n\n\n# Field and table names that you wish to block\nblocklist:\n - ar_internal_metadata\n - schema_migrations\n - secret\n - password\n - encrypted\n - token\n\n# Create custom actions with their own api endpoints\n# For example the below action will be available at /api/v1/actions/refresh_leaderboard_users\n# A request to this url will execute the configured SQL query\n# which in this case refreshes a materialized view in the database.\n# The auth_name is from one of the configured auths\nactions:\n - name: refresh_leaderboard_users\n sql: REFRESH MATERIALIZED VIEW CONCURRENTLY \"leaderboard_users\"\n auth_name: from_taskqueue\n\ntables:\n - name: customers\n remotes:\n - name: payments\n id: stripe_id\n url: http://rails_app:3000/stripe/$id\n path: data\n # debug: true\n pass_headers: \n - cookie\n set_headers:\n - name: Host\n value: 0.0.0.0\n # - name: Authorization\n # value: Bearer \n\n - # You can create new fields that have a\n # real db table backing them\n name: me\n table: users\n\n\n#roles_query: \"SELECT\u00a0* FROM users WHERE id = $user_id\"\n\nroles:\n - name: anon\n tables:\n - name: users\n query:\n limit: 10\n\n - name: user\n tables:\n - name: users\n query:\n filters: [\"{ id: { _eq: $user_id } }\"]\n\n - name: products\n query:\n limit: 50\n filters: [\"{ user_id: { eq: $user_id } }\"]\n disable_functions: false\n\n insert:\n filters: [\"{ user_id: { eq: $user_id } }\"]\n presets:\n - user_id: \"$user_id\"\n - created_at: \"now\"\n \n update:\n filters: [\"{ user_id: { eq: $user_id } }\"]\n presets:\n - updated_at: \"now\"\n\n delete:\n block: true\n\n # - name: admin\n # match: id = 1000\n # tables:\n # - name: users\n # filters: []\n"), + Content: string("app_name: \"{{- .AppName }} Development\"\nhost_port: 0.0.0.0:8080\nweb_ui: true\n\n# debug, error, warn, info\nlog_level: \"info\"\n\n# enable or disable http compression (uses gzip)\nhttp_compress: true\n\n# When production mode is 'true' only queries \n# from the allow list are permitted.\n# When it's 'false' all queries are saved to the\n# the allow list in ./config/allow.list\nproduction: false\n\n# Throw a 401 on auth failure for queries that need auth\nauth_fail_block: false\n\n# Latency tracing for database queries and remote joins\n# the resulting latency information is returned with the\n# response\nenable_tracing: true\n\n# Watch the config folder and reload Super Graph\n# with the new configs when a change is detected\nreload_on_config_change: true\n\n# File that points to the database seeding script\n# seed_file: seed.js\n\n# Path pointing to where the migrations can be found\n# this must be a relative path under the config path\nmigrations_path: ./migrations\n\n# Secret key for general encryption operations like \n# encrypting the cursor data\nsecret_key: supercalifajalistics\n\n# CORS: A list of origins a cross-domain request can be executed from. \n# If the special * value is present in the list, all origins will be allowed. \n# An origin may contain a wildcard (*) to replace 0 or more \n# characters (i.e.: http://*.domain.com).\ncors_allowed_origins: [\"*\"]\n\n# Debug Cross Origin Resource Sharing requests\ncors_debug: false\n\n# Default API path prefix is /api you can change it if you like\n# api_path: \"/data\"\n\n# Cache-Control header can help cache queries if your CDN supports cache-control \n# on POST requests (does not work with not mutations) \n# cache_control: \"public, max-age=300, s-maxage=600\"\n\n# Postgres related environment Variables\n# SG_DATABASE_HOST\n# SG_DATABASE_PORT\n# SG_DATABASE_USER\n# SG_DATABASE_PASSWORD\n\n# Auth related environment Variables\n# SG_AUTH_RAILS_COOKIE_SECRET_KEY_BASE\n# SG_AUTH_RAILS_REDIS_URL\n# SG_AUTH_RAILS_REDIS_PASSWORD\n# SG_AUTH_JWT_PUBLIC_KEY_FILE\n\n# inflections:\n# person: people\n# sheep: sheep\n\n# open opencensus tracing and metrics\n# telemetry:\n# debug: true\n# metrics:\n# exporter: \"prometheus\"\n# tracing:\n# exporter: \"zipkin\"\n# endpoint: \"http://zipkin:9411/api/v2/spans\"\n# sample: 0.6\n\nauth:\n # Can be 'rails', 'jwt' or 'header'\n type: rails\n cookie: _{{- .AppNameSlug -}}_session\n\n # Comment this out if you want to disable setting\n # the user_id via a header for testing. \n # Disable in production\n creds_in_header: true\n\n rails:\n # Rails version this is used for reading the\n # various cookies formats.\n version: 5.2\n\n # Found in 'Rails.application.config.secret_key_base'\n secret_key_base: 0a248500a64c01184edb4d7ad3a805488f8097ac761b76aaa6c17c01dcb7af03a2f18ba61b2868134b9c7b79a122bc0dadff4367414a2d173297bfea92be5566\n\n # Remote cookie store. (memcache or redis)\n # url: redis://redis:6379\n # password: \"\"\n # max_idle: 80\n # max_active: 12000\n\n # In most cases you don't need these\n # salt: \"encrypted cookie\"\n # sign_salt: \"signed encrypted cookie\"\n # auth_salt: \"authenticated encrypted cookie\"\n\n # jwt:\n # provider: auth0\n # secret: abc335bfcfdb04e50db5bb0a4d67ab9\n # public_key_file: /secrets/public_key.pem\n # public_key_type: ecdsa #rsa\n\n # header:\n # name: dnt\n # exists: true\n # value: localhost:8080\n\n# You can add additional named auths to use with actions\n# In this example actions using this auth can only be\n# called from the Google Appengine Cron service that\n# sets a special header to all it's requests\nauths:\n - name: from_taskqueue\n type: header\n header:\n name: X-Appengine-Cron\n exists: true\n\ndatabase:\n type: postgres\n host: db\n port: 5432\n dbname: {{ .AppNameSlug -}}_development\n user: postgres\n password: postgres\n\n #schema: \"public\"\n #pool_size: 10\n #max_retries: 0\n #log_level: \"debug\"\n\n # Set session variable \"user.id\" to the user id\n # Enable this if you need the user id in triggers, etc\n set_user_id: false\n\n # database ping timeout is used for db health checking\n ping_timeout: 1m\n\n # Set up an secure tls encrypted db connection\n enable_tls: false\n\n # Required for tls. For example with Google Cloud SQL it's\n # :\"\n # server_name: blah\n\n # Required for tls. Can be a file path or the contents of the pem file\n # server_cert: ./server-ca.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_cert: ./client-cert.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_key: ./client-key.pem\n\n# Define additional variables here to be used with filters\nvariables:\n #admin_account_id: \"5\"\n admin_account_id: \"sql:select id from users where admin = true limit 1\"\n\n\n# Field and table names that you wish to block\nblocklist:\n - ar_internal_metadata\n - schema_migrations\n - secret\n - password\n - encrypted\n - token\n\n# Create custom actions with their own api endpoints\n# For example the below action will be available at /api/v1/actions/refresh_leaderboard_users\n# A request to this url will execute the configured SQL query\n# which in this case refreshes a materialized view in the database.\n# The auth_name is from one of the configured auths\nactions:\n - name: refresh_leaderboard_users\n sql: REFRESH MATERIALIZED VIEW CONCURRENTLY \"leaderboard_users\"\n auth_name: from_taskqueue\n\ntables:\n - name: customers\n remotes:\n - name: payments\n id: stripe_id\n url: http://rails_app:3000/stripe/$id\n path: data\n # debug: true\n pass_headers: \n - cookie\n set_headers:\n - name: Host\n value: 0.0.0.0\n # - name: Authorization\n # value: Bearer \n\n - # You can create new fields that have a\n # real db table backing them\n name: me\n table: users\n\n\n#roles_query: \"SELECT\u00a0* FROM users WHERE id = $user_id\"\n\nroles:\n - name: anon\n tables:\n - name: users\n query:\n limit: 10\n\n - name: user\n tables:\n - name: users\n query:\n filters: [\"{ id: { _eq: $user_id } }\"]\n\n - name: products\n query:\n limit: 50\n filters: [\"{ user_id: { eq: $user_id } }\"]\n disable_functions: false\n\n insert:\n filters: [\"{ user_id: { eq: $user_id } }\"]\n presets:\n - user_id: \"$user_id\"\n - created_at: \"now\"\n \n update:\n filters: [\"{ user_id: { eq: $user_id } }\"]\n presets:\n - updated_at: \"now\"\n\n delete:\n block: true\n\n # - name: admin\n # match: id = 1000\n # tables:\n # - name: users\n # filters: []\n"), } file6 := &embedded.EmbeddedFile{ Filename: "docker-compose.yml", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1590536218, 0), Content: string("version: '3.4'\nservices:\n # Postgres DB\n db:\n image: postgres:12\n environment:\n POSTGRES_USER: postgres\n POSTGRES_PASSWORD: postgres\n ports:\n - \"5432:5432\"\n\n {{ .AppNameSlug -}}_api:\n image: dosco/super-graph:latest\n environment:\n GO_ENV: \"development\"\n volumes:\n - ./config:/config\n ports:\n - \"8080:8080\"\n depends_on:\n - db"), } file7 := &embedded.EmbeddedFile{ Filename: "prod.yml", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1592204374, 0), - Content: string("# Inherit config from this other config file\n# so I only need to overwrite some values\ninherits: dev\n\napp_name: \"{{- .AppName }} Production\"\nhost_port: 0.0.0.0:8080\nweb_ui: false\n\n# debug, error, warn, info\nlog_level: \"warn\"\n\n# enable or disable http compression (uses gzip)\nhttp_compress: true\n\n# When production mode is 'true' only queries \n# from the allow list are permitted.\n# When it's 'false' all queries are saved to the\n# the allow list in ./config/allow.list\nproduction: true\n\n# Throw a 401 on auth failure for queries that need auth\nauth_fail_block: true\n\n# Latency tracing for database queries and remote joins\n# the resulting latency information is returned with the\n# response\nenable_tracing: false\n\n# Watch the config folder and reload Super Graph\n# with the new configs when a change is detected\nreload_on_config_change: false\n\n# File that points to the database seeding script\n# seed_file: seed.js\n\n# Path pointing to where the migrations can be found\n# migrations_path: ./migrations\n\n# Secret key for general encryption operations like \n# encrypting the cursor data\n# secret_key: supercalifajalistics\n\n# CORS: A list of origins a cross-domain request can be executed from. \n# If the special * value is present in the list, all origins will be allowed. \n# An origin may contain a wildcard (*) to replace 0 or more \n# characters (i.e.: http://*.domain.com).\n# cors_allowed_origins: [\"*\"]\n\n# Debug Cross Origin Resource Sharing requests\n# cors_debug: false\n\n# Default API path prefix is /api you can change it if you like\n# api_path: \"/data\"\n\n# Cache-Control header can help cache queries if your CDN supports cache-control \n# on POST requests (does not work with not mutations) \n# cache_control: \"public, max-age=300, s-maxage=600\"\n\n# Postgres related environment Variables\n# SG_DATABASE_HOST\n# SG_DATABASE_PORT\n# SG_DATABASE_USER\n# SG_DATABASE_PASSWORD\n\n# Auth related environment Variables\n# SG_AUTH_RAILS_COOKIE_SECRET_KEY_BASE\n# SG_AUTH_RAILS_REDIS_URL\n# SG_AUTH_RAILS_REDIS_PASSWORD\n# SG_AUTH_JWT_PUBLIC_KEY_FILE\n\n# open opencensus tracing and metrics\n# telemetry:\n# debug: false\n# metrics:\n# exporter: \"prometheus\"\n# tracing:\n# exporter: \"zipkin\"\n# endpoint: \"http://zipkin:9411/api/v2/spans\"\n# sample: 0.6\n\ndatabase:\n type: postgres\n host: db\n port: 5432\n dbname: {{- .AppNameSlug -}}_production\n user: postgres\n password: postgres\n #pool_size: 10\n #max_retries: 0\n #log_level: \"debug\" \n\n # Set session variable \"user.id\" to the user id\n # Enable this if you need the user id in triggers, etc\n set_user_id: false\n\n # database ping timeout is used for db health checking\n ping_timeout: 5m\n\n # Set up an secure tls encrypted db connection\n enable_tls: false\n\n # Required for tls. For example with Google Cloud SQL it's\n # :\"\n # server_name: blah\n\n # Required for tls. Can be a file path or the contents of the pem file\n # server_cert: ./server-ca.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_cert: ./client-cert.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_key: ./client-key.pem"), + Content: string("# Inherit config from this other config file\n# so I only need to overwrite some values\ninherits: dev\n\napp_name: \"{{- .AppName }} Production\"\nhost_port: 0.0.0.0:8080\nweb_ui: false\n\n# debug, error, warn, info\nlog_level: \"warn\"\n\n# enable or disable http compression (uses gzip)\nhttp_compress: true\n\n# When production mode is 'true' only queries \n# from the allow list are permitted.\n# When it's 'false' all queries are saved to the\n# the allow list in ./config/allow.list\nproduction: true\n\n# Throw a 401 on auth failure for queries that need auth\nauth_fail_block: true\n\n# Latency tracing for database queries and remote joins\n# the resulting latency information is returned with the\n# response\nenable_tracing: false\n\n# Watch the config folder and reload Super Graph\n# with the new configs when a change is detected\nreload_on_config_change: false\n\n# File that points to the database seeding script\n# seed_file: seed.js\n\n# Path pointing to where the migrations can be found\n# migrations_path: ./migrations\n\n# Secret key for general encryption operations like \n# encrypting the cursor data\n# secret_key: supercalifajalistics\n\n# CORS: A list of origins a cross-domain request can be executed from. \n# If the special * value is present in the list, all origins will be allowed. \n# An origin may contain a wildcard (*) to replace 0 or more \n# characters (i.e.: http://*.domain.com).\n# cors_allowed_origins: [\"*\"]\n\n# Debug Cross Origin Resource Sharing requests\n# cors_debug: false\n\n# Default API path prefix is /api you can change it if you like\n# api_path: \"/data\"\n\n# Cache-Control header can help cache queries if your CDN supports cache-control \n# on POST requests (does not work with not mutations) \n# cache_control: \"public, max-age=300, s-maxage=600\"\n\n# Postgres related environment Variables\n# SG_DATABASE_HOST\n# SG_DATABASE_PORT\n# SG_DATABASE_USER\n# SG_DATABASE_PASSWORD\n\n# Auth related environment Variables\n# SG_AUTH_RAILS_COOKIE_SECRET_KEY_BASE\n# SG_AUTH_RAILS_REDIS_URL\n# SG_AUTH_RAILS_REDIS_PASSWORD\n# SG_AUTH_JWT_PUBLIC_KEY_FILE\n\n# open opencensus tracing and metrics\n# telemetry:\n# debug: false\n# metrics:\n# exporter: \"prometheus\"\n# tracing:\n# exporter: \"zipkin\"\n# endpoint: \"http://zipkin:9411/api/v2/spans\"\n# sample: 0.6\n\ndatabase:\n type: postgres\n host: db\n port: 5432\n dbname: {{ .AppNameSlug -}}_production\n user: postgres\n password: postgres\n #pool_size: 10\n #max_retries: 0\n #log_level: \"debug\" \n\n # Set session variable \"user.id\" to the user id\n # Enable this if you need the user id in triggers, etc\n set_user_id: false\n\n # database ping timeout is used for db health checking\n ping_timeout: 5m\n\n # Set up an secure tls encrypted db connection\n enable_tls: false\n\n # Required for tls. For example with Google Cloud SQL it's\n # :\"\n # server_name: blah\n\n # Required for tls. Can be a file path or the contents of the pem file\n # server_cert: ./server-ca.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_cert: ./client-cert.pem\n\n # Required for tls. Can be a file path or the contents of the pem file\n # client_key: ./client-key.pem"), } file8 := &embedded.EmbeddedFile{ Filename: "seed.js", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1579668006, 0), Content: string("// Example script to seed database\n\nvar users = [];\n\nfor (i = 0; i < 10; i++) {\n\tvar data = {\n\t\tfull_name: fake.name(),\n\t\temail: fake.email()\n\t}\n\n\tvar res = graphql(\" \\\n\tmutation { \\\n\t\tuser(insert: $data) { \\\n\t\t\tid \\\n\t\t} \\\n\t}\", { data: data })\n\n\tusers.push(res.user)\n}"), } @@ -56,7 +56,7 @@ func init() { // define dirs dir1 := &embedded.EmbeddedDir{ Filename: "", - DirModTime: time.Unix(1590725682, 0), + DirModTime: time.Unix(1589748001, 0), ChildFiles: []*embedded.EmbeddedFile{ file2, // "0_init.sql" file3, // "Dockerfile" @@ -75,7 +75,7 @@ func init() { // register embeddedBox embedded.RegisterEmbeddedBox(`./tmpl`, &embedded.EmbeddedBox{ Name: `./tmpl`, - Time: time.Unix(1590725682, 0), + Time: time.Unix(1589748001, 0), Dirs: map[string]*embedded.EmbeddedDir{ "": dir1, }, @@ -96,97 +96,97 @@ func init() { // define files filea := &embedded.EmbeddedFile{ Filename: "asset-manifest.json", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("{\n \"files\": {\n \"main.css\": \"/static/css/main.d4fa22d6.chunk.css\",\n \"main.js\": \"/static/js/main.55a8068a.chunk.js\",\n \"main.js.map\": \"/static/js/main.55a8068a.chunk.js.map\",\n \"runtime-main.js\": \"/static/js/runtime-main.3ce8a40d.js\",\n \"runtime-main.js.map\": \"/static/js/runtime-main.3ce8a40d.js.map\",\n \"static/js/2.660c567d.chunk.js\": \"/static/js/2.660c567d.chunk.js\",\n \"static/js/2.660c567d.chunk.js.map\": \"/static/js/2.660c567d.chunk.js.map\",\n \"index.html\": \"/index.html\",\n \"precache-manifest.cf56ad15e4cdbe76d4cebd621a25f8a9.js\": \"/precache-manifest.cf56ad15e4cdbe76d4cebd621a25f8a9.js\",\n \"service-worker.js\": \"/service-worker.js\",\n \"static/css/main.d4fa22d6.chunk.css.map\": \"/static/css/main.d4fa22d6.chunk.css.map\",\n \"static/js/2.660c567d.chunk.js.LICENSE.txt\": \"/static/js/2.660c567d.chunk.js.LICENSE.txt\",\n \"static/media/logo.png\": \"/static/media/logo.57ee3b60.png\"\n },\n \"entrypoints\": [\n \"static/js/runtime-main.3ce8a40d.js\",\n \"static/js/2.660c567d.chunk.js\",\n \"static/css/main.d4fa22d6.chunk.css\",\n \"static/js/main.55a8068a.chunk.js\"\n ]\n}"), } fileb := &embedded.EmbeddedFile{ Filename: "favicon.ico", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503329, 0), Content: string("\x00\x00\x01\x00\x03\x0000\x00\x00\x01\x00 \x00\xa8%\x00\x006\x00\x00\x00 \x00\x00\x01\x00 \x00\xa8\x10\x00\x00\xde%\x00\x00\x10\x10\x00\x00\x01\x00 \x00h\x04\x00\x00\x866\x00\x00(\x00\x00\x000\x00\x00\x00`\x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00$\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x02\xaeRW\f\xaeRW\x18\xaeRW&\xaeRW3\xaeRW>\xaeRWG\xaeRWM\xaeRWP\xaeRWP\xaeRWM\xaeRWG\xaeRW>\xaeRW3\xaeRW&\xaeRW\x18\xaeRW\f\xaeRW\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\f\xaeRW*\xaeRWT\xaeRW\u007f\xaeRW\xa4\xaeRW\xc1\xaeRWծRW\xe2\xaeRW\xeb\xaeRW\xf1\xaeRW\xf4\xaeRW\xf6\xaeRW\xf7\xaeRW\xf7\xaeRW\xf6\xaeRW\xf4\xaeRW\xf1\xaeRW\xeb\xaeRW\xe2\xaeRWծRW\xc1\xaeRW\xa4\xaeRW\u007f\xaeRWT\xaeRW*\xaeRW\f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\f\xaeRW=\xaeRW\x81\xaeRW\xbe\xaeRW\xe4\xaeRW\xf7\xaeRW\xfd\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfd\xaeRW\xf7\xaeRW\xe4\xaeRW\xbe\xaeRW\x81\xaeRW<\xaeRW\f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x0e\xaeRW[\xaeRW\xb8\xaeRW\xed\xaeRW\xfd\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xfd\xaeRW\xed\xaeRW\xb8\xaeRW[\xaeRW\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW,\xaeRW\xaf\xaeRW\xf6\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xf6\xaeRW\xaf\xaeRW+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1e\xaeRWŮRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRWĮRW\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWi\xaeRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWi\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x80\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfc\xaeRW\xf7\xaeRW\xee\xaeRW\xe3\xaeRWخRW̮RW®RW\xbb\xaeRW\xb7\xaeRW\xb5\xaeRW\xb5\xaeRW\xb7\xaeRW\xbc\xaeRW®RW̮RWخRW\xe3\xaeRW\xee\xaeRW\xf7\xaeRW\xfc\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRW\xfe\xaeRW\xf7\xaeRW\xe2\xaeRW\xbf\xaeRW\x97\xaeRWq\xaeRWQ\xaeRW8\xaeRW&\xaeRW\x1a\xaeRW\x12\xaeRW\f\xaeRW\t\xaeRW\a\xaeRW\a\xaeRW\a\xaeRW\a\xaeRW\t\xaeRW\f\xaeRW\x12\xaeRW\x1a\xaeRW&\xaeRW8\xaeRWQ\xaeRWq\xaeRW\x97\xaeRW\xbf\xaeRW\xe2\xaeRW\xf7\xaeRW\xfe\xaeRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfd\xaeRW\xf9\xaeRW\u05eeRW\x99\xaeRWX\xaeRW'\xaeRW\f\xaeRW\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRV\x01\xaeRW\f\xaeRW'\xaeRWX\xaeRW\x99\xaeRW\u05eeRW\xf9\xaeRW\xfd\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x81\xaeRW\xfb\xaeRW®RWe\xaeRW\x1e\xaeRW\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x06\xaeRW\x12\xaeRW!\xaeRW1\xaeRW?\xaeRWL\xaeRWU\xaeRW[\xaeRW_\xaeRW_\xaeRW[\xaeRWU\xaeRWL\xaeRW?\xaeRW1\xaeRW!\xaeRW\x12\xaeRW\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x02\xaeRW\x1e\xaeRWf\xaeRW®RW\xfb\xaeRW\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWa\xaeRWl\xaeRW\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRV\x01\xaeRW\x12\xaeRW5\xaeRWb\xaeRW\x8d\xaeRW\xb1\xaeRW̮RWޮRW\xea\xaeRW\xf1\xaeRW\xf6\xaeRW\xf8\xaeRW\xf9\xaeRW\xfa\xaeRW\xfa\xaeRW\xf9\xaeRW\xf8\xaeRW\xf6\xaeRW\xf1\xaeRW\xea\xaeRWޮRW̮RW\xb1\xaeRW\x8d\xaeRWb\xaeRW5\xaeRW\x12\xaeRW\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x12\xaeRWl\xaeRWa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\a\xaeRW\x02\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x11\xaeRWI\xaeRW\x8f\xaeRWɮRW\xeb\xaeRW\xfa\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfa\xaeRW\xeb\xaeRWɮRW\x8f\xaeRWI\xaeRW\x11\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x02\xaeRW\a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x13\xaeRWh\xaeRWĮRW\xf2\xaeRW\xfe\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfd\xaeRW\xfe\xaeRW\xf2\xaeRWĮRWh\xaeRW\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW4\xaeRW\xbb\xaeRW\xf9\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfd\xaeRW\xf9\xaeRW\xba\xaeRW4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW#\xaeRW̮RW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW̮RW#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWl\xaeRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWl\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x80\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRW\xfe\xaeRW\xfe\xaeRW\xfb\xaeRW\xf3\xaeRW\xe9\xaeRWܮRWϮRWîRW\xb9\xaeRW\xb1\xaeRW\xac\xaeRW\xa9\xaeRW\xa9\xaeRW\xac\xaeRW\xb1\xaeRW\xb9\xaeRWîRWϮRWܮRW\xe9\xaeRW\xf3\xaeRW\xfb\xaeRW\xfe\xaeRW\xfe\xaeRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfd\xaeRW\xfe\xaeRW\xf4\xaeRWۮRW\xb5\xaeRW\x8b\xaeRWe\xaeRWE\xaeRW/\xaeRW\x1f\xaeRW\x14\xaeRW\r\xaeRW\b\xaeRW\x05\xaeRW\x04\xaeRW\x03\xaeRW\x03\xaeRW\x04\xaeRW\x05\xaeRW\b\xaeRW\r\xaeRW\x14\xaeRW\x1f\xaeRW/\xaeRWE\xaeRWe\xaeRW\x8b\xaeRW\xb5\xaeRWۮRW\xf4\xaeRW\xfe\xaeRW\xfd\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfd\xaeRW\xf6\xaeRWϮRW\x8e\xaeRWL\xaeRW \xaeRW\a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\b\xaeRW \xaeRWM\xaeRW\x8e\xaeRWЮRW\xf6\xaeRW\xfd\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x82\xaeRW\xf8\xaeRW\xb8\xaeRW[\xaeRW\x18\xaeQW\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeQV\x01\xaeRW\b\xaeRW\x16\xaeRW'\xaeRW8\xaeRWH\xaeRWV\xaeRWa\xaeRWh\xaeRWk\xaeRWl\xaeRWi\xaeRWc\xaeRWY\xaeRWL\xaeRW<\xaeRW+\xaeRW\x19\xaeRW\v\xaeRW\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeQV\x01\xaeRW\x18\xaeRW[\xaeRW\xb8\xaeRW\xf8\xaeRW\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\\\xaeRWa\xaeRW\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x02\xaeRW\x16\xaeRW<\xaeRWi\xaeRW\x94\xaeRW\xb8\xaeRWҮRW\xe3\xaeRW\xee\xaeRW\xf4\xaeRW\xf8\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfc\xaeRW\xfc\xaeRW\xfb\xaeRW\xf9\xaeRW\xf6\xaeRW\xf0\xaeRW\xe6\xaeRW֮RW\xbe\xaeRW\x9b\xaeRWp\xaeRWA\xaeRW\x19\xaeRW\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x0e\xaeRWa\xaeRW\\\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x05\xaeRW\x01\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x17\xaeRWS\xaeRW\x9a\xaeRWЮRW\xef\xaeRW\xfb\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfb\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfe\xaeRW\xfe\xaeRW\xfc\xaeRW\xf1\xaeRWԮRW\x9d\xaeRWV\xaeRW\x18\xaeQV\x01\x00\x00\x00\x00\xaeRW\x01\xaeRW\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x18\xaeRWr\xaeRW̮RW\xf6\xaeRW\xfe\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfe\xaeRW\xf6\xaeRWήRWv\xaeRW\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW:\xaeRW®RW\xfa\xaeRW\xfd\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfd\xaeRW\xfb\xaeRWŮRW=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW&\xaeRWѮRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRWӮRW(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWo\xaeRW\xfd\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfd\xaeRWo\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x80\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\u007f\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\u007f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x80\xaeRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfe\xaeRW\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWi\xaeRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWg\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWŮRW\xfe\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xc1\xaeRW\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW,\xaeRW\xb0\xaeRW\xf6\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xf5\xaeRW\xaa\xaeRW(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x0e\xaeRW[\xaeRW\xb9\xaeRW\xed\xaeRW\xfd\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRW\xfe\xaeRW\xfd\xaeRW\xec\xaeRW\xb5\xaeRWW\xaeRW\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\f\xaeRW=\xaeRW\x82\xaeRW\xbe\xaeRW\xe5\xaeRW\xf7\xaeRW\xfd\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xf5\xaeRW\xe1\xaeRW\xba\xaeRW~\xaeRW;\xaeRW\v\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\f\xaeRW+\xaeRWT\xaeRW\u007f\xaeRW\xa4\xaeRW\xc1\xaeRW֮RW\xe3\xaeRW\xec\xaeRW\xf1\xaeRW\xf5\xaeRW\xf6\xaeRW\xf7\xaeRW\xf7\xaeRW\xf6\xaeRW\xf4\xaeRW\xf1\xaeRW\xeb\xaeRW\xe1\xaeRWӮRW\xbd\xaeRW\x9f\xaeRWx\xaeRWM\xaeRW&\xaeRW\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x02\xaeRW\f\xaeRW\x19\xaeRW&\xaeRW3\xaeRW>\xaeRWH\xaeRWN\xaeRWP\xaeRWP\xaeRWM\xaeRWF\xaeRW>\xaeRW2\xaeRW$\xaeRW\x17\xaeRW\n\xaeRW\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xfe\x00\x00\u007f\xff\x00\x00\xff\xc0\x00\x00\x03\xff\x00\x00\xff\x00\x00\x00\x00\xff\x00\x00\xfc\x00\x00\x00\x00?\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf0\x00\x00\x00\x00\x0f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x03\xff\xff\xc0\x1f\x00\x00\xf8?\xff\xff\xfc\x1f\x00\x00\xf1\xff\xff\xff\xff\x8f\x00\x00\xff\xfc\x00\x00?\xff\x00\x00\xff\xc0\x00\x00\x03\xff\x00\x00\xff\x00\x00\x00\x00\xff\x00\x00\xfc\x00\x00\x00\x00?\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf0\x00\x00\x00\x00\x0f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x03\xff\xff\xc0\x1f\x00\x00\xf8?\xff\xff\xfc\x1f\x00\x00\xf1\xff\xff\xff\xff\x8f\x00\x00\xff\xfc\x00\x00?\xff\x00\x00\xff\xc0\x00\x00\x03\xff\x00\x00\xff\x00\x00\x00\x00\xff\x00\x00\xfc\x00\x00\x00\x00?\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf0\x00\x00\x00\x00\x0f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf0\x00\x00\x00\x00\x0f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xf8\x00\x00\x00\x00\x1f\x00\x00\xfc\x00\x00\x00\x00?\x00\x00\xff\x00\x00\x00\x00\xff\x00\x00\xff\xc0\x00\x00\a\xff\x00\x00\xff\xfe\x00\x00\u007f\xff\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00(\x00\x00\x00 \x00\x00\x00@\x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x04\xaeRW\n\xaeRW\x0e\xaeRW\x10\xaeRW\x10\xaeRW\x0e\xaeRW\n\xaeRW\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\r\xaeRW,\xaeRWS\xaeRWw\xaeRW\x95\xaeRW\xaa\xaeRW\xb9\xaeRW\xc1\xaeRWŮRWŮRW\xc1\xaeRW\xb9\xaeRW\xaa\xaeRW\x95\xaeRWw\xaeRWS\xaeRW,\xaeRW\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x05\xaeRW3\xaeRW\u007f\xaeRW\xc0\xaeRW\xe6\xaeRW\xf7\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfd\xaeRW\xfd\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xf7\xaeRW\xe6\xaeRW\xc0\xaeRW\u007f\xaeRW3\xaeRW\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1b\xaeRW\x92\xaeRW\xe7\xaeRW\xfd\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfd\xaeRW\xfd\xaeRW\xe7\xaeRW\x91\xaeRW\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\b\xaeRW\xa2\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xa2\xaeRW\b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1d\xaeRWܮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWܮRW\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfc\xaeRW\xfe\xaeRW\xfb\xaeRW\xef\xaeRWڮRWîRW\xad\xaeRW\x9a\xaeRW\x8c\xaeRW\x83\xaeRW\x80\xaeRW\x80\xaeRW\x83\xaeRW\x8c\xaeRW\x9a\xaeRW\xad\xaeRWîRWڮRW\xef\xaeRW\xfb\xaeRW\xfe\xaeRW\xfc\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRW߮RW\xfd\xaeRW\xe0\xaeRW\xa8\xaeRWk\xaeRW;\xaeRW\x1c\xaeRW\t\xaeQV\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeQW\x01\xaeRW\t\xaeRW\x1c\xaeRW;\xaeRWk\xaeRW\xa8\xaeRW\xe0\xaeRW\xfd\xaeRW߮RW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRW\xbc\xaeRW}\xaeRW'\xaeRW\x03\x00\x00\x00\x00\xaeRW\a\xaeRW\x1f\xaeRW<\xaeRWW\xaeRWm\xaeRW}\xaeRW\x88\xaeRW\x8d\xaeRW\x8d\xaeRW\x88\xaeRW}\xaeRWm\xaeRWW\xaeRW<\xaeRW\x1f\xaeRW\a\x00\x00\x00\x00\xaeRW\x03\xaeRW'\xaeRW}\xaeRW\xbc\xaeRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\n\xaeRW\x1d\xaeQW\x01\xaeRW\x0e\xaeRWC\xaeRW\x86\xaeRW\xbb\xaeRWݮRW\xf0\xaeRW\xf8\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xf8\xaeRW\xf0\xaeRWݮRW\xbb\xaeRW\x86\xaeRWC\xaeRW\x0e\xaeRW\x01\xaeRW\x1d\xaeRW\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\b\xaeRWX\xaeRW\xbf\xaeRW\xf1\xaeRW\xfe\xaeRW\xfe\xaeRW\xfc\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfe\xaeRW\xfd\xaeRW\xf1\xaeRW\xbe\xaeRWX\xaeRW\b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x02\xaeRWz\xaeRW\xf3\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xf3\xaeRWz\xaeRW\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x19\xaeRW\u05eeRW\xfd\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfd\xaeRW\u05eeRW\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfd\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfd\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfc\xaeRW\xfe\xaeRW\xfd\xaeRW\xf6\xaeRW\xeb\xaeRWޮRWҮRWǮRW\xc0\xaeRW\xbd\xaeRW\xbd\xaeRW\xc0\xaeRWǮRWҮRWޮRW\xeb\xaeRW\xf6\xaeRW\xfd\xaeRW\xfe\xaeRW\xfc\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xff\xaeRW\xf8\xaeRWڮRW\xaa\xaeRWx\xaeRWO\xaeRW2\xaeRW\x1f\xaeRW\x12\xaeRW\v\xaeRW\a\xaeRW\x05\xaeRW\x05\xaeRW\a\xaeRW\v\xaeRW\x12\xaeRW\x1f\xaeRW2\xaeRWO\xaeRWx\xaeRW\xaa\xaeRWڮRW\xf8\xaeRW\xff\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW \xaeRW֮RW\xb9\xaeRW^\xaeRW\x1e\xaeRW\x03\x00\x00\x00\x00\xaeRW\x01\xaeRW\r\xaeRW\x1f\xaeRW0\xaeRW>\xaeRWH\xaeRWL\xaeRWM\xaeRWI\xaeRW@\xaeRW2\xaeRW!\xaeRW\x0f\xaeRW\x02\x00\x00\x00\x00\xaeRW\x03\xaeRW\x1e\xaeRW^\xaeRW\xb9\xaeRW֮RW \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x12\xaeRWH\xaeRW\r\x00\x00\x00\x00\xaeRW\x15\xaeRWF\xaeRW{\xaeRW\xa9\xaeRWɮRWޮRW\xea\xaeRW\xf1\xaeRW\xf5\xaeRW\xf6\xaeRW\xf6\xaeRW\xf5\xaeRW\xf2\xaeRW\xec\xaeRW\xe0\xaeRWͮRW\xad\xaeRW\x80\xaeRWI\xaeRW\x16\x00\x00\x00\x00\xaeRW\r\xaeRWH\xaeRW\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW&\xaeRW\x83\xaeRWϮRW\xf2\xaeRW\xfd\xaeRW\xfe\xaeRW\xfd\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfc\xaeRW\xfd\xaeRW\xfe\xaeRW\xfd\xaeRW\xf3\xaeRWЮRW\x86\xaeRW(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWL\xaeRW֮RW\xfd\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfd\xaeRW\xfd\xaeRWخRWN\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x13\xaeRWɮRW\xff\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xff\xaeRWʮRW\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1f\xaeRWݮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWݮRW\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1d\xaeRWܮRW\xfc\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRWܮRW\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\b\xaeRW\xa2\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfc\xaeRW\xfe\xaeRW\xa0\xaeRW\b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1b\xaeRW\x92\xaeRW\xe7\xaeRW\xfd\xaeRW\xfd\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xfd\xaeRW\xe6\xaeRW\x8e\xaeRW\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x05\xaeRW3\xaeRW\x80\xaeRW\xc0\xaeRW\xe6\xaeRW\xf7\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xfd\xaeRW\xfd\xaeRW\xfd\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfd\xaeRW\xf6\xaeRW\xe4\xaeRW\xbe\xaeRW~\xaeRW1\xaeRW\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\r\xaeRW,\xaeRWS\xaeRWx\xaeRW\x95\xaeRW\xab\xaeRW\xb9\xaeRW®RWŮRWŮRW\xc1\xaeRW\xb8\xaeRW\xa9\xaeRW\x93\xaeRWt\xaeRWN\xaeRW)\xaeRW\f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x04\xaeRW\n\xaeRW\x0e\xaeRW\x10\xaeRW\x10\xaeRW\x0e\xaeRW\t\xaeRW\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xe0\a\xff\xfe\x00\x00\u007f\xf0\x00\x00\x0f\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe1\xff\xff\x87\xef\xfc?\xf7\xfe\x00\x00\u007f\xf8\x00\x00\x1f\xf0\x00\x00\x0f\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe0\xff\xff\a\xe7\xff\xff\xe7\xff\x80\x00\xff\xf8\x00\x00\x1f\xf0\x00\x00\x0f\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xe0\x00\x00\a\xf0\x00\x00\x0f\xfc\x00\x00\u007f\xff\xe0\a\xff\xff\xff\xff\xff(\x00\x00\x00\x10\x00\x00\x00 \x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x10\xaeRW3\xaeRWW\xaeRWo\xaeRW{\xaeRW{\xaeRWo\xaeRWW\xaeRW3\xaeRW\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x0f\xaeRWl\xaeRW\xbf\xaeRW\xe5\xaeRW\xf4\xaeRW\xf9\xaeRW\xfa\xaeRW\xfa\xaeRW\xf9\xaeRW\xf4\xaeRW\xe5\xaeRW\xbf\xaeRWl\xaeRW\x0f\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWf\xaeRW\xfa\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xfa\xaeRWf\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW~\xaeRW\xff\xaeRW\xfe\xaeRW\xfe\xaeRW\xfb\xaeRW\xf7\xaeRW\xf5\xaeRW\xf5\xaeRW\xf7\xaeRW\xfb\xaeRW\xfe\xaeRW\xfe\xaeRW\xff\xaeRW~\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW~\xaeRW\xeb\xaeRW\xb4\xaeRW\x83\xaeRWe\xaeRWV\xaeRWQ\xaeRWQ\xaeRWV\xaeRWe\xaeRW\x83\xaeRW\xb4\xaeRW\xeb\xaeRW~\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW:\xaeRWF\xaeRWF\xaeRWp\xaeRW\x95\xaeRW\xaa\xaeRW\xb4\xaeRW\xb4\xaeRW\xaa\xaeRW\x95\xaeRWp\xaeRWF\xaeRWF\xaeRW:\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW)\xaeRW\xb0\xaeRW\xee\xaeRW\xfc\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfe\xaeRW\xfc\xaeRW\xee\xaeRW\xb0\xaeRW)\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWx\xaeRW\xff\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfc\xaeRW\xfd\xaeRW\xfd\xaeRW\xfc\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xff\xaeRWx\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW~\xaeRW\xff\xaeRW\xfb\xaeRW\xef\xaeRW߮RWҮRWˮRWˮRWҮRW߮RW\xef\xaeRW\xfb\xaeRW\xff\xaeRW~\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWt\xaeRW\xb8\xaeRWl\xaeRWG\xaeRW?\xaeRWB\xaeRWE\xaeRWF\xaeRWC\xaeRW@\xaeRWH\xaeRWl\xaeRW\xb8\xaeRWt\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x1c\xaeRWC\xaeRW\x81\xaeRW\xb7\xaeRW֮RW\xe4\xaeRW\xea\xaeRW\xea\xaeRW\xe5\xaeRW\u05eeRW\xb9\xaeRW\x83\xaeRWD\xaeRW\x1c\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWK\xaeRW\xe4\xaeRW\xfe\xaeRW\xfe\xaeRW\xfc\xaeRW\xfb\xaeRW\xfb\xaeRW\xfb\xaeRW\xfb\xaeRW\xfc\xaeRW\xfe\xaeRW\xfe\xaeRW\xe5\xaeRWL\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW~\xaeRW\xff\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xff\xaeRW~\x00\x00\x00\x00\x00\x00\x00\x00\xaeRWf\xaeRW\xfa\xaeRW\xfe\xaeRW\xfb\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfa\xaeRW\xfb\xaeRW\xfe\xaeRW\xf9\xaeRWf\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x0f\xaeRWl\xaeRW\xbf\xaeRW\xe5\xaeRW\xf4\xaeRW\xf9\xaeRW\xfa\xaeRW\xfa\xaeRW\xf9\xaeRW\xf3\xaeRW\xe4\xaeRW\xbe\xaeRWk\xaeRW\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaeRW\x10\xaeRW4\xaeRWW\xaeRWp\xaeRW{\xaeRW{\xaeRWo\xaeRWU\xaeRW2\xaeRW\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xe0\a\x00\x00\xc0\x03\x00\x00\xc0\x03\x00\x00\xc7\xe3\x00\x00\xf8\x1f\x00\x00\xc0\x03\x00\x00\xc0\x03\x00\x00\xc0\x03\x00\x00\xdf\xfb\x00\x00\xe0\a\x00\x00\xc0\x03\x00\x00\xc0\x03\x00\x00\xc0\x03\x00\x00\xe0\a\x00\x00\xff\xff\x00\x00"), } filec := &embedded.EmbeddedFile{ Filename: "index.html", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("Super Graph - GraphQL API for Rails
"), } filed := &embedded.EmbeddedFile{ Filename: "manifest.json", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503329, 0), Content: string("{\n \"short_name\": \"Super Graph\",\n \"name\": \"Super Graph - GraphQL API for Rails\",\n \"icons\": [\n {\n \"src\": \"favicon.ico\",\n \"sizes\": \"64x64 32x32 24x24 16x16\",\n \"type\": \"image/x-icon\"\n }\n ],\n \"start_url\": \".\",\n \"display\": \"standalone\",\n \"theme_color\": \"#000000\",\n \"background_color\": \"#ffffff\"\n}\n"), } filee := &embedded.EmbeddedFile{ Filename: "precache-manifest.cf56ad15e4cdbe76d4cebd621a25f8a9.js", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("self.__precacheManifest = (self.__precacheManifest || []).concat([\n {\n \"revision\": \"dd24b6ab0d5823ad93efd681af20c3af\",\n \"url\": \"/index.html\"\n },\n {\n \"revision\": \"ce055c1f214eb88c71e5\",\n \"url\": \"/static/css/main.d4fa22d6.chunk.css\"\n },\n {\n \"revision\": \"f79d286b3c55466899f3\",\n \"url\": \"/static/js/2.660c567d.chunk.js\"\n },\n {\n \"revision\": \"4044397a22b006229bd81c3fc79e2c09\",\n \"url\": \"/static/js/2.660c567d.chunk.js.LICENSE.txt\"\n },\n {\n \"revision\": \"ce055c1f214eb88c71e5\",\n \"url\": \"/static/js/main.55a8068a.chunk.js\"\n },\n {\n \"revision\": \"28c836c6390ca2244059\",\n \"url\": \"/static/js/runtime-main.3ce8a40d.js\"\n },\n {\n \"revision\": \"57ee3b6084cb9d3c754cc12d25a98035\",\n \"url\": \"/static/media/logo.57ee3b60.png\"\n }\n]);"), } filef := &embedded.EmbeddedFile{ Filename: "service-worker.js", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app and you should\n * disable HTTP caching for this file too.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\nimportScripts(\"https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js\");\n\nimportScripts(\n \"/precache-manifest.cf56ad15e4cdbe76d4cebd621a25f8a9.js\"\n);\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox.core.clientsClaim();\n\n/**\n * The workboxSW.precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nself.__precacheManifest = [].concat(self.__precacheManifest || []);\nworkbox.precaching.precacheAndRoute(self.__precacheManifest, {});\n\nworkbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL(\"/index.html\"), {\n \n blacklist: [/^\\/_/,/\\/[^/?]+\\.[^/]+$/],\n});\n"), } filei := &embedded.EmbeddedFile{ Filename: "static/css/main.d4fa22d6.chunk.css", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Roboto\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#09141b}code{font-family:source-code-pro,Menlo,Monaco,Consolas,\"Courier New\",monospace}.playground>div:nth-child(2){height:calc(100vh - 131px)}\n/*# sourceMappingURL=main.d4fa22d6.chunk.css.map */"), } filej := &embedded.EmbeddedFile{ Filename: "static/css/main.d4fa22d6.chunk.css.map", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("{\"version\":3,\"sources\":[\"index.css\"],\"names\":[],\"mappings\":\"AAAA,KACE,QAAS,CACT,SAAU,CACV,mJAEY,CACZ,kCAAmC,CACnC,iCAAkC,CAClC,wBACF,CAEA,KACE,yEAEF,CAEA,6BACE,0BACF\",\"file\":\"main.d4fa22d6.chunk.css\",\"sourcesContent\":[\"body {\\n margin: 0;\\n padding: 0;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", \\\"Roboto\\\", \\\"Oxygen\\\",\\n \\\"Ubuntu\\\", \\\"Cantarell\\\", \\\"Fira Sans\\\", \\\"Droid Sans\\\", \\\"Helvetica Neue\\\",\\n sans-serif;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n background-color: #09141b;\\n}\\n\\ncode {\\n font-family: source-code-pro, Menlo, Monaco, Consolas, \\\"Courier New\\\",\\n monospace;\\n}\\n\\n.playground > div:nth-child(2) {\\n height: calc(100vh - 131px);\\n}\\n\"]}"), } filel := &embedded.EmbeddedFile{ Filename: "static/js/2.660c567d.chunk.js", - FileModTime: time.Unix(1590725682, 0), + FileModTime: time.Unix(1587503374, 0), Content: string("/*! For license information please see 2.660c567d.chunk.js.LICENSE.txt */\n(this.webpackJsonpweb=this.webpackJsonpweb||[]).push([[2],[function(e,t,n){\"use strict\";n.d(t,\"S\",(function(){return x})),n.d(t,\"x\",(function(){return E})),n.d(t,\"R\",(function(){return D})),n.d(t,\"w\",(function(){return C})),n.d(t,\"N\",(function(){return w})),n.d(t,\"u\",(function(){return S})),n.d(t,\"H\",(function(){return k})),n.d(t,\"o\",(function(){return A})),n.d(t,\"T\",(function(){return T})),n.d(t,\"y\",(function(){return _})),n.d(t,\"E\",(function(){return O})),n.d(t,\"l\",(function(){return F})),n.d(t,\"F\",(function(){return N})),n.d(t,\"m\",(function(){return I})),n.d(t,\"J\",(function(){return M})),n.d(t,\"q\",(function(){return j})),n.d(t,\"L\",(function(){return L})),n.d(t,\"s\",(function(){return P})),n.d(t,\"G\",(function(){return R})),n.d(t,\"n\",(function(){return B})),n.d(t,\"O\",(function(){return z})),n.d(t,\"v\",(function(){return U})),n.d(t,\"I\",(function(){return q})),n.d(t,\"p\",(function(){return V})),n.d(t,\"D\",(function(){return H})),n.d(t,\"k\",(function(){return W})),n.d(t,\"C\",(function(){return G})),n.d(t,\"j\",(function(){return K})),n.d(t,\"d\",(function(){return J})),n.d(t,\"e\",(function(){return Y})),n.d(t,\"U\",(function(){return Q})),n.d(t,\"z\",(function(){return $})),n.d(t,\"M\",(function(){return X})),n.d(t,\"t\",(function(){return Z})),n.d(t,\"B\",(function(){return ee})),n.d(t,\"K\",(function(){return te})),n.d(t,\"r\",(function(){return ne})),n.d(t,\"A\",(function(){return re})),n.d(t,\"g\",(function(){return ae})),n.d(t,\"f\",(function(){return se})),n.d(t,\"i\",(function(){return fe})),n.d(t,\"P\",(function(){return de})),n.d(t,\"c\",(function(){return he})),n.d(t,\"h\",(function(){return me})),n.d(t,\"a\",(function(){return ve})),n.d(t,\"b\",(function(){return ye})),n.d(t,\"Q\",(function(){return xe}));var r=n(52),i=n(2),o=n(35),a=n(59),s=n(41),u=n(7),c=n(29),l=n(55),p=n(27);function f(e){return e}var d=n(48),h=n(47),m=n(1),g=n(240);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t0?e:void 0}J.prototype.toString=function(){return\"[\"+String(this.ofType)+\"]\"},Object(h.a)(J),Object(d.a)(J),Y.prototype.toString=function(){return String(this.ofType)+\"!\"},Object(h.a)(Y),Object(d.a)(Y);var ae=function(){function e(e){var t=e.parseValue||f;this.name=e.name,this.description=e.description,this.serialize=e.serialize||f,this.parseValue=t,this.parseLiteral=e.parseLiteral||function(e){return t(Object(g.a)(e))},this.extensions=e.extensions&&Object(s.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=oe(e.extensionASTNodes),\"string\"===typeof e.name||Object(u.a)(0,\"Must provide name.\"),null==e.serialize||\"function\"===typeof e.serialize||Object(u.a)(0,\"\".concat(this.name,' must provide \"serialize\" function. If this custom Scalar is also used as an input type, ensure \"parseValue\" and \"parseLiteral\" functions are also provided.')),e.parseLiteral&&(\"function\"===typeof e.parseValue&&\"function\"===typeof e.parseLiteral||Object(u.a)(0,\"\".concat(this.name,' must provide both \"parseValue\" and \"parseLiteral\" functions.')))}var t=e.prototype;return t.toConfig=function(){return{name:this.name,description:this.description,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},e}();Object(h.a)(ae),Object(d.a)(ae);var se=function(){function e(e){this.name=e.name,this.description=e.description,this.isTypeOf=e.isTypeOf,this.extensions=e.extensions&&Object(s.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=oe(e.extensionASTNodes),this._fields=ce.bind(void 0,e),this._interfaces=ue.bind(void 0,e),\"string\"===typeof e.name||Object(u.a)(0,\"Must provide name.\"),null==e.isTypeOf||\"function\"===typeof e.isTypeOf||Object(u.a)(0,\"\".concat(this.name,' must provide \"isTypeOf\" as a function, ')+\"but got: \".concat(Object(i.a)(e.isTypeOf),\".\"))}var t=e.prototype;return t.getFields=function(){return\"function\"===typeof this._fields&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return\"function\"===typeof this._interfaces&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:pe(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},e}();function ue(e){var t=ie(e.interfaces)||[];return Array.isArray(t)||Object(u.a)(0,\"\".concat(e.name,\" interfaces must be an Array or a function which returns an Array.\")),t}function ce(e){var t=ie(e.fields)||{};return le(t)||Object(u.a)(0,\"\".concat(e.name,\" fields must be an object with field names as keys or a function which returns such an object.\")),Object(a.a)(t,(function(t,n){le(t)||Object(u.a)(0,\"\".concat(e.name,\".\").concat(n,\" field config must be an object\")),!(\"isDeprecated\"in t)||Object(u.a)(0,\"\".concat(e.name,\".\").concat(n,' should provide \"deprecationReason\" instead of \"isDeprecated\".')),null==t.resolve||\"function\"===typeof t.resolve||Object(u.a)(0,\"\".concat(e.name,\".\").concat(n,\" field resolver must be a function if \")+\"provided, but got: \".concat(Object(i.a)(t.resolve),\".\"));var o=t.args||{};le(o)||Object(u.a)(0,\"\".concat(e.name,\".\").concat(n,\" args must be an object with argument names as keys.\"));var a=Object(r.a)(o).map((function(e){var t=e[0],n=e[1];return{name:t,description:void 0===n.description?null:n.description,type:n.type,defaultValue:n.defaultValue,extensions:n.extensions&&Object(s.a)(n.extensions),astNode:n.astNode}}));return y({},t,{name:n,description:t.description,type:t.type,args:a,resolve:t.resolve,subscribe:t.subscribe,isDeprecated:Boolean(t.deprecationReason),deprecationReason:t.deprecationReason,extensions:t.extensions&&Object(s.a)(t.extensions),astNode:t.astNode})}))}function le(e){return Object(p.a)(e)&&!Array.isArray(e)}function pe(e){return Object(a.a)(e,(function(e){return{description:e.description,type:e.type,args:fe(e.args),resolve:e.resolve,subscribe:e.subscribe,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}}))}function fe(e){return Object(c.a)(e,(function(e){return e.name}),(function(e){return{description:e.description,type:e.type,defaultValue:e.defaultValue,extensions:e.extensions,astNode:e.astNode}}))}function de(e){return L(e.type)&&void 0===e.defaultValue}Object(h.a)(se),Object(d.a)(se);var he=function(){function e(e){this.name=e.name,this.description=e.description,this.resolveType=e.resolveType,this.extensions=e.extensions&&Object(s.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=oe(e.extensionASTNodes),this._fields=ce.bind(void 0,e),\"string\"===typeof e.name||Object(u.a)(0,\"Must provide name.\"),null==e.resolveType||\"function\"===typeof e.resolveType||Object(u.a)(0,\"\".concat(this.name,' must provide \"resolveType\" as a function, ')+\"but got: \".concat(Object(i.a)(e.resolveType),\".\"))}var t=e.prototype;return t.getFields=function(){return\"function\"===typeof this._fields&&(this._fields=this._fields()),this._fields},t.toConfig=function(){return{name:this.name,description:this.description,fields:pe(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},e}();Object(h.a)(he),Object(d.a)(he);var me=function(){function e(e){this.name=e.name,this.description=e.description,this.resolveType=e.resolveType,this.extensions=e.extensions&&Object(s.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=oe(e.extensionASTNodes),this._types=ge.bind(void 0,e),\"string\"===typeof e.name||Object(u.a)(0,\"Must provide name.\"),null==e.resolveType||\"function\"===typeof e.resolveType||Object(u.a)(0,\"\".concat(this.name,' must provide \"resolveType\" as a function, ')+\"but got: \".concat(Object(i.a)(e.resolveType),\".\"))}var t=e.prototype;return t.getTypes=function(){return\"function\"===typeof this._types&&(this._types=this._types()),this._types},t.toConfig=function(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},e}();function ge(e){var t=ie(e.types)||[];return Array.isArray(t)||Object(u.a)(0,\"Must provide Array of types or a function which returns such an array for Union \".concat(e.name,\".\")),t}Object(h.a)(me),Object(d.a)(me);var ve=function(){function e(e){var t,n;this.name=e.name,this.description=e.description,this.extensions=e.extensions&&Object(s.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=oe(e.extensionASTNodes),this._values=(t=this.name,le(n=e.values)||Object(u.a)(0,\"\".concat(t,\" values must be an object with value names as keys.\")),Object(r.a)(n).map((function(e){var n=e[0],r=e[1];return le(r)||Object(u.a)(0,\"\".concat(t,\".\").concat(n,' must refer to an object with a \"value\" key ')+\"representing an internal value but got: \".concat(Object(i.a)(r),\".\")),!(\"isDeprecated\"in r)||Object(u.a)(0,\"\".concat(t,\".\").concat(n,' should provide \"deprecationReason\" instead of \"isDeprecated\".')),{name:n,description:r.description,value:\"value\"in r?r.value:n,isDeprecated:Boolean(r.deprecationReason),deprecationReason:r.deprecationReason,extensions:r.extensions&&Object(s.a)(r.extensions),astNode:r.astNode}}))),this._valueLookup=new Map(this._values.map((function(e){return[e.value,e]}))),this._nameLookup=Object(o.a)(this._values,(function(e){return e.name})),\"string\"===typeof e.name||Object(u.a)(0,\"Must provide name.\")}var t=e.prototype;return t.getValues=function(){return this._values},t.getValue=function(e){return this._nameLookup[e]},t.serialize=function(e){var t=this._valueLookup.get(e);if(t)return t.name},t.parseValue=function(e){if(\"string\"===typeof e){var t=this.getValue(e);if(t)return t.value}},t.parseLiteral=function(e,t){if(e.kind===m.a.ENUM){var n=this.getValue(e.value);if(n)return n.value}},t.toConfig=function(){var e=Object(c.a)(this.getValues(),(function(e){return e.name}),(function(e){return{description:e.description,value:e.value,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}}));return{name:this.name,description:this.description,values:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},e}();Object(h.a)(ve),Object(d.a)(ve);var ye=function(){function e(e){this.name=e.name,this.description=e.description,this.extensions=e.extensions&&Object(s.a)(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=oe(e.extensionASTNodes),this._fields=be.bind(void 0,e),\"string\"===typeof e.name||Object(u.a)(0,\"Must provide name.\")}var t=e.prototype;return t.getFields=function(){return\"function\"===typeof this._fields&&(this._fields=this._fields()),this._fields},t.toConfig=function(){var e=Object(a.a)(this.getFields(),(function(e){return{description:e.description,type:e.type,defaultValue:e.defaultValue,extensions:e.extensions,astNode:e.astNode}}));return{name:this.name,description:this.description,fields:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},e}();function be(e){var t=ie(e.fields)||{};return le(t)||Object(u.a)(0,\"\".concat(e.name,\" fields must be an object with field names as keys or a function which returns such an object.\")),Object(a.a)(t,(function(t,n){return!(\"resolve\"in t)||Object(u.a)(0,\"\".concat(e.name,\".\").concat(n,\" field has a resolve property, but Input Types cannot define resolvers.\")),y({},t,{name:n,description:t.description,type:t.type,defaultValue:t.defaultValue,extensions:t.extensions&&Object(s.a)(t.extensions),astNode:t.astNode})}))}function xe(e){return L(e.type)&&void 0===e.defaultValue}Object(h.a)(ye),Object(d.a)(ye)},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return r}));var r=Object.freeze({NAME:\"Name\",DOCUMENT:\"Document\",OPERATION_DEFINITION:\"OperationDefinition\",VARIABLE_DEFINITION:\"VariableDefinition\",SELECTION_SET:\"SelectionSet\",FIELD:\"Field\",ARGUMENT:\"Argument\",FRAGMENT_SPREAD:\"FragmentSpread\",INLINE_FRAGMENT:\"InlineFragment\",FRAGMENT_DEFINITION:\"FragmentDefinition\",VARIABLE:\"Variable\",INT:\"IntValue\",FLOAT:\"FloatValue\",STRING:\"StringValue\",BOOLEAN:\"BooleanValue\",NULL:\"NullValue\",ENUM:\"EnumValue\",LIST:\"ListValue\",OBJECT:\"ObjectValue\",OBJECT_FIELD:\"ObjectField\",DIRECTIVE:\"Directive\",NAMED_TYPE:\"NamedType\",LIST_TYPE:\"ListType\",NON_NULL_TYPE:\"NonNullType\",SCHEMA_DEFINITION:\"SchemaDefinition\",OPERATION_TYPE_DEFINITION:\"OperationTypeDefinition\",SCALAR_TYPE_DEFINITION:\"ScalarTypeDefinition\",OBJECT_TYPE_DEFINITION:\"ObjectTypeDefinition\",FIELD_DEFINITION:\"FieldDefinition\",INPUT_VALUE_DEFINITION:\"InputValueDefinition\",INTERFACE_TYPE_DEFINITION:\"InterfaceTypeDefinition\",UNION_TYPE_DEFINITION:\"UnionTypeDefinition\",ENUM_TYPE_DEFINITION:\"EnumTypeDefinition\",ENUM_VALUE_DEFINITION:\"EnumValueDefinition\",INPUT_OBJECT_TYPE_DEFINITION:\"InputObjectTypeDefinition\",DIRECTIVE_DEFINITION:\"DirectiveDefinition\",SCHEMA_EXTENSION:\"SchemaExtension\",SCALAR_TYPE_EXTENSION:\"ScalarTypeExtension\",OBJECT_TYPE_EXTENSION:\"ObjectTypeExtension\",INTERFACE_TYPE_EXTENSION:\"InterfaceTypeExtension\",UNION_TYPE_EXTENSION:\"UnionTypeExtension\",ENUM_TYPE_EXTENSION:\"EnumTypeExtension\",INPUT_OBJECT_TYPE_EXTENSION:\"InputObjectTypeExtension\"})},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o}));var r=n(104);function i(e){return(i=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e){return a(e,[])}function a(e,t){switch(i(e)){case\"string\":return JSON.stringify(e);case\"function\":return e.name?\"[function \".concat(e.name,\"]\"):\"[function]\";case\"object\":return null===e?\"null\":function(e,t){if(-1!==t.indexOf(e))return\"[Circular]\";var n=[].concat(t,[e]),i=function(e){var t=e[String(r.a)];if(\"function\"===typeof t)return t;if(\"function\"===typeof e.inspect)return e.inspect}(e);if(void 0!==i){var o=i.call(e);if(o!==e)return\"string\"===typeof o?o:a(o,n)}else if(Array.isArray(e))return function(e,t){if(0===e.length)return\"[]\";if(t.length>2)return\"[Array]\";for(var n=Math.min(10,e.length),r=e.length-n,i=[],o=0;o1&&i.push(\"... \".concat(r,\" more items\"));return\"[\"+i.join(\", \")+\"]\"}(e,n);return function(e,t){var n=Object.keys(e);if(0===n.length)return\"{}\";if(t.length>2)return\"[\"+function(e){var t=Object.prototype.toString.call(e).replace(/^\\[object /,\"\").replace(/]$/,\"\");if(\"Object\"===t&&\"function\"===typeof e.constructor){var n=e.constructor.name;if(\"string\"===typeof n&&\"\"!==n)return n}return t}(e)+\"]\";return\"{ \"+n.map((function(n){return n+\": \"+a(e[n],t)})).join(\", \")+\" }\"}(e,n)}(e,t);default:return String(e)}}},function(e,t,n){\"use strict\";e.exports=n(275)},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a})),n.d(t,\"b\",(function(){return s}));var r=n(27),i=n(105),o=n(157);function a(e,t,n,o,s,u,c){var l=Array.isArray(t)?0!==t.length?t:void 0:t?[t]:void 0,p=n;if(!p&&l){var f=l[0];p=f&&f.loc&&f.loc.source}var d,h=o;!h&&l&&(h=l.reduce((function(e,t){return t.loc&&e.push(t.loc.start),e}),[])),h&&0===h.length&&(h=void 0),o&&n?d=o.map((function(e){return Object(i.a)(n,e)})):l&&(d=l.reduce((function(e,t){return t.loc&&e.push(Object(i.a)(t.loc.source,t.loc.start)),e}),[]));var m=c;if(null==m&&null!=u){var g=u.extensions;Object(r.a)(g)&&(m=g)}Object.defineProperties(this,{message:{value:e,enumerable:!0,writable:!0},locations:{value:d||void 0,enumerable:Boolean(d)},path:{value:s||void 0,enumerable:Boolean(s)},nodes:{value:l||void 0},source:{value:p||void 0},positions:{value:h||void 0},originalError:{value:u},extensions:{value:m||void 0,enumerable:Boolean(m)}}),u&&u.stack?Object.defineProperty(this,\"stack\",{value:u.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,\"stack\",{value:Error().stack,writable:!0,configurable:!0})}function s(e){var t=e.message;if(e.nodes)for(var n=0,r=e.nodes;n\",EOF:\"\",BANG:\"!\",DOLLAR:\"$\",AMP:\"&\",PAREN_L:\"(\",PAREN_R:\")\",SPREAD:\"...\",COLON:\":\",EQUALS:\"=\",AT:\"@\",BRACKET_L:\"[\",BRACKET_R:\"]\",BRACE_L:\"{\",PIPE:\"|\",BRACE_R:\"}\",NAME:\"Name\",INT:\"Int\",FLOAT:\"Float\",STRING:\"String\",BLOCK_STRING:\"BlockString\",COMMENT:\"Comment\"})},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return ae})),n.d(t,\"b\",(function(){return L})),n.d(t,\"c\",(function(){return y})),n.d(t,\"d\",(function(){return R})),n.d(t,\"e\",(function(){return E})),n.d(t,\"f\",(function(){return c})),n.d(t,\"g\",(function(){return z})),n.d(t,\"h\",(function(){return K})),n.d(t,\"i\",(function(){return I})),n.d(t,\"j\",(function(){return $})),n.d(t,\"k\",(function(){return U})),n.d(t,\"l\",(function(){return X})),n.d(t,\"m\",(function(){return ue})),n.d(t,\"n\",(function(){return pe})),n.d(t,\"o\",(function(){return oe})),n.d(t,\"p\",(function(){return de})),n.d(t,\"q\",(function(){return j})),n.d(t,\"r\",(function(){return F})),n.d(t,\"s\",(function(){return P})),n.d(t,\"t\",(function(){return V})),n.d(t,\"u\",(function(){return M})),n.d(t,\"v\",(function(){return ye})),n.d(t,\"w\",(function(){return re})),n.d(t,\"x\",(function(){return Y})),n.d(t,\"y\",(function(){return Z})),n.d(t,\"z\",(function(){return ee})),n.d(t,\"A\",(function(){return te})),n.d(t,\"B\",(function(){return ne})),n.d(t,\"C\",(function(){return B})),n.d(t,\"D\",(function(){return se})),n.d(t,\"E\",(function(){return ce})),n.d(t,\"F\",(function(){return le})),n.d(t,\"G\",(function(){return fe})),n.d(t,\"H\",(function(){return he})),n.d(t,\"I\",(function(){return me})),n.d(t,\"J\",(function(){return ge})),n.d(t,\"K\",(function(){return ve})),n.d(t,\"L\",(function(){return q})),n.d(t,\"M\",(function(){return l})),n.d(t,\"N\",(function(){return H})),n.d(t,\"O\",(function(){return N})),n.d(t,\"P\",(function(){return W})),n.d(t,\"Q\",(function(){return G})),n.d(t,\"R\",(function(){return J})),n.d(t,\"S\",(function(){return b})),n.d(t,\"T\",(function(){return k})),n.d(t,\"U\",(function(){return s})),n.d(t,\"V\",(function(){return S})),n.d(t,\"W\",(function(){return x})),n.d(t,\"X\",(function(){return O})),n.d(t,\"Y\",(function(){return h})),n.d(t,\"Z\",(function(){return p})),n.d(t,\"ab\",(function(){return v})),n.d(t,\"bb\",(function(){return d})),n.d(t,\"cb\",(function(){return w})),n.d(t,\"db\",(function(){return u})),n.d(t,\"eb\",(function(){return f})),n.d(t,\"fb\",(function(){return A})),n.d(t,\"gb\",(function(){return C})),n.d(t,\"hb\",(function(){return D}));var r=n(15),i=n(43),o=n(9),a=n(128),s=function(e){return function(){return e}}(!0),u=function(){};var c=function(e){return e};\"function\"===typeof Symbol&&Symbol.asyncIterator&&Symbol.asyncIterator;function l(e,t,n){if(!t(e))throw new Error(n)}var p=function(e,t){Object(i.a)(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(n){e[n]=t[n]}))},f=function(e,t){var n;return(n=[]).concat.apply(n,t.map(e))};function d(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)}function h(e){var t=!1;return function(){t||(t=!0,e())}}var m=function(e){throw e},g=function(e){return{value:e,done:!0}};function v(e,t,n){void 0===t&&(t=m),void 0===n&&(n=\"iterator\");var r={meta:{name:n},next:e,throw:t,return:g,isSagaIterator:!0};return\"undefined\"!==typeof Symbol&&(r[Symbol.iterator]=function(){return r}),r}function y(e,t){var n=t.sagaStack;console.error(e),console.error(n)}var b=function(e){return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \"+e+\"\\n\")},x=function(e){return Array.apply(null,new Array(e))},E=function(e){return function(t){return e(Object.defineProperty(t,r.f,{value:!0}))}},D=function(e){return e===r.k},C=function(e){return e===r.j},w=function(e){return D(e)||C(e)};function S(e,t){var n=Object.keys(e),r=n.length;var i,a=0,s=Object(o.a)(e)?x(r):{},c={};return n.forEach((function(e){var n=function(n,o){i||(o||w(n)?(t.cancel(),t(n,o)):(s[e]=n,++a===r&&(i=!0,t(s))))};n.cancel=u,c[e]=n})),t.cancel=function(){i||(i=!0,n.forEach((function(e){return c[e].cancel()})))},c}function k(e){return{name:e.name||\"anonymous\",location:A(e)}}function A(e){return e[r.g]}var T={isEmpty:s,put:u,take:u};function _(e,t){void 0===e&&(e=10);var n=new Array(e),r=0,i=0,o=0,a=function(t){n[i]=t,i=(i+1)%e,r++},s=function(){if(0!=r){var t=n[o];return n[o]=null,r--,o=(o+1)%e,t}},u=function(){for(var e=[];r;)e.push(s());return e};return{isEmpty:function(){return 0==r},put:function(s){var c;if(r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r2147483647||t<-2147483648)throw new TypeError(\"Int cannot represent non 32-bit signed integer value: \".concat(Object(o.a)(e)));return t},parseValue:function(e){if(!i(e))throw new TypeError(\"Int cannot represent non-integer value: \".concat(Object(o.a)(e)));if(e>2147483647||e<-2147483648)throw new TypeError(\"Int cannot represent non 32-bit signed integer value: \".concat(Object(o.a)(e)));return e},parseLiteral:function(e){if(e.kind===s.a.INT){var t=parseInt(e.value,10);if(t<=2147483647&&t>=-2147483648)return t}}});var l=new u.g({name:\"Float\",description:\"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).\",serialize:function(e){if(\"boolean\"===typeof e)return e?1:0;var t=e;if(\"string\"===typeof e&&\"\"!==e&&(t=Number(e)),!r(t))throw new TypeError(\"Float cannot represent non numeric value: \".concat(Object(o.a)(e)));return t},parseValue:function(e){if(!r(e))throw new TypeError(\"Float cannot represent non numeric value: \".concat(Object(o.a)(e)));return e},parseLiteral:function(e){return e.kind===s.a.FLOAT||e.kind===s.a.INT?parseFloat(e.value):void 0}});function p(e){if(Object(a.a)(e)){if(\"function\"===typeof e.valueOf){var t=e.valueOf();if(!Object(a.a)(t))return t}if(\"function\"===typeof e.toJSON)return e.toJSON()}return e}var f=new u.g({name:\"String\",description:\"The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.\",serialize:function(e){var t=p(e);if(\"string\"===typeof t)return t;if(\"boolean\"===typeof t)return t?\"true\":\"false\";if(r(t))return t.toString();throw new TypeError(\"String cannot represent value: \".concat(Object(o.a)(e)))},parseValue:function(e){if(\"string\"!==typeof e)throw new TypeError(\"String cannot represent a non string value: \".concat(Object(o.a)(e)));return e},parseLiteral:function(e){return e.kind===s.a.STRING?e.value:void 0}});var d=new u.g({name:\"Boolean\",description:\"The `Boolean` scalar type represents `true` or `false`.\",serialize:function(e){if(\"boolean\"===typeof e)return e;if(r(e))return 0!==e;throw new TypeError(\"Boolean cannot represent a non boolean value: \".concat(Object(o.a)(e)))},parseValue:function(e){if(\"boolean\"!==typeof e)throw new TypeError(\"Boolean cannot represent a non boolean value: \".concat(Object(o.a)(e)));return e},parseLiteral:function(e){return e.kind===s.a.BOOLEAN?e.value:void 0}});var h=new u.g({name:\"ID\",description:'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.',serialize:function(e){var t=p(e);if(\"string\"===typeof t)return t;if(i(t))return String(t);throw new TypeError(\"ID cannot represent value: \".concat(Object(o.a)(e)))},parseValue:function(e){if(\"string\"===typeof e)return e;if(i(e))return e.toString();throw new TypeError(\"ID cannot represent value: \".concat(Object(o.a)(e)))},parseLiteral:function(e){return e.kind===s.a.STRING||e.kind===s.a.INT?e.value:void 0}}),m=Object.freeze([f,c,l,d,h]);function g(e){return Object(u.R)(e)&&m.some((function(t){var n=t.name;return e.name===n}))}},function(e,t,n){e.exports=function(){\"use strict\";var e=navigator.userAgent,t=navigator.platform,n=/gecko\\/\\d/i.test(e),r=/MSIE \\d/.test(e),i=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(e),o=/Edge\\/(\\d+)/.exec(e),a=r||i||o,s=a&&(r?document.documentMode||6:+(o||i)[1]),u=!o&&/WebKit\\//.test(e),c=u&&/Qt\\/\\d+\\.\\d+/.test(e),l=!o&&/Chrome\\//.test(e),p=/Opera\\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(e),h=/PhantomJS/.test(e),m=!o&&/AppleWebKit/.test(e)&&/Mobile\\/\\w+/.test(e),g=/Android/.test(e),v=m||g||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=m||/Mac/.test(t),b=/\\bCrOS\\b/.test(e),x=/win/i.test(t),E=p&&e.match(/Version\\/(\\d*\\.\\d*)/);E&&(E=Number(E[1])),E&&E>=15&&(p=!1,u=!0);var D=y&&(c||p&&(null==E||E<12.11)),C=n||a&&s>=9;function w(e){return new RegExp(\"(^|\\\\s)\"+e+\"(?:$|\\\\s)\\\\s*\")}var S,k=function(e,t){var n=e.className,r=w(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:\"\")}};function A(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function T(e,t){return A(e).appendChild(t)}function _(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),\"string\"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}m?j=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(j=function(e){try{e.select()}catch(t){}});var B=function(){this.id=null,this.f=null,this.time=0,this.handler=L(this.onTimeout,this)};function z(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var G=[\"\"];function K(e){for(;G.length<=e;)G.push(J(G)+\" \");return G[e]}function J(e){return e[e.length-1]}function Y(e,t){for(var n=[],r=0;r\"\\x80\"&&(e.toUpperCase()!=e.toLowerCase()||X.test(e))}function ee(e,t){return t?!!(t.source.indexOf(\"\\\\w\")>-1&&Z(e))||t.test(e):Z(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;function re(e){return e.charCodeAt(0)>=768&&ne.test(e)}function ie(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}var ae=null;function se(e,t,n){var r;ae=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&\"before\"==n?r=i:ae=i),o.from==t&&(o.from!=o.to&&\"before\"!=n?r=i:ae=i)}return null!=r?r:ae}var ue=function(){var e=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,t=/[stwN]/,n=/[LRr]/,r=/[Lb1n]/,i=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(a,s){var u=\"ltr\"==s?\"L\":\"R\";if(0==a.length||\"ltr\"==s&&!e.test(a))return!1;for(var c,l=a.length,p=[],f=0;f-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function he(e,t){var n=fe(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function ye(e){e.prototype.on=function(e,t){pe(this,e,t)},e.prototype.off=function(e,t){de(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function xe(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ee(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){be(e),xe(e)}function Ce(e){return e.target||e.srcElement}function we(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var Se,ke,Ae=function(){if(a&&s<9)return!1;var e=_(\"div\");return\"draggable\"in e||\"dragDrop\"in e}();function Te(e){if(null==Se){var t=_(\"span\",\"\\u200b\");T(e,_(\"span\",[t,document.createTextNode(\"x\")])),0!=e.firstChild.offsetHeight&&(Se=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var n=Se?_(\"span\",\"\\u200b\"):_(\"span\",\"\\xa0\",null,\"display: inline-block; width: 1px; margin-right: -1px\");return n.setAttribute(\"cm-text\",\"\"),n}function _e(e){if(null!=ke)return ke;var t=T(e,document.createTextNode(\"A\\u062eA\")),n=S(t,0,1).getBoundingClientRect(),r=S(t,1,2).getBoundingClientRect();return A(e),!(!n||n.left==n.right)&&(ke=r.right-n.right<3)}var Oe=3!=\"\\n\\nb\".split(/\\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf(\"\\n\",t);-1==i&&(i=e.length);var o=e.slice(t,\"\\r\"==e.charAt(i-1)?i-1:i),a=o.indexOf(\"\\r\");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\\r\\n?|\\n/)},Fe=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(n){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints(\"StartToEnd\",t)},Ne=function(){var e=_(\"div\");return\"oncopy\"in e||(e.setAttribute(\"oncopy\",\"return;\"),\"function\"==typeof e.oncopy)}(),Ie=null,Me={},je={};function Le(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Me[e]=t}function Pe(e){if(\"string\"==typeof e&&je.hasOwnProperty(e))e=je[e];else if(e&&\"string\"==typeof e.name&&je.hasOwnProperty(e.name)){var t=je[e.name];\"string\"==typeof t&&(t={name:t}),(e=$(t,e)).name=t.name}else{if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(e))return Pe(\"application/xml\");if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(e))return Pe(\"application/json\")}return\"string\"==typeof e?{name:e}:e||{name:\"null\"}}function Re(e,t){t=Pe(t);var n=Me[t.name];if(!n)return Re(e,\"text/plain\");var r=n(e,t);if(Be.hasOwnProperty(t.name)){var i=Be[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r[\"_\"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var Be={};function ze(e,t){P(t,Be.hasOwnProperty(e)?Be[e]:Be[e]={})}function Ue(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function qe(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Ve(e,t,n){return!e.startState||e.startState(t,n)}var He=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function We(e,t){if((t-=e.first)<0||t>=e.size)throw new Error(\"There is no line \"+(t+e.first)+\" in the document.\");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?Ze(n,We(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?Ze(e.line,t):n<0?Ze(e.line,0):e}(t,We(e,t.line).text.length)}function st(e,t){for(var n=[],r=0;r=this.string.length},He.prototype.sol=function(){return this.pos==this.lineStart},He.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},He.prototype.next=function(){if(this.post},He.prototype.eatSpace=function(){for(var e=this.pos;/[\\s\\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},He.prototype.skipToEnd=function(){this.pos=this.string.length},He.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},He.prototype.backUp=function(e){this.pos-=e},He.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},He.prototype.current=function(){return this.string.slice(this.start,this.pos)},He.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},He.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},He.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ut=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function lt(e,t,n,r){var i=[e.state.modeGen],o={};bt(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],u=1,c=0;n.state=!0,bt(e,t.text,s.mode,n,(function(e,t){for(var n=u;ce&&i.splice(u,1,e,i[u+1],r),u+=2,c=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,u-n,e,\"overlay \"+t),u=n+2;else for(;ne.options.maxHighlightLength&&Ue(e.doc.mode,r.state),o=lt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function ft(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new ct(r,!0,t);var o=function(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var u=We(o,s-1),c=u.stateAfter;if(c&&(!n||s+(c instanceof ut?c.lookAhead:0)<=o.modeFrontier))return s;var l=R(u.text,null,e.options.tabSize);(null==i||r>l)&&(i=s-1,r=l)}return i}(e,t,n),a=o>r.first&&We(r,o-1).stateAfter,s=a?ct.fromSaved(r,a,o):new ct(r,Ve(r.mode),o);return r.iter(o,t,(function(n){dt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error(\"Mode \"+e.name+\" failed to advance stream.\")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,\"\"),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,n){return t instanceof ut?new ct(e,Ue(e.mode,t.state),n,t.lookAhead):new ct(e,Ue(e.mode,t),n)},ct.prototype.save=function(e){var t=!1!==e?Ue(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ut(t,this.maxLookAhead):t};var gt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function vt(e,t,n,r){var i,o,a=e.doc,s=a.mode,u=We(a,(t=at(a,t)).line),c=ft(e,t.line,n),l=new He(u.text,e.options.tabSize,c);for(r&&(o=[]);(r||l.pose.options.maxHighlightLength?(s=!1,a&&dt(e,t,r,p.pos),p.pos=t.length,u=null):u=yt(mt(n,p,r.state,f),o),f){var d=f[0].name;d&&(u=\"m-\"+(u?d+\" \"+u:d))}if(!s||l!=u){for(;c=t:o.to>t);(r||(r=[])).push(new Dt(a,o.from,s?null:o.to))}}return r}(n,i,a),u=function(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&\"bookmark\"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!n||Ft(n,o.marker)<0)&&(n=o.marker)}return n}function Lt(e,t,n,r,i){var o=We(e,t),a=Et&&o.markedSpans;if(a)for(var s=0;s=0&&p<=0||l<=0&&p>=0)&&(l<=0&&(u.marker.inclusiveRight&&i.inclusiveLeft?et(c.to,n)>=0:et(c.to,n)>0)||l>=0&&(u.marker.inclusiveRight&&i.inclusiveLeft?et(c.from,r)<=0:et(c.from,r)<0)))return!0}}}function Pt(e){for(var t;t=It(e);)e=t.find(-1,!0).line;return e}function Rt(e,t){var n=We(e,t),r=Pt(n);return n==r?t:Ye(r)}function Bt(e,t){if(t>e.lastLine())return t;var n,r=We(e,t);if(!zt(e,r))return t;for(;n=Mt(r);)r=n.find(1,!0).line;return Ye(r)+1}function zt(e,t){var n=Et&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var Wt=function(e,t,n){this.text=e,Tt(this,t),this.height=n?n(this):1};function Gt(e){e.parent=null,At(e)}Wt.prototype.lineNo=function(){return Ye(this)},ye(Wt);var Kt={},Jt={};function Yt(e,t){if(!e||/^\\s*$/.test(e))return null;var n=t.addModeClass?Jt:Kt;return n[e]||(n[e]=e.replace(/\\S+/g,\"cm-$&\"))}function Qt(e,t){var n=O(\"span\",null,null,u?\"padding-right: .1px\":null),r={pre:O(\"pre\",[n],\"CodeMirror-line\"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption(\"lineWrapping\")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=Xt,_e(e.display.measure)&&(a=ce(o,e.doc.direction))&&(r.addToken=Zt(r.addToken,a)),r.map=[],tn(o,r,pt(e,o,t!=e.display.externalMeasured&&Ye(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=M(o.styleClasses.bgClass,r.bgClass||\"\")),o.styleClasses.textClass&&(r.textClass=M(o.styleClasses.textClass,r.textClass||\"\"))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Te(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(u){var s=r.content.lastChild;(/\\bcm-tab\\b/.test(s.className)||s.querySelector&&s.querySelector(\".cm-tab\"))&&(r.content.className=\"cm-tab-wrap-hack\")}return he(e,\"renderLine\",e,t.line,r.pre),r.pre.className&&(r.textClass=M(r.pre.className,r.textClass||\"\")),r}function $t(e){var t=_(\"span\",\"\\u2022\",\"cm-invalidchar\");return t.title=\"\\\\u\"+e.charCodeAt(0).toString(16),t.setAttribute(\"aria-label\",t.title),t}function Xt(e,t,n,r,i,o,u){if(t){var c,l=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r=\"\",i=0;ic&&p.from<=c);f++);if(p.to>=l)return e(n,r,i,o,a,s,u);e(n,r.slice(0,p.to-c),i,o,null,s,u),o=null,r=r.slice(p.to-c),c=p.to}}}function en(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement(\"span\"))),i.setAttribute(\"cm-marker\",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function tn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,u,c,l,p,f,d=i.length,h=0,m=1,g=\"\",v=0;;){if(v==h){u=c=l=s=\"\",f=null,p=null,v=1/0;for(var y=[],b=void 0,x=0;xh||D.collapsed&&E.to==h&&E.from==h)){if(null!=E.to&&E.to!=h&&v>E.to&&(v=E.to,c=\"\"),D.className&&(u+=\" \"+D.className),D.css&&(s=(s?s+\";\":\"\")+D.css),D.startStyle&&E.from==h&&(l+=\" \"+D.startStyle),D.endStyle&&E.to==v&&(b||(b=[])).push(D.endStyle,E.to),D.title&&((f||(f={})).title=D.title),D.attributes)for(var C in D.attributes)(f||(f={}))[C]=D.attributes[C];D.collapsed&&(!p||Ft(p.marker,D)<0)&&(p=E)}else E.from>h&&v>E.from&&(v=E.from)}if(b)for(var w=0;w=d)break;for(var k=Math.min(d,v);;){if(g){var A=h+g.length;if(!p){var T=A>k?g.slice(0,k-h):g;t.addToken(t,T,a?a+u:u,l,h+T.length==v?c:\"\",s,f)}if(A>=k){g=g.slice(k-h),h=k;break}h=A,l=\"\"}g=i.slice(o,o=n[m++]),a=Yt(n[m++],t.cm.options)}}else for(var _=1;_n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function _n(e,t,n,r){return Nn(e,Fn(e,t),n,r)}function On(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&t2&&o.push((u.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,n,r){var i,o=jn(t.map,n,r),u=o.node,c=o.start,l=o.end,p=o.collapse;if(3==u.nodeType){for(var f=0;f<4;f++){for(;c&&re(t.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+l1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,i))}else{var d;c>0&&(p=r=\"right\"),i=e.options.lineWrapping&&(d=u.getClientRects()).length>1?d[\"right\"==r?d.length-1:0]:u.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var h=u.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+rr(e.display),top:h.top,bottom:h.bottom}:Mn}for(var m=i.top-t.rect.top,g=i.bottom-t.rect.top,v=(m+g)/2,y=t.view.measure.heights,b=0;bt)&&(i=(o=u-s)-1,t>=u&&(a=\"right\")),null!=i){if(r=e[c+2],s==u&&n==(r.insertLeft?\"left\":\"right\")&&(a=n),\"left\"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a=\"left\";if(\"right\"==n&&i==u-s)for(;c=0&&(n=e[i]).left==n.right;i--);return n}function Pn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=r.text.length?(u=r.text.length,c=\"before\"):u<=0&&(u=0,c=\"after\"),!s)return a(\"before\"==c?u-1:u,\"before\"==c);function l(e,t,n){return a(n?e-1:e,1==s[t].level!=n)}var p=se(s,u,c),f=ae,d=l(u,p,\"before\"==c);return null!=f&&(d.other=l(u,f,\"before\"!=c)),d}function Kn(e,t){var n=0;t=at(e.doc,t),e.options.lineWrapping||(n=rr(e.display)*t.ch);var r=We(e.doc,t.line),i=qt(r)+Dn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Jn(e,t,n,r,i){var o=Ze(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function Yn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Jn(r.first,0,null,-1,-1);var i=Qe(r,n),o=r.first+r.size-1;if(i>o)return Jn(r.first+r.size-1,We(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=We(r,i);;){var s=Zn(e,a,i,t,n),u=jt(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!u)return s;var c=u.find(1);if(c.line==i)return c;a=We(r,i=c.line)}}function Qn(e,t,n,r){r-=qn(t);var i=t.text.length,o=oe((function(t){return Nn(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=oe((function(t){return Nn(e,n,t).top>r}),o,i)}}function $n(e,t,n,r){return n||(n=Fn(e,t)),Qn(e,t,n,Vn(e,t,Nn(e,n,r),\"line\").top)}function Xn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Zn(e,t,n,r,i){i-=qt(t);var o=Fn(e,t),a=qn(t),s=0,u=t.text.length,c=!0,l=ce(t,e.doc.direction);if(l){var p=(e.options.lineWrapping?tr:er)(e,t,n,o,l,r,i);s=(c=1!=p.level)?p.from:p.to-1,u=c?p.to:p.from-1}var f,d,h=null,m=null,g=oe((function(t){var n=Nn(e,o,t);return n.top+=a,n.bottom+=a,!!Xn(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,m=n),!0)}),s,u),v=!1;if(m){var y=r-m.left=x.bottom?1:0}return Jn(n,g=ie(t.text,g,1),d,v,r-f)}function er(e,t,n,r,i,o,a){var s=oe((function(s){var u=i[s],c=1!=u.level;return Xn(Gn(e,Ze(n,c?u.to:u.from,c?\"before\":\"after\"),\"line\",t,r),o,a,!0)}),0,i.length-1),u=i[s];if(s>0){var c=1!=u.level,l=Gn(e,Ze(n,c?u.from:u.to,c?\"after\":\"before\"),\"line\",t,r);Xn(l,o,a,!0)&&l.top>a&&(u=i[s-1])}return u}function tr(e,t,n,r,i,o,a){var s=Qn(e,t,r,a),u=s.begin,c=s.end;/\\s/.test(t.text.charAt(c-1))&&c--;for(var l=null,p=null,f=0;f=c||d.to<=u)){var h=Nn(e,r,1!=d.level?Math.min(c,d.to)-1:Math.max(u,d.from)).right,m=hm)&&(l=d,p=m)}}return l||(l=i[i.length-1]),l.fromc&&(l={from:l.from,to:c,level:l.level}),l}function nr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==In){In=_(\"pre\",null,\"CodeMirror-line-like\");for(var t=0;t<49;++t)In.appendChild(document.createTextNode(\"x\")),In.appendChild(_(\"br\"));In.appendChild(document.createTextNode(\"x\"))}T(e.measure,In);var n=In.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),A(e.measure),n||1}function rr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=_(\"span\",\"xxxxxxxxxx\"),n=_(\"pre\",[t],\"CodeMirror-line-like\");T(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function ir(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:or(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function or(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function ar(e){var t=nr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/rr(e.display)-3);return function(i){if(zt(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(u=We(e.doc,c.line).text).length==c.ch){var l=R(u,u.length,e.options.tabSize)-u.length;c=Ze(c.line,Math.max(0,Math.round((o-wn(e.display).left)/rr(e.display))-l))}return c}function cr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Et&&Rt(e.doc,t)i.viewFrom?fr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)fr(e);else if(t<=i.viewFrom){var o=dr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):fr(e)}else if(n>=i.viewTo){var a=dr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):fr(e)}else{var s=dr(e,t,t,-1),u=dr(e,n,n+r,1);s&&u?(i.view=i.view.slice(0,s.index).concat(rn(e,s.lineN,u.lineN)).concat(i.view.slice(u.index)),i.viewTo+=r):fr(e)}var c=i.externalMeasured;c&&(n=i.lineN&&t=r.viewTo)){var o=r.view[cr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==z(a,n)&&a.push(n)}}}function fr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function dr(e,t,n,r){var i,o=cr(e,t),a=e.display.view;if(!Et||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,u=0;u0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;Rt(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function hr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||s.to().linet||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?\"rtl\":\"ltr\",o),i=!0)}i||r(t,n,\"ltr\")}(m,n||0,null==r?f:r,(function(e,t,i,p){var g=\"ltr\"==i,v=d(e,g?\"left\":\"right\"),y=d(t-1,g?\"right\":\"left\"),b=null==n&&0==e,x=null==r&&t==f,E=0==p,D=!m||p==m.length-1;if(y.top-v.top<=3){var C=(c?x:b)&&D,w=(c?b:x)&&E?s:(g?v:y).left,S=C?u:(g?y:v).right;l(w,v.top,S-w,v.bottom)}else{var k,A,T,_;g?(k=c&&b&&E?s:v.left,A=c?u:h(e,i,\"before\"),T=c?s:h(t,i,\"after\"),_=c&&x&&D?u:y.right):(k=c?h(e,i,\"before\"):s,A=!c&&b&&E?u:v.right,T=!c&&x&&D?s:y.left,_=c?h(t,i,\"after\"):u),l(k,v.top,A-k,v.bottom),v.bottom0?t.blinker=setInterval((function(){return t.cursorDiv.style.visibility=(n=!n)?\"\":\"hidden\"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility=\"hidden\")}}function Er(e){e.state.focused||(e.display.input.focus(),Cr(e))}function Dr(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,wr(e))}),100)}function Cr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),\"nocursor\"!=e.options.readOnly&&(e.state.focused||(he(e,\"focus\",e,t),e.state.focused=!0,I(e.display.wrapper,\"CodeMirror-focused\"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),u&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),xr(e))}function wr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(he(e,\"blur\",e,t),e.state.focused=!1,k(e.display.wrapper,\"CodeMirror-focused\")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Sr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r.005||f<-.005)&&(Je(i.line,u),kr(i.line),i.rest))for(var d=0;de.display.sizerWidth){var h=Math.ceil(c/rr(e.display));h>e.display.maxLineLength&&(e.display.maxLineLength=h,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function kr(e){if(e.widgets)for(var t=0;t=a&&(o=Qe(t,qt(We(t,u))-e.wrapper.clientHeight),a=u)}return{from:o,to:Math.max(a,o+1)}}function Tr(e,t){var n=e.display,r=nr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=An(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+Cn(n),u=t.tops-r;if(t.topi+o){var l=Math.min(t.top,(c?s:t.bottom)-o);l!=i&&(a.scrollTop=l)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,f=kn(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),d=t.right-t.left>f;return d&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.leftf+p-3&&(a.scrollLeft=t.right+(d?0:10)-f),a}function _r(e,t){null!=t&&(Nr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Or(e){Nr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Fr(e,t,n){null==t&&null==n||Nr(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Nr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Ir(e,Kn(e,t.from),Kn(e,t.to),t.margin))}function Ir(e,t,n,r){var i=Tr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Fr(e,i.scrollLeft,i.scrollTop)}function Mr(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||si(e,{top:t}),jr(e,t,!0),n&&si(e),ni(e,100))}function jr(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Lr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,li(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Pr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+Cn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Sn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Rr=function(e,t,n){this.cm=n;var r=this.vert=_(\"div\",[_(\"div\",null,null,\"min-width: 1px\")],\"CodeMirror-vscrollbar\"),i=this.horiz=_(\"div\",[_(\"div\",null,null,\"height: 100%; min-height: 1px\")],\"CodeMirror-hscrollbar\");r.tabIndex=i.tabIndex=-1,e(r),e(i),pe(r,\"scroll\",(function(){r.clientHeight&&t(r.scrollTop,\"vertical\")})),pe(i,\"scroll\",(function(){i.clientWidth&&t(i.scrollLeft,\"horizontal\")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth=\"18px\")};Rr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display=\"block\",this.vert.style.bottom=t?r+\"px\":\"0\";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+\"px\"}else this.vert.style.display=\"\",this.vert.firstChild.style.height=\"0\";if(t){this.horiz.style.display=\"block\",this.horiz.style.right=n?r+\"px\":\"0\",this.horiz.style.left=e.barLeft+\"px\";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+\"px\"}else this.horiz.style.display=\"\",this.horiz.firstChild.style.width=\"0\";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Rr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,\"horiz\")},Rr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,\"vert\")},Rr.prototype.zeroWidthHack=function(){var e=y&&!d?\"12px\":\"18px\";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents=\"none\",this.disableHoriz=new B,this.disableVert=new B},Rr.prototype.enableZeroWidthBar=function(e,t,n){e.style.pointerEvents=\"auto\",t.set(1e3,(function r(){var i=e.getBoundingClientRect();(\"vert\"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents=\"none\":t.set(1e3,r)}))},Rr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Br=function(){};function zr(e,t){t||(t=Pr(e));var n=e.display.barWidth,r=e.display.barHeight;Ur(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Sr(e),Ur(e,Pr(e)),n=e.display.barWidth,r=e.display.barHeight}function Ur(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+\"px\",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+\"px\",n.heightForcer.style.borderBottom=r.bottom+\"px solid transparent\",r.right&&r.bottom?(n.scrollbarFiller.style.display=\"block\",n.scrollbarFiller.style.height=r.bottom+\"px\",n.scrollbarFiller.style.width=r.right+\"px\"):n.scrollbarFiller.style.display=\"\",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display=\"block\",n.gutterFiller.style.height=r.bottom+\"px\",n.gutterFiller.style.width=t.gutterWidth+\"px\"):n.gutterFiller.style.display=\"\"}Br.prototype.update=function(){return{bottom:0,right:0}},Br.prototype.setScrollLeft=function(){},Br.prototype.setScrollTop=function(){},Br.prototype.clear=function(){};var qr={native:Rr,null:Br};function Vr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&k(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new qr[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),pe(t,\"mousedown\",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute(\"cm-not-content\",\"true\")}),(function(t,n){\"horizontal\"==n?Lr(e,t):Mr(e,t)}),e),e.display.scrollbars.addClass&&I(e.display.wrapper,e.display.scrollbars.addClass)}var Hr=0;function Wr(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Hr},t=e.curOp,on?on.ops.push(t):t.ownsGroup=on={ops:[t],delayedCallbacks:[]}}function Gr(e){var t=e.curOp;t&&function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ii(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Jr(e){e.updatedDisplay=e.mustUpdate&&oi(e.cm,e.update)}function Yr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Sr(t),e.barMeasure=Pr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=_n(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Sn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-kn(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Qr(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+\"px\",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!h){var o=_(\"div\",\"\\u200b\",null,\"position: absolute;\\n top: \"+(t.top-n.viewOffset-Dn(e.display))+\"px;\\n height: \"+(t.bottom-t.top+Sn(e)+n.barHeight)+\"px;\\n left: \"+t.left+\"px; width: \"+Math.max(2,t.right-t.left)+\"px;\");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n=\"before\"==(t=t.ch?Ze(t.line,\"before\"==t.sticky?t.ch-1:t.ch,\"after\"):t).sticky?Ze(t.line,t.ch+1,\"before\"):t);for(var o=0;o<5;o++){var a=!1,s=Gn(e,t),u=n&&n!=t?Gn(e,n):s,c=Tr(e,i={left:Math.min(s.left,u.left),top:Math.min(s.top,u.top)-r,right:Math.max(s.left,u.left),bottom:Math.max(s.bottom,u.bottom)+r}),l=e.doc.scrollTop,p=e.doc.scrollLeft;if(null!=c.scrollTop&&(Mr(e,c.scrollTop),Math.abs(e.doc.scrollTop-l)>1&&(a=!0)),null!=c.scrollLeft&&(Lr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-p)>1&&(a=!0)),!a)break}return i}(t,at(r,e.scrollToPos.from),at(r,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a=e.display.viewTo)){var n=+new Date+e.options.workTime,r=ft(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Ue(t.mode,r.state):null,u=lt(e,o,r,!0);s&&(r.state=s),o.styles=u.styles;var c=o.styleClasses,l=u.classes;l?o.styleClasses=l:c&&(o.styleClasses=null);for(var p=!a||a.length!=o.styles.length||c!=l&&(!c||!l||c.bgClass!=l.bgClass||c.textClass!=l.textClass),f=0;!p&&fn)return ni(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Xr(e,(function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==hr(e))return!1;pi(e)&&(fr(e),t.dims=ir(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Et&&(o=Rt(e.doc,o),a=Bt(e.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=rn(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=rn(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,cr(e,n)))),r.viewTo=n}(e,o,a),n.viewOffset=qt(We(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+\"px\";var c=hr(e);if(!s&&0==c&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var l=function(e){if(e.hasFocus())return null;var t=N();if(!t||!F(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&F(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return c>4&&(n.lineDiv.style.display=\"none\"),function(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(t){var n=t.nextSibling;return u&&y&&e.display.currentWheelTarget==t?t.style.display=\"none\":t.parentNode.removeChild(t),n}for(var c=r.view,l=r.viewFrom,p=0;p-1&&(d=!1),cn(e,f,l,n)),d&&(A(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(Xe(e.options,l)))),a=f.node.nextSibling}else{var h=gn(e,f,l,n);o.insertBefore(h,a)}l+=f.size}for(;a;)a=s(a)}(e,n.updateLineNumbers,t.dims),c>4&&(n.lineDiv.style.display=\"\"),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=N()&&(e.activeElt.focus(),e.anchorNode&&F(document.body,e.anchorNode)&&F(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(l),A(n.cursorDiv),A(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,ni(e,400)),n.updateLineNumbers=null,!0}function ai(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=kn(e))r&&(t.visible=Ar(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+Cn(e.display)-An(e),n.top)}),t.visible=Ar(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!oi(e,t))break;Sr(e);var i=Pr(e);mr(e),zr(e,i),ci(e,i),t.force=!1}t.signal(e,\"update\",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,\"viewportChange\",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function si(e,t){var n=new ii(e,t);if(oi(e,n)){Sr(e),ai(e,n);var r=Pr(e);mr(e),zr(e,r),ci(e,r),n.finish()}}function ui(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+\"px\"}function ci(e,t){e.display.sizer.style.minHeight=t.docHeight+\"px\",e.display.heightForcer.style.top=t.docHeight+\"px\",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Sn(e)+\"px\"}function li(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=or(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+\"px\",a=0;as.clientWidth,l=s.scrollHeight>s.clientHeight;if(i&&c||o&&l){if(o&&y&&u)e:for(var f=t.target,d=a.view;f!=s;f=f.parentNode)for(var h=0;h=0&&et(e,r.to())<=0)return n}return-1};var Di=function(e,t){this.anchor=e,this.head=t};function Ci(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return et(e.from(),t.from())})),n=z(t,i);for(var o=1;o0:u>=0){var c=it(s.from(),a.from()),l=rt(s.to(),a.to()),p=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,t.splice(--o,2,new Di(p?l:c,p?c:l))}}return new Ei(t,n)}function wi(e,t){return new Ei([new Di(e,t||e)],0)}function Si(e){return e.text?Ze(e.from.line+e.text.length-1,J(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function ki(e,t){if(et(e,t.from)<0)return e;if(et(e,t.to)<=0)return Si(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Si(t).ch-t.to.ch),Ze(n,r)}function Ai(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,h-1),e.insert(s.line+1,v)}sn(e,\"change\",e,t)}function Ii(e,t,n){!function e(r,i,o){if(r.linked)for(var a=0;as-(e.cm?e.cm.options.historyEventDelay:500)||\"*\"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Ri(e.done),J(e.done)):e.done.length&&!J(e.done).ranges?J(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),J(e.done)):void 0}(i,i.lastOp==r)))a=J(o.changes),0==et(t.from,t.to)&&0==et(t.from,a.to)?a.to=Si(t):o.changes.push(Pi(e,t));else{var u=J(i.done);for(u&&u.ranges||Ui(e.sel,i.done),o={changes:[Pi(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||he(e,\"historyAdded\")}function zi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,n,r){var i=t.charAt(0);return\"*\"==i||\"+\"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,J(i.done),t))?i.done[i.done.length-1]=t:Ui(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Ri(i.undone)}function Ui(e,t){var n=J(t);n&&n.ranges&&n.equals(e)||t.push(e)}function qi(e,t,n,r){var i=t[\"spans_\"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t[\"spans_\"+e.id]={}))[o]=n.markedSpans),++o}))}function Vi(e){if(!e)return null;for(var t,n=0;n-1&&(J(s)[p]=c[p],delete c[p])}}}return r}function Gi(e,t,n,r){if(r){var i=e.anchor;if(n){var o=et(t,i)<0;o!=et(n,i)<0?(i=t,t=n):o!=et(t,n)<0&&(t=n)}return new Di(i,t)}return new Di(n||t,t)}function Ki(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Xi(e,new Ei([Gi(e.sel.primary(),t,n,i)],0),r)}function Ji(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(he(u,\"beforeCursorEnter\"),u.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!u.atomic)continue;if(n){var p=u.find(r<0?1:-1),f=void 0;if((r<0?l:c)&&(p=oo(e,p,-r,p&&p.line==t.line?o:null)),p&&p.line==t.line&&(f=et(p,n))&&(r<0?f<0:f>0))return ro(e,p,t,r,i)}var d=u.find(r<0?-1:1);return(r<0?c:l)&&(d=oo(e,d,r,d.line==t.line?o:null)),d?ro(e,d,t,r,i):null}}return t}function io(e,t,n,r,i){var o=r||1,a=ro(e,t,n,o,i)||!i&&ro(e,t,n,o,!0)||ro(e,t,n,-o,i)||!i&&ro(e,t,n,-o,!0);return a||(e.cantEdit=!0,Ze(e.first,0))}function oo(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?at(e,Ze(t.line-1)):null:n>0&&t.ch==(r||We(e,t.line)).text.length?t.line0)){var l=[u,1],p=et(c.from,s.from),f=et(c.to,s.to);(p<0||!a.inclusiveLeft&&!p)&&l.push({from:c.from,to:s.from}),(f>0||!a.inclusiveRight&&!f)&&l.push({from:s.to,to:c.to}),i.splice.apply(i,l),u+=l.length-3}}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)co(e,{from:r[i].from,to:r[i].to,text:i?[\"\"]:t.text,origin:t.origin});else co(e,t)}}function co(e,t){if(1!=t.text.length||\"\"!=t.text[0]||0!=et(t.from,t.to)){var n=Ai(e,t);Bi(e,t,n,e.cm?e.cm.curOp.id:NaN),fo(e,t,n,St(e,t));var r=[];Ii(e,(function(e,n){n||-1!=z(r,e.history)||(vo(e.history,t),r.push(e.history)),fo(e,t,null,St(e,t))}))}}function lo(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,s=\"undo\"==t?o.done:o.undone,u=\"undo\"==t?o.undone:o.done,c=0;c=0;--d){var h=f(d);if(h)return h.v}}}}function po(e,t){if(0!=t&&(e.first+=t,e.sel=new Ei(Y(e.sel.ranges,(function(e){return new Di(Ze(e.anchor.line+t,e.anchor.ch),Ze(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){lr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:Ze(o,We(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ge(e,t.from,t.to),n||(n=Ai(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,u=o.line;e.options.lineWrapping||(u=Ye(Pt(We(r,o.line))),r.iter(u,a.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),r.sel.contains(t.from,t.to)>-1&&ge(e),Ni(r,t,n,ar(e)),e.options.lineWrapping||(r.iter(u,o.line+t.text.length,(function(e){var t=Vt(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=We(e,r).stateAfter;if(i&&(!(i instanceof ut)||r+i.lookAhead1||!(this.children[0]instanceof bo))){var s=[];this.collapse(s),this.children=[new bo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,s=a;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=O(\"span\",[o.replacedWith],\"CodeMirror-widget\"),r.handleMouseEvents||o.widgetNode.setAttribute(\"cm-ignore-events\",\"true\"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Lt(e,t.line,t,n,o)||t.line!=n.line&&Lt(e,n.line,t,n,o))throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");Et=!0}o.addToHistory&&Bi(e,{from:t,to:n,origin:\"markText\"},e.sel,NaN);var s,u=t.line,c=e.cm;if(e.iter(u,n.line+1,(function(e){c&&o.collapsed&&!c.options.lineWrapping&&Pt(e)==c.display.maxLine&&(s=!0),o.collapsed&&u!=t.line&&Je(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new Dt(o,u==t.line?t.ch:null,u==n.line?n.ch:null)),++u})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){zt(e,t)&&Je(t,0)})),o.clearOnEnter&&pe(o,\"beforeCursorEnter\",(function(){return o.clear()})),o.readOnly&&(xt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++Co,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)lr(c,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var l=t.line;l<=n.line;l++)pr(c,l,\"text\");o.atomic&&to(c.doc),sn(c,\"markerAdded\",c,o)}return o}wo.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Wr(e),ve(this,\"clear\")){var n=this.find();n&&sn(this,\"clear\",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=l,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&lr(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&to(e.doc)),e&&sn(e,\"markerCleared\",e,this,r,i),t&&Gr(e),this.parent&&this.parent.clear()}},wo.prototype.find=function(e,t){var n,r;null==e&&\"bookmark\"==this.type&&(e=1);for(var i=0;i=0;u--)uo(this,r[u]);s?$i(this,s):this.cm&&Or(this.cm)})),undo:ti((function(){lo(this,\"undo\")})),redo:ti((function(){lo(this,\"redo\")})),undoSelection:ti((function(){lo(this,\"undo\",!0)})),redoSelection:ti((function(){lo(this,\"redo\",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=at(this,e),t=at(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=u.to||null==u.from&&i!=e.line||null!=u.from&&i==t.line&&u.from>=t.ch||n&&!n(u.marker)||r.push(u.marker.parent||u.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n})),at(this,Ze(n,t))},indexFromPos:function(e){var t=(e=at(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var p=e.dataTransfer.getData(\"Text\");if(p){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),Zi(t.doc,wi(n,n)),f)for(var d=0;d=0;t--)ho(e.doc,\"\",r[t].from,r[t].to,\"+delete\");Or(e)}))}function $o(e,t,n){var r=ie(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Xo(e,t,n){var r=$o(e,t.ch,n);return null==r?null:new Ze(t.line,r,n<0?\"after\":\"before\")}function Zo(e,t,n,r,i){if(e){\"rtl\"==t.doc.direction&&(i=-i);var o=ce(n,t.doc.direction);if(o){var a,s=i<0?J(o):o[0],u=i<0==(1==s.level)?\"after\":\"before\";if(s.level>0||\"rtl\"==t.doc.direction){var c=Fn(t,n);a=i<0?n.text.length-1:0;var l=Nn(t,c,a).top;a=oe((function(e){return Nn(t,c,e).top==l}),i<0==(1==s.level)?s.from:s.to-1,a),\"before\"==u&&(a=$o(n,a,1))}else a=i<0?s.to:s.from;return new Ze(r,a,u)}}return new Ze(r,i<0?n.text.length:0,i<0?\"before\":\"after\")}qo.basic={Left:\"goCharLeft\",Right:\"goCharRight\",Up:\"goLineUp\",Down:\"goLineDown\",End:\"goLineEnd\",Home:\"goLineStartSmart\",PageUp:\"goPageUp\",PageDown:\"goPageDown\",Delete:\"delCharAfter\",Backspace:\"delCharBefore\",\"Shift-Backspace\":\"delCharBefore\",Tab:\"defaultTab\",\"Shift-Tab\":\"indentAuto\",Enter:\"newlineAndIndent\",Insert:\"toggleOverwrite\",Esc:\"singleSelection\"},qo.pcDefault={\"Ctrl-A\":\"selectAll\",\"Ctrl-D\":\"deleteLine\",\"Ctrl-Z\":\"undo\",\"Shift-Ctrl-Z\":\"redo\",\"Ctrl-Y\":\"redo\",\"Ctrl-Home\":\"goDocStart\",\"Ctrl-End\":\"goDocEnd\",\"Ctrl-Up\":\"goLineUp\",\"Ctrl-Down\":\"goLineDown\",\"Ctrl-Left\":\"goGroupLeft\",\"Ctrl-Right\":\"goGroupRight\",\"Alt-Left\":\"goLineStart\",\"Alt-Right\":\"goLineEnd\",\"Ctrl-Backspace\":\"delGroupBefore\",\"Ctrl-Delete\":\"delGroupAfter\",\"Ctrl-S\":\"save\",\"Ctrl-F\":\"find\",\"Ctrl-G\":\"findNext\",\"Shift-Ctrl-G\":\"findPrev\",\"Shift-Ctrl-F\":\"replace\",\"Shift-Ctrl-R\":\"replaceAll\",\"Ctrl-[\":\"indentLess\",\"Ctrl-]\":\"indentMore\",\"Ctrl-U\":\"undoSelection\",\"Shift-Ctrl-U\":\"redoSelection\",\"Alt-U\":\"redoSelection\",fallthrough:\"basic\"},qo.emacsy={\"Ctrl-F\":\"goCharRight\",\"Ctrl-B\":\"goCharLeft\",\"Ctrl-P\":\"goLineUp\",\"Ctrl-N\":\"goLineDown\",\"Alt-F\":\"goWordRight\",\"Alt-B\":\"goWordLeft\",\"Ctrl-A\":\"goLineStart\",\"Ctrl-E\":\"goLineEnd\",\"Ctrl-V\":\"goPageDown\",\"Shift-Ctrl-V\":\"goPageUp\",\"Ctrl-D\":\"delCharAfter\",\"Ctrl-H\":\"delCharBefore\",\"Alt-D\":\"delWordAfter\",\"Alt-Backspace\":\"delWordBefore\",\"Ctrl-K\":\"killLine\",\"Ctrl-T\":\"transposeChars\",\"Ctrl-O\":\"openLine\"},qo.macDefault={\"Cmd-A\":\"selectAll\",\"Cmd-D\":\"deleteLine\",\"Cmd-Z\":\"undo\",\"Shift-Cmd-Z\":\"redo\",\"Cmd-Y\":\"redo\",\"Cmd-Home\":\"goDocStart\",\"Cmd-Up\":\"goDocStart\",\"Cmd-End\":\"goDocEnd\",\"Cmd-Down\":\"goDocEnd\",\"Alt-Left\":\"goGroupLeft\",\"Alt-Right\":\"goGroupRight\",\"Cmd-Left\":\"goLineLeft\",\"Cmd-Right\":\"goLineRight\",\"Alt-Backspace\":\"delGroupBefore\",\"Ctrl-Alt-Backspace\":\"delGroupAfter\",\"Alt-Delete\":\"delGroupAfter\",\"Cmd-S\":\"save\",\"Cmd-F\":\"find\",\"Cmd-G\":\"findNext\",\"Shift-Cmd-G\":\"findPrev\",\"Cmd-Alt-F\":\"replace\",\"Shift-Cmd-Alt-F\":\"replaceAll\",\"Cmd-[\":\"indentLess\",\"Cmd-]\":\"indentMore\",\"Cmd-Backspace\":\"delWrappedLineLeft\",\"Cmd-Delete\":\"delWrappedLineRight\",\"Cmd-U\":\"undoSelection\",\"Shift-Cmd-U\":\"redoSelection\",\"Ctrl-Up\":\"goDocStart\",\"Ctrl-Down\":\"goDocEnd\",fallthrough:[\"basic\",\"emacsy\"]},qo.default=y?qo.macDefault:qo.pcDefault;var ea={selectAll:ao,singleSelection:function(e){return e.setSelection(e.getCursor(\"anchor\"),e.getCursor(\"head\"),q)},killLine:function(e){return Qo(e,(function(t){if(t.empty()){var n=We(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new Ze(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),Ze(i.line,i.ch-2),i,\"+transpose\");else if(i.line>e.doc.first){var a=We(e.doc,i.line-1).text;a&&(i=new Ze(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),Ze(i.line-1,a.length-1),i,\"+transpose\"))}n.push(new Di(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return Xr(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,\"+input\");t=e.listSelections();for(var r=0;r-1&&(et((i=c.ranges[i]).from(),t)<0||t.xRel>0)&&(et(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,c=Zr(e,(function(t){u&&(i.scroller.draggable=!1),e.state.draggingText=!1,de(i.wrapper.ownerDocument,\"mouseup\",c),de(i.wrapper.ownerDocument,\"mousemove\",l),de(i.scroller,\"dragstart\",p),de(i.scroller,\"drop\",c),o||(be(t),r.addNew||Ki(e.doc,n,null,null,r.extend),u||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus(),i.input.focus()}),20):i.input.focus())})),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},p=function(){return o=!0};u&&(i.scroller.draggable=!0),e.state.draggingText=c,c.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),pe(i.wrapper.ownerDocument,\"mouseup\",c),pe(i.wrapper.ownerDocument,\"mousemove\",l),pe(i.scroller,\"dragstart\",p),pe(i.scroller,\"drop\",c),Dr(e),setTimeout((function(){return i.input.focus()}),20)}(e,r,t,o):function(e,t,n,r){var i=e.display,o=e.doc;be(t);var a,s,u=o.sel,c=u.ranges;if(r.addNew&&!r.extend?(s=o.sel.contains(n),a=s>-1?c[s]:new Di(n,n)):(a=o.sel.primary(),s=o.sel.primIndex),\"rectangle\"==r.unit)r.addNew||(a=new Di(n,n)),n=ur(e,t,!0,!0),s=-1;else{var l=ga(e,n,r.unit);a=r.extend?Gi(a,l.anchor,l.head,r.extend):l}r.addNew?-1==s?(s=c.length,Xi(o,Ci(e,c.concat([a]),s),{scroll:!1,origin:\"*mouse\"})):c.length>1&&c[s].empty()&&\"char\"==r.unit&&!r.extend?(Xi(o,Ci(e,c.slice(0,s).concat(c.slice(s+1)),0),{scroll:!1,origin:\"*mouse\"}),u=o.sel):Yi(o,s,a,V):(s=0,Xi(o,new Ei([a],0),V),u=o.sel);var p=n;function f(t){if(0!=et(p,t))if(p=t,\"rectangle\"==r.unit){for(var i=[],c=e.options.tabSize,l=R(We(o,n.line).text,n.ch,c),f=R(We(o,t.line).text,t.ch,c),d=Math.min(l,f),h=Math.max(l,f),m=Math.min(n.line,t.line),g=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=g;m++){var v=We(o,m).text,y=W(v,d,c);d==h?i.push(new Di(Ze(m,y),Ze(m,y))):v.length>y&&i.push(new Di(Ze(m,y),Ze(m,W(v,h,c))))}i.length||i.push(new Di(n,n)),Xi(o,Ci(e,u.ranges.slice(0,s).concat(i),s),{origin:\"*mouse\",scroll:!1}),e.scrollIntoView(t)}else{var b,x=a,E=ga(e,t,r.unit),D=x.anchor;et(E.anchor,D)>0?(b=E.head,D=it(x.from(),E.anchor)):(b=E.anchor,D=rt(x.to(),E.head));var C=u.ranges.slice(0);C[s]=function(e,t){var n=t.anchor,r=t.head,i=We(e.doc,n.line);if(0==et(n,r)&&n.sticky==r.sticky)return t;var o=ce(i);if(!o)return t;var a=se(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return t;var u,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(r.line!=n.line)u=(r.line-n.line)*(\"ltr\"==e.doc.direction?1:-1)>0;else{var l=se(o,r.ch,r.sticky),p=l-a||(r.ch-n.ch)*(1==s.level?-1:1);u=l==c-1||l==c?p<0:p>0}var f=o[c+(u?-1:0)],d=u==(1==f.level),h=d?f.from:f.to,m=d?\"after\":\"before\";return n.ch==h&&n.sticky==m?t:new Di(new Ze(n.line,h,m),r)}(e,new Di(at(o,D),b)),Xi(o,Ci(e,C,s),V)}}var d=i.wrapper.getBoundingClientRect(),h=0;function m(t){e.state.selectingText=!1,h=1/0,t&&(be(t),i.input.focus()),de(i.wrapper.ownerDocument,\"mousemove\",g),de(i.wrapper.ownerDocument,\"mouseup\",v),o.history.lastSelOrigin=null}var g=Zr(e,(function(t){0!==t.buttons&&we(t)?function t(n){var a=++h,s=ur(e,n,!0,\"rectangle\"==r.unit);if(s)if(0!=et(s,p)){e.curOp.focus=N(),f(s);var u=Ar(i,o);(s.line>=u.to||s.lined.bottom?20:0;c&&setTimeout(Zr(e,(function(){h==a&&(i.scroller.scrollTop+=c,t(n))})),50)}}(t):m(t)})),v=Zr(e,m);e.state.selectingText=v,pe(i.wrapper.ownerDocument,\"mousemove\",g),pe(i.wrapper.ownerDocument,\"mouseup\",v)}(e,r,t,o)}(t,r,o,e):Ce(e)==n.scroller&&be(e):2==i?(r&&Ki(t.doc,r),setTimeout((function(){return n.input.focus()}),20)):3==i&&(C?t.display.input.onContextMenu(e):Dr(t)))}}function ga(e,t,n){if(\"char\"==n)return new Di(t,t);if(\"word\"==n)return e.findWordAt(t);if(\"line\"==n)return new Di(Ze(t.line,0),at(e.doc,Ze(t.line+1,0)));var r=n(e,t);return new Di(r.from,r.to)}function va(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&be(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!ve(e,n))return Ee(t);o-=s.top-a.viewOffset;for(var u=0;u=i)return he(e,n,e,Qe(e.doc,o),e.display.gutterSpecs[u].className,t),Ee(t)}}function ya(e,t){return va(e,t,\"gutterClick\",!0)}function ba(e,t){En(e.display,t)||function(e,t){return!!ve(e,\"gutterContextMenu\")&&va(e,t,\"gutterContextMenu\",!1)}(e,t)||me(e,t,\"contextmenu\")||C||e.display.input.onContextMenu(t)}function xa(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\\s*cm-s-\\S+/g,\"\")+e.options.theme.replace(/(^|\\s)\\s*/g,\" cm-s-\"),Bn(e)}ha.prototype.compare=function(e,t,n){return this.time+400>e&&0==et(t,this.pos)&&n==this.button};var Ea={toString:function(){return\"CodeMirror.Init\"}},Da={},Ca={};function wa(e,t,n){if(!t!=!(n&&n!=Ea)){var r=e.display.dragFunctions,i=t?pe:de;i(e.display.scroller,\"dragstart\",r.start),i(e.display.scroller,\"dragenter\",r.enter),i(e.display.scroller,\"dragover\",r.over),i(e.display.scroller,\"dragleave\",r.leave),i(e.display.scroller,\"drop\",r.drop)}}function Sa(e){e.options.lineWrapping?(I(e.display.wrapper,\"CodeMirror-wrap\"),e.display.sizer.style.minWidth=\"\",e.display.sizerWidth=null):(k(e.display.wrapper,\"CodeMirror-wrap\"),Ht(e)),sr(e),lr(e),Bn(e),setTimeout((function(){return zr(e)}),100)}function ka(e,t){var n=this;if(!(this instanceof ka))return new ka(e,t);this.options=t=t?P(t):{},P(Da,t,!1);var r=t.value;\"string\"==typeof r?r=new Oo(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new ka.inputStyles[t.inputStyle](this),o=this.display=new mi(e,r,i,t);for(var c in o.wrapper.CodeMirror=this,xa(this),t.lineWrapping&&(this.display.wrapper.className+=\" CodeMirror-wrap\"),Vr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new B,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),function(e){var t=e.display;pe(t.scroller,\"mousedown\",Zr(e,ma)),pe(t.scroller,\"dblclick\",a&&s<11?Zr(e,(function(t){if(!me(e,t)){var n=ur(e,t);if(n&&!ya(e,t)&&!En(e.display,t)){be(t);var r=e.findWordAt(n);Ki(e.doc,r.anchor,r.head)}}})):function(t){return me(e,t)||be(t)}),pe(t.scroller,\"contextmenu\",(function(t){return ba(e,t)})),pe(t.input.getField(),\"contextmenu\",(function(n){t.scroller.contains(n.target)||ba(e,n)}));var n,r={end:0};function i(){t.activeTouch&&(n=setTimeout((function(){return t.activeTouch=null}),1e3),(r=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}pe(t.scroller,\"touchstart\",(function(i){if(!me(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!ya(e,i)){t.input.ensurePolled(),clearTimeout(n);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),pe(t.scroller,\"touchmove\",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),pe(t.scroller,\"touchend\",(function(n){var r=t.activeTouch;if(r&&!En(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var a,s=e.coordsChar(t.activeTouch,\"page\");a=!r.prev||o(r,r.prev)?new Di(s,s):!r.prev.prev||o(r,r.prev.prev)?e.findWordAt(s):new Di(Ze(s.line,0),at(e.doc,Ze(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),be(n)}i()})),pe(t.scroller,\"touchcancel\",i),pe(t.scroller,\"scroll\",(function(){t.scroller.clientHeight&&(Mr(e,t.scroller.scrollTop),Lr(e,t.scroller.scrollLeft,!0),he(e,\"scroll\",e))})),pe(t.scroller,\"mousewheel\",(function(t){return xi(e,t)})),pe(t.scroller,\"DOMMouseScroll\",(function(t){return xi(e,t)})),pe(t.wrapper,\"scroll\",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){me(e,t)||De(t)},over:function(t){me(e,t)||(function(e,t){var n=ur(e,t);if(n){var r=document.createDocumentFragment();vr(e,n,r),e.display.dragCursor||(e.display.dragCursor=_(\"div\",null,\"CodeMirror-cursors CodeMirror-dragcursors\"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),T(e.display.dragCursor,r)}}(e,t),De(t))},start:function(t){return function(e,t){if(a&&(!e.state.draggingText||+new Date-Fo<100))De(t);else if(!me(e,t)&&!En(e.display,t)&&(t.dataTransfer.setData(\"Text\",e.getSelection()),t.dataTransfer.effectAllowed=\"copyMove\",t.dataTransfer.setDragImage&&!f)){var n=_(\"img\",null,null,\"position: fixed; left: 0; top: 0;\");n.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",p&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),p&&n.parentNode.removeChild(n)}}(e,t)},drop:Zr(e,No),leave:function(t){me(e,t)||Io(e)}};var u=t.input.getField();pe(u,\"keyup\",(function(t){return la.call(e,t)})),pe(u,\"keydown\",Zr(e,ca)),pe(u,\"keypress\",Zr(e,pa)),pe(u,\"focus\",(function(t){return Cr(e,t)})),pe(u,\"blur\",(function(t){return wr(e,t)}))}(this),Lo(),Wr(this),this.curOp.forceUpdate=!0,Mi(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout(L(Cr,this),20):wr(this),Ca)Ca.hasOwnProperty(c)&&Ca[c](this,t[c],Ea);pi(this),t.finishInit&&t.finishInit(this);for(var l=0;l150)){if(!r)return;n=\"prev\"}}else c=0,n=\"not\";\"prev\"==n?c=t>o.first?R(We(o,t-1).text,null,a):0:\"add\"==n?c=u+e.options.indentUnit:\"subtract\"==n?c=u-e.options.indentUnit:\"number\"==typeof n&&(c=u+n),c=Math.max(0,c);var p=\"\",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)f+=a,p+=\"\\t\";if(fa,u=Oe(t),c=null;if(s&&r.ranges.length>1)if(_a&&_a.text.join(\"\\n\")==t){if(r.ranges.length%_a.text.length==0){c=[];for(var l=0;l<_a.text.length;l++)c.push(o.splitLines(_a.text[l]))}}else u.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(c=Y(u,(function(e){return[e]})));for(var p=e.curOp.updateInput,f=r.ranges.length-1;f>=0;f--){var d=r.ranges[f],h=d.from(),m=d.to();d.empty()&&(n&&n>0?h=Ze(h.line,h.ch-n):e.state.overwrite&&!s?m=Ze(m.line,Math.min(We(o,m.line).text.length,m.ch+J(u).length)):s&&_a&&_a.lineWise&&_a.text.join(\"\\n\")==t&&(h=m=Ze(h.line,0)));var g={from:h,to:m,text:c?c[f%c.length]:u,origin:i||(s?\"paste\":e.state.cutIncoming>a?\"cut\":\"+input\")};uo(e.doc,g),sn(e,\"inputRead\",e,g)}t&&!s&&Ia(e,t),Or(e),e.curOp.updateInput<2&&(e.curOp.updateInput=p),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Na(e,t){var n=e.clipboardData&&e.clipboardData.getData(\"Text\");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Xr(t,(function(){return Fa(t,n,0,null,\"paste\")})),!0}function Ia(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Ta(e,i.head.line,\"smart\");break}}else o.electricInput&&o.electricInput.test(We(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ta(e,i.head.line,\"smart\"));a&&sn(e,\"electricInput\",e,i.head.line)}}}function Ma(e){for(var t=[],n=[],r=0;r=t.text.length?(n.ch=t.text.length,n.sticky=\"before\"):n.ch<=0&&(n.ch=0,n.sticky=\"after\");var o=se(i,n.ch,n.sticky),a=i[o];if(\"ltr\"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&f>=l.begin)){var d=p?\"before\":\"after\";return new Ze(n.line,f,d)}}var h=function(e,t,r){for(var o=function(e,t){return t?new Ze(n.line,u(e,1),\"before\"):new Ze(n.line,e,\"after\")};e>=0&&e0==(1!=a.level),c=s?r.begin:u(r.end,-1);if(a.from<=c&&c0?l.end:u(l.begin,-1);return null==g||r>0&&g==t.text.length||!(m=h(r>0?0:i.length-1,r,c(g)))?null:m}(e.cm,s,t,n):Xo(s,t,n))){if(r||!function(){var n=t.line+u;return!(n=e.first+e.size)&&(t=new Ze(n,t.ch,t.sticky),s=We(e,n))}())return!1;t=Zo(i,e.cm,s,t.line,u)}else t=o;return!0}if(\"char\"==r)c();else if(\"column\"==r)c(!0);else if(\"word\"==r||\"group\"==r)for(var l=null,p=\"group\"==r,f=e.cm&&e.cm.getHelper(t,\"wordChars\"),d=!0;!(n<0)||c(!d);d=!1){var h=s.text.charAt(t.ch)||\"\\n\",m=ee(h,f)?\"w\":p&&\"\\n\"==h?\"n\":!p||/\\s/.test(h)?null:\"p\";if(!p||d||m||(m=\"s\"),l&&l!=m){n<0&&(n=1,c(),t.sticky=\"after\");break}if(m&&(l=m),n>0&&!c(!d))break}var g=io(e,t,o,a,!0);return tt(o,g)&&(g.hitSide=!0),g}function Ra(e,t,n,r){var i,o,a=e.doc,s=t.left;if(\"page\"==r){var u=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(u-.5*nr(e.display),3);i=(n>0?t.bottom:t.top)+n*c}else\"line\"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=Yn(e,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Ba=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new B,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function za(e,t){var n=On(e,t.line);if(!n||n.hidden)return null;var r=We(e.doc,t.line),i=Tn(n,r,t.line),o=ce(r,e.doc.direction),a=\"left\";o&&(a=se(o,t.ch)%2?\"right\":\"left\");var s=jn(i.map,t.ch,a);return s.offset=\"right\"==s.collapse?s.end:s.start,s}function Ua(e,t){return t&&(e.bad=!0),e}function qa(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Ua(e.clipPos(Ze(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&za(t,i)||{node:u[0].measure.map[2],offset:0},l=o.liner.firstLine()&&(a=Ze(a.line-1,We(r.doc,a.line-1).length)),s.ch==We(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=cr(r,a.line))?(t=Ye(i.view[0].line),n=i.view[0].node):(t=Ye(i.view[e].line),n=i.view[e-1].node.nextSibling);var u,c,l=cr(r,s.line);if(l==i.view.length-1?(u=i.viewTo-1,c=i.lineDiv.lastChild):(u=Ye(i.view[l+1].line)-1,c=i.view[l+1].node.previousSibling),!n)return!1;for(var p=r.doc.splitLines(function(e,t,n,r,i){var o=\"\",a=!1,s=e.doc.lineSeparator(),u=!1;function c(){a&&(o+=s,u&&(o+=s),a=u=!1)}function l(e){e&&(c(),o+=e)}function p(t){if(1==t.nodeType){var n=t.getAttribute(\"cm-text\");if(n)return void l(n);var o,f=t.getAttribute(\"cm-marker\");if(f){var d=e.findMarks(Ze(r,0),Ze(i+1,0),(g=+f,function(e){return e.id==g}));return void(d.length&&(o=d[0].find(0))&&l(Ge(e.doc,o.from,o.to).join(s)))}if(\"false\"==t.getAttribute(\"contenteditable\"))return;var h=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;h&&c();for(var m=0;m1&&f.length>1;)if(J(p)==J(f))p.pop(),f.pop(),u--;else{if(p[0]!=f[0])break;p.shift(),f.shift(),t++}for(var d=0,h=0,m=p[0],g=f[0],v=Math.min(m.length,g.length);da.ch&&y.charCodeAt(y.length-h-1)==b.charCodeAt(b.length-h-1);)d--,h++;p[p.length-1]=y.slice(0,y.length-h).replace(/^\\u200b+/,\"\"),p[0]=p[0].slice(d).replace(/\\u200b+$/,\"\");var E=Ze(t,d),D=Ze(u,f.length?J(f).length-h:0);return p.length>1||p[0]||et(E,D)?(ho(r.doc,p,E,D,\"+input\"),!0):void 0},Ba.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ba.prototype.reset=function(){this.forceCompositionEnd()},Ba.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ba.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Ba.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Xr(this.cm,(function(){return lr(e.cm)}))},Ba.prototype.setUneditable=function(e){e.contentEditable=\"false\"},Ba.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Zr(this.cm,Fa)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ba.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(\"nocursor\"!=e)},Ba.prototype.onContextMenu=function(){},Ba.prototype.resetPosition=function(){},Ba.prototype.needsContentAttribute=!0;var Ha=function(e){this.cm=e,this.prevInput=\"\",this.pollingFast=!1,this.polling=new B,this.hasSelection=!1,this.composing=null};Ha.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!me(r,e)){if(r.somethingSelected())Oa({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Ma(r);Oa({lineWise:!0,text:t.text}),\"cut\"==e.type?r.setSelections(t.ranges,null,q):(n.prevInput=\"\",i.value=t.text.join(\"\\n\"),j(i))}\"cut\"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width=\"0px\"),pe(i,\"input\",(function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),pe(i,\"paste\",(function(e){me(r,e)||Na(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pe(i,\"cut\",o),pe(i,\"copy\",o),pe(e.scroller,\"paste\",(function(t){if(!En(e,t)&&!me(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event(\"paste\");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),pe(e.lineSpace,\"selectstart\",(function(t){En(e,t)||be(t)})),pe(i,\"compositionstart\",(function(){var e=r.getCursor(\"from\");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor(\"to\"),{className:\"CodeMirror-composing\"})}})),pe(i,\"compositionend\",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},Ha.prototype.createField=function(e){this.wrapper=La(),this.textarea=this.wrapper.firstChild},Ha.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute(\"aria-label\",e):this.textarea.removeAttribute(\"aria-label\")},Ha.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=gr(e);if(e.options.moveInputWithCursor){var i=Gn(e,n.sel.primary().head,\"div\"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Ha.prototype.showSelection=function(e){var t=this.cm.display;T(t.cursorDiv,e.cursors),T(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+\"px\",this.wrapper.style.left=e.teLeft+\"px\")},Ha.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput=\"\";var n=t.getSelection();this.textarea.value=n,t.state.focused&&j(this.textarea),a&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value=\"\",a&&s>=9&&(this.hasSelection=null))}},Ha.prototype.getField=function(){return this.textarea},Ha.prototype.supportsTouch=function(){return!1},Ha.prototype.focus=function(){if(\"nocursor\"!=this.cm.options.readOnly&&(!v||N()!=this.textarea))try{this.textarea.focus()}catch(e){}},Ha.prototype.blur=function(){this.textarea.blur()},Ha.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Ha.prototype.receivedFocus=function(){this.slowPoll()},Ha.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},Ha.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}))},Ha.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Fe(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\\uf700-\\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r=\"\\u200b\"),8666==o)return this.reset(),this.cm.execCommand(\"undo\")}for(var u=0,c=Math.min(r.length,i.length);u1e3||i.indexOf(\"\\n\")>-1?n.value=e.prevInput=\"\":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor(\"to\"),{className:\"CodeMirror-composing\"}))})),!0},Ha.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Ha.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},Ha.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=ur(n,e),c=r.scroller.scrollTop;if(o&&!p){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Zr(n,Xi)(n.doc,wi(o),q);var l,f=i.style.cssText,d=t.wrapper.style.cssText,h=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText=\"position: static\",i.style.cssText=\"position: absolute; width: 30px; height: 30px;\\n top: \"+(e.clientY-h.top-5)+\"px; left: \"+(e.clientX-h.left-5)+\"px;\\n z-index: 1000; background: \"+(a?\"rgba(255, 255, 255, .05)\":\"transparent\")+\";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\",u&&(l=window.scrollY),r.input.focus(),u&&window.scrollTo(null,l),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=\" \"),t.contextMenuPending=g,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&m(),C?(De(e),pe(window,\"mouseup\",(function e(){de(window,\"mouseup\",e),setTimeout(g,20)}))):setTimeout(g,50)}function m(){if(null!=i.selectionStart){var e=n.somethingSelected(),o=\"\\u200b\"+(e?i.value:\"\");i.value=\"\\u21da\",i.value=o,t.prevInput=e?\"\":\"\\u200b\",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function g(){if(t.contextMenuPending==g&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=f,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&m();var e=0;r.detectingSelectAll=setTimeout((function o(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&\"\\u200b\"==t.prevInput?Zr(n,ao)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())}),200)}}},Ha.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=\"nocursor\"==e},Ha.prototype.setUneditable=function(){},Ha.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=Ea&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Ea,n(\"value\",\"\",(function(e,t){return e.setValue(t)}),!0),n(\"mode\",null,(function(e,t){e.doc.modeOption=t,_i(e)}),!0),n(\"indentUnit\",2,_i,!0),n(\"indentWithTabs\",!1),n(\"smartIndent\",!0),n(\"tabSize\",4,(function(e){Oi(e),Bn(e),lr(e)}),!0),n(\"lineSeparator\",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(Ze(r,o))}r++}));for(var i=n.length-1;i>=0;i--)ho(e.doc,t,n[i],Ze(n[i].line,n[i].ch+t.length))}})),n(\"specialChars\",/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test(\"\\t\")?\"\":\"|\\t\"),\"g\"),n!=Ea&&e.refresh()})),n(\"specialCharPlaceholder\",$t,(function(e){return e.refresh()}),!0),n(\"electricChars\",!0),n(\"inputStyle\",v?\"contenteditable\":\"textarea\",(function(){throw new Error(\"inputStyle can not (yet) be changed in a running editor\")}),!0),n(\"spellcheck\",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n(\"autocorrect\",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n(\"autocapitalize\",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n(\"rtlMoveVisually\",!x),n(\"wholeLineUpdateBefore\",!0),n(\"theme\",\"default\",(function(e){xa(e),hi(e)}),!0),n(\"keyMap\",\"default\",(function(e,t,n){var r=Yo(t),i=n!=Ea&&Yo(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n(\"extraKeys\",null),n(\"configureMouse\",null),n(\"lineWrapping\",!1,Sa,!0),n(\"gutters\",[],(function(e,t){e.display.gutterSpecs=fi(t,e.options.lineNumbers),hi(e)}),!0),n(\"fixedGutter\",!0,(function(e,t){e.display.gutters.style.left=t?or(e.display)+\"px\":\"0\",e.refresh()}),!0),n(\"coverGutterNextToScrollbar\",!1,(function(e){return zr(e)}),!0),n(\"scrollbarStyle\",\"native\",(function(e){Vr(e),zr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n(\"lineNumbers\",!1,(function(e,t){e.display.gutterSpecs=fi(e.options.gutters,t),hi(e)}),!0),n(\"firstLineNumber\",1,hi,!0),n(\"lineNumberFormatter\",(function(e){return e}),hi,!0),n(\"showCursorWhenSelecting\",!1,mr,!0),n(\"resetSelectionOnContextMenu\",!0),n(\"lineWiseCopyCut\",!0),n(\"pasteLinesPerSelection\",!0),n(\"selectionsMayTouch\",!1),n(\"readOnly\",!1,(function(e,t){\"nocursor\"==t&&(wr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n(\"screenReaderLabel\",null,(function(e,t){t=\"\"===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n(\"disableInput\",!1,(function(e,t){t||e.display.input.reset()}),!0),n(\"dragDrop\",!0,wa),n(\"allowDropFileTypes\",null),n(\"cursorBlinkRate\",530),n(\"cursorScrollMargin\",0),n(\"cursorHeight\",1,mr,!0),n(\"singleCursorHeightPerLine\",!0,mr,!0),n(\"workTime\",100),n(\"workDelay\",100),n(\"flattenSpans\",!0,Oi,!0),n(\"addModeClass\",!1,Oi,!0),n(\"pollInterval\",100),n(\"undoDepth\",200,(function(e,t){return e.doc.history.undoDepth=t})),n(\"historyEventDelay\",1250),n(\"viewportMargin\",10,(function(e){return e.refresh()}),!0),n(\"maxHighlightLength\",1e4,Oi,!0),n(\"moveInputWithCursor\",!0,(function(e,t){t||e.display.input.resetPosition()})),n(\"tabindex\",null,(function(e,t){return e.display.input.getField().tabIndex=t||\"\"})),n(\"autofocus\",null),n(\"direction\",\"ltr\",(function(e,t){return e.doc.setDirection(t)}),!0),n(\"phrases\",null)}(ka),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&\"mode\"!=e||(r[e]=n,t.hasOwnProperty(e)&&Zr(this,t[e])(this,n,i),he(this,\"optionChange\",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?\"push\":\"unshift\"](Yo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;nn&&(Ta(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Or(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var u=s;u0&&Yi(this.doc,r,new Di(o,c[r].to()),q)}}})),getTokenAt:function(e,t){return vt(this,e,t)},getLineTokens:function(e,t){return vt(this,Ze(e),t,!0)},getTokenTypeAt:function(e){e=at(this.doc,e);var t,n=pt(this,We(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=We(this.doc,e)}else r=e;return Vn(this,r,{top:0,left:0},t||\"page\",n||i).top+(i?this.doc.height-qt(r):0)},defaultTextHeight:function(){return nr(this.display)},defaultCharWidth:function(){return rr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display,a=(e=Gn(this,at(this.doc,e))).bottom,s=e.left;if(t.style.position=\"absolute\",t.setAttribute(\"cm-ignore-events\",\"true\"),this.display.input.setUneditable(t),o.sizer.appendChild(t),\"over\"==r)a=e.top;else if(\"above\"==r||\"near\"==r){var u=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);(\"above\"==r||e.bottom+t.offsetHeight>u)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=u&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+\"px\",t.style.left=t.style.right=\"\",\"right\"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right=\"0px\"):(\"left\"==i?s=0:\"middle\"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+\"px\"),n&&function(e,t){var n=Tr(e,t);null!=n.scrollTop&&Mr(e,n.scrollTop),null!=n.scrollLeft&&Lr(e,n.scrollLeft)}(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:ei(ca),triggerOnKeyPress:ei(pa),triggerOnKeyUp:la,triggerOnMouseDown:ei(ma),execCommand:function(e){if(ea.hasOwnProperty(e))return ea[e].call(null,this)},triggerElectric:ei((function(e){Ia(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=at(this.doc,e),a=0;a0&&a(t.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&sr(this),he(this,\"refresh\",this)})),swapDoc:ei((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Mi(this,e),Bn(this),this.display.input.reset(),Fr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sn(this,\"swapDoc\",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ye(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(ka);var Wa=\"iter insert remove copy getEditor constructor\".split(\" \");for(var Ga in Oo.prototype)Oo.prototype.hasOwnProperty(Ga)&&z(Wa,Ga)<0&&(ka.prototype[Ga]=function(e){return function(){return e.apply(this.doc,arguments)}}(Oo.prototype[Ga]));return ye(Oo),ka.inputStyles={textarea:Ha,contenteditable:Ba},ka.defineMode=function(e){ka.defaults.mode||\"null\"==e||(ka.defaults.mode=e),Le.apply(this,arguments)},ka.defineMIME=function(e,t){je[e]=t},ka.defineMode(\"null\",(function(){return{token:function(e){return e.skipToEnd()}}})),ka.defineMIME(\"text/plain\",\"null\"),ka.defineExtension=function(e,t){ka.prototype[e]=t},ka.defineDocExtension=function(e,t){Oo.prototype[e]=t},ka.fromTextArea=function(e,t){if((t=t?P(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=N();t.autofocus=n==e||null!=e.getAttribute(\"autofocus\")&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(pe(e.form,\"submit\",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(u){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display=\"\",e.form&&(de(e.form,\"submit\",r),t.leaveSubmitMethodAlone||\"function\"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display=\"none\";var s=ka((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=de,e.on=pe,e.wheelEventPixels=bi,e.Doc=Oo,e.splitLines=Oe,e.countColumn=R,e.findColumn=W,e.isWordChar=Z,e.Pass=U,e.signal=he,e.Line=Wt,e.changeEnd=Si,e.scrollbarModel=qr,e.Pos=Ze,e.cmpPos=et,e.modes=Me,e.mimeModes=je,e.resolveMode=Pe,e.getMode=Re,e.modeExtensions=Be,e.extendMode=ze,e.copyState=Ue,e.startState=Ve,e.innerMode=qe,e.commands=ea,e.keyMap=qo,e.keyName=Jo,e.isModifierKey=Go,e.lookupKey=Wo,e.normalizeKeyMap=Ho,e.StringStream=He,e.SharedTextMarker=ko,e.TextMarker=wo,e.LineWidget=Eo,e.e_preventDefault=be,e.e_stopPropagation=xe,e.e_stop=De,e.addClass=I,e.contains=F,e.rmClass=k,e.keyNames=Ro}(ka),ka.version=\"5.53.2\",ka}()},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i})),n.d(t,\"b\",(function(){return o})),n.d(t,\"c\",(function(){return a})),n.d(t,\"d\",(function(){return s})),n.d(t,\"e\",(function(){return u})),n.d(t,\"f\",(function(){return c})),n.d(t,\"g\",(function(){return h})),n.d(t,\"h\",(function(){return l})),n.d(t,\"i\",(function(){return p})),n.d(t,\"j\",(function(){return f})),n.d(t,\"k\",(function(){return d}));var r=function(e){return\"@@redux-saga/\"+e},i=r(\"CANCEL_PROMISE\"),o=r(\"CHANNEL_END\"),a=r(\"IO\"),s=r(\"MATCH\"),u=r(\"MULTICAST\"),c=r(\"SAGA_ACTION\"),l=r(\"SELF_CANCELLATION\"),p=r(\"TASK\"),f=r(\"TASK_CANCEL\"),d=r(\"TERMINATE\"),h=r(\"LOCATION\")},function(e,t,n){\"use strict\";n.d(t,\"b\",(function(){return i})),n.d(t,\"a\",(function(){return o})),n.d(t,\"c\",(function(){return a})),n.d(t,\"d\",(function(){return s}));var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g,u=new RegExp(s.source+\"|\"+/&([a-z#][a-z0-9]{1,31});/gi.source,\"gi\"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=n(191);var p=/[&<>\"]/,f=/[&<>\"]/g,d={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\"};function h(e){return d[e]}var m=/[.?*+^$[\\]\\\\(){}|-]/g;var g=n(117);t.lib={},t.lib.mdurl=n(118),t.lib.ucmicro=n(192),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if(\"object\"!==typeof t)throw new TypeError(t+\"must be object\");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=i,t.unescapeMd=function(e){return e.indexOf(\"\\\\\")<0?e:e.replace(s,\"$1\")},t.unescapeAll=function(e){return e.indexOf(\"\\\\\")<0&&e.indexOf(\"&\")<0?e:e.replace(u,(function(e,t,n){return t||function(e,t){var n=0;return i(l,t)?l[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=a,t.escapeHtml=function(e){return p.test(e)?e.replace(f,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(m,\"\\\\$&\")},t.normalizeReference=function(e){return e.trim().replace(/\\s+/g,\" \").toUpperCase()}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"print\",(function(){return o}));var r=n(20),i=n(57);function o(e){return Object(r.c)(e,{leave:a})}var a={Name:function(e){return e.value},Variable:function(e){return\"$\"+e.name},Document:function(e){return u(e.definitions,\"\\n\\n\")+\"\\n\"},OperationDefinition:function(e){var t=e.operation,n=e.name,r=l(\"(\",u(e.variableDefinitions,\", \"),\")\"),i=u(e.directives,\" \"),o=e.selectionSet;return n||i||r||\"query\"!==t?u([t,u([n,r]),i,o],\" \"):o},VariableDefinition:function(e){var t=e.variable,n=e.type,r=e.defaultValue,i=e.directives;return t+\": \"+n+l(\" = \",r)+l(\" \",u(i,\" \"))},SelectionSet:function(e){return c(e.selections)},Field:function(e){var t=e.alias,n=e.name,r=e.arguments,i=e.directives,o=e.selectionSet;return u([l(\"\",t,\": \")+n+l(\"(\",u(r,\", \"),\")\"),u(i,\" \"),o],\" \")},Argument:function(e){return e.name+\": \"+e.value},FragmentSpread:function(e){return\"...\"+e.name+l(\" \",u(e.directives,\" \"))},InlineFragment:function(e){var t=e.typeCondition,n=e.directives,r=e.selectionSet;return u([\"...\",l(\"on \",t),u(n,\" \"),r],\" \")},FragmentDefinition:function(e){var t=e.name,n=e.typeCondition,r=e.variableDefinitions,i=e.directives,o=e.selectionSet;return\"fragment \".concat(t).concat(l(\"(\",u(r,\", \"),\")\"),\" \")+\"on \".concat(n,\" \").concat(l(\"\",u(i,\" \"),\" \"))+o},IntValue:function(e){return e.value},FloatValue:function(e){return e.value},StringValue:function(e,t){var n=e.value;return e.block?Object(i.c)(n,\"description\"===t?\"\":\" \"):JSON.stringify(n)},BooleanValue:function(e){return e.value?\"true\":\"false\"},NullValue:function(){return\"null\"},EnumValue:function(e){return e.value},ListValue:function(e){return\"[\"+u(e.values,\", \")+\"]\"},ObjectValue:function(e){return\"{\"+u(e.fields,\", \")+\"}\"},ObjectField:function(e){return e.name+\": \"+e.value},Directive:function(e){return\"@\"+e.name+l(\"(\",u(e.arguments,\", \"),\")\")},NamedType:function(e){return e.name},ListType:function(e){return\"[\"+e.type+\"]\"},NonNullType:function(e){return e.type+\"!\"},SchemaDefinition:function(e){var t=e.directives,n=e.operationTypes;return u([\"schema\",u(t,\" \"),c(n)],\" \")},OperationTypeDefinition:function(e){return e.operation+\": \"+e.type},ScalarTypeDefinition:s((function(e){return u([\"scalar\",e.name,u(e.directives,\" \")],\" \")})),ObjectTypeDefinition:s((function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return u([\"type\",t,l(\"implements \",u(n,\" & \")),u(r,\" \"),c(i)],\" \")})),FieldDefinition:s((function(e){var t=e.name,n=e.arguments,r=e.type,i=e.directives;return t+(d(n)?l(\"(\\n\",p(u(n,\"\\n\")),\"\\n)\"):l(\"(\",u(n,\", \"),\")\"))+\": \"+r+l(\" \",u(i,\" \"))})),InputValueDefinition:s((function(e){var t=e.name,n=e.type,r=e.defaultValue,i=e.directives;return u([t+\": \"+n,l(\"= \",r),u(i,\" \")],\" \")})),InterfaceTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.fields;return u([\"interface\",t,u(n,\" \"),c(r)],\" \")})),UnionTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.types;return u([\"union\",t,u(n,\" \"),r&&0!==r.length?\"= \"+u(r,\" | \"):\"\"],\" \")})),EnumTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.values;return u([\"enum\",t,u(n,\" \"),c(r)],\" \")})),EnumValueDefinition:s((function(e){return u([e.name,u(e.directives,\" \")],\" \")})),InputObjectTypeDefinition:s((function(e){var t=e.name,n=e.directives,r=e.fields;return u([\"input\",t,u(n,\" \"),c(r)],\" \")})),DirectiveDefinition:s((function(e){var t=e.name,n=e.arguments,r=e.repeatable,i=e.locations;return\"directive @\"+t+(d(n)?l(\"(\\n\",p(u(n,\"\\n\")),\"\\n)\"):l(\"(\",u(n,\", \"),\")\"))+(r?\" repeatable\":\"\")+\" on \"+u(i,\" | \")})),SchemaExtension:function(e){var t=e.directives,n=e.operationTypes;return u([\"extend schema\",u(t,\" \"),c(n)],\" \")},ScalarTypeExtension:function(e){return u([\"extend scalar\",e.name,u(e.directives,\" \")],\" \")},ObjectTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return u([\"extend type\",t,l(\"implements \",u(n,\" & \")),u(r,\" \"),c(i)],\" \")},InterfaceTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return u([\"extend interface\",t,u(n,\" \"),c(r)],\" \")},UnionTypeExtension:function(e){var t=e.name,n=e.directives,r=e.types;return u([\"extend union\",t,u(n,\" \"),r&&0!==r.length?\"= \"+u(r,\" | \"):\"\"],\" \")},EnumTypeExtension:function(e){var t=e.name,n=e.directives,r=e.values;return u([\"extend enum\",t,u(n,\" \"),c(r)],\" \")},InputObjectTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return u([\"extend input\",t,u(n,\" \"),c(r)],\" \")}};function s(e){return function(t){return u([t.description,e(t)],\"\\n\")}}function u(e,t){return e?e.filter((function(e){return e})).join(t||\"\"):\"\"}function c(e){return e&&0!==e.length?\"{\\n\"+p(u(e,\"\\n\"))+\"\\n}\":\"\"}function l(e,t,n){return t?e+t+(n||\"\"):\"\"}function p(e){return e&&\" \"+e.replace(/\\n/g,\"\\n \")}function f(e){return-1!==e.indexOf(\"\\n\")}function d(e){return e&&e.some(f)}},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return o})),n.d(t,\"c\",(function(){return a})),n.d(t,\"d\",(function(){return u})),n.d(t,\"e\",(function(){return c})),n.d(t,\"b\",(function(){return l}));var r=n(2),i={Name:[],Document:[\"definitions\"],OperationDefinition:[\"name\",\"variableDefinitions\",\"directives\",\"selectionSet\"],VariableDefinition:[\"variable\",\"type\",\"defaultValue\",\"directives\"],Variable:[\"name\"],SelectionSet:[\"selections\"],Field:[\"alias\",\"name\",\"arguments\",\"directives\",\"selectionSet\"],Argument:[\"name\",\"value\"],FragmentSpread:[\"name\",\"directives\"],InlineFragment:[\"typeCondition\",\"directives\",\"selectionSet\"],FragmentDefinition:[\"name\",\"variableDefinitions\",\"typeCondition\",\"directives\",\"selectionSet\"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:[\"values\"],ObjectValue:[\"fields\"],ObjectField:[\"name\",\"value\"],Directive:[\"name\",\"arguments\"],NamedType:[\"name\"],ListType:[\"type\"],NonNullType:[\"type\"],SchemaDefinition:[\"directives\",\"operationTypes\"],OperationTypeDefinition:[\"type\"],ScalarTypeDefinition:[\"description\",\"name\",\"directives\"],ObjectTypeDefinition:[\"description\",\"name\",\"interfaces\",\"directives\",\"fields\"],FieldDefinition:[\"description\",\"name\",\"arguments\",\"type\",\"directives\"],InputValueDefinition:[\"description\",\"name\",\"type\",\"defaultValue\",\"directives\"],InterfaceTypeDefinition:[\"description\",\"name\",\"directives\",\"fields\"],UnionTypeDefinition:[\"description\",\"name\",\"directives\",\"types\"],EnumTypeDefinition:[\"description\",\"name\",\"directives\",\"values\"],EnumValueDefinition:[\"description\",\"name\",\"directives\"],InputObjectTypeDefinition:[\"description\",\"name\",\"directives\",\"fields\"],DirectiveDefinition:[\"description\",\"name\",\"arguments\",\"locations\"],SchemaExtension:[\"directives\",\"operationTypes\"],ScalarTypeExtension:[\"name\",\"directives\"],ObjectTypeExtension:[\"name\",\"interfaces\",\"directives\",\"fields\"],InterfaceTypeExtension:[\"name\",\"directives\",\"fields\"],UnionTypeExtension:[\"name\",\"directives\",\"types\"],EnumTypeExtension:[\"name\",\"directives\",\"values\"],InputObjectTypeExtension:[\"name\",\"directives\",\"fields\"]},o=Object.freeze({});function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i,a=void 0,u=Array.isArray(e),c=[e],p=-1,f=[],d=void 0,h=void 0,m=void 0,g=[],v=[],y=e;do{var b=++p===c.length,x=b&&0!==f.length;if(b){if(h=0===v.length?void 0:g[g.length-1],d=m,m=v.pop(),x){if(u)d=d.slice();else{for(var E={},D=0,C=Object.keys(d);D=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g,u=new RegExp(s.source+\"|\"+/&([a-z#][a-z0-9]{1,31});/gi.source,\"gi\"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=n(219);var p=/[&<>\"]/,f=/[&<>\"]/g,d={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\"};function h(e){return d[e]}var m=/[.?*+^$[\\]\\\\(){}|-]/g;var g=n(117);t.lib={},t.lib.mdurl=n(118),t.lib.ucmicro=n(192),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if(\"object\"!==typeof t)throw new TypeError(t+\"must be object\");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=i,t.unescapeMd=function(e){return e.indexOf(\"\\\\\")<0?e:e.replace(s,\"$1\")},t.unescapeAll=function(e){return e.indexOf(\"\\\\\")<0&&e.indexOf(\"&\")<0?e:e.replace(u,(function(e,t,n){return t||function(e,t){var n=0;return i(l,t)?l[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=a,t.escapeHtml=function(e){return p.test(e)?e.replace(f,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(m,\"\\\\$&\")},t.normalizeReference=function(e){return e=e.trim().replace(/\\s+/g,\" \"),\"\\u1e7e\"===\"\\u1e9e\".toLowerCase()&&(e=e.replace(/\\u1e9e/g,\"\\xdf\")),e.toLowerCase().toUpperCase()}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"version\",(function(){return r})),n.d(t,\"versionInfo\",(function(){return i})),n.d(t,\"graphql\",(function(){return pe})),n.d(t,\"graphqlSync\",(function(){return fe})),n.d(t,\"GraphQLSchema\",(function(){return he.a})),n.d(t,\"GraphQLDirective\",(function(){return D.c})),n.d(t,\"GraphQLScalarType\",(function(){return C.g})),n.d(t,\"GraphQLObjectType\",(function(){return C.f})),n.d(t,\"GraphQLInterfaceType\",(function(){return C.c})),n.d(t,\"GraphQLUnionType\",(function(){return C.h})),n.d(t,\"GraphQLEnumType\",(function(){return C.a})),n.d(t,\"GraphQLInputObjectType\",(function(){return C.b})),n.d(t,\"GraphQLList\",(function(){return C.d})),n.d(t,\"GraphQLNonNull\",(function(){return C.e})),n.d(t,\"specifiedScalarTypes\",(function(){return me.g})),n.d(t,\"GraphQLInt\",(function(){return me.d})),n.d(t,\"GraphQLFloat\",(function(){return me.b})),n.d(t,\"GraphQLString\",(function(){return me.e})),n.d(t,\"GraphQLBoolean\",(function(){return me.a})),n.d(t,\"GraphQLID\",(function(){return me.c})),n.d(t,\"specifiedDirectives\",(function(){return D.i})),n.d(t,\"GraphQLIncludeDirective\",(function(){return D.d})),n.d(t,\"GraphQLSkipDirective\",(function(){return D.e})),n.d(t,\"GraphQLDeprecatedDirective\",(function(){return D.b})),n.d(t,\"TypeKind\",(function(){return E.TypeKind})),n.d(t,\"DEFAULT_DEPRECATION_REASON\",(function(){return D.a})),n.d(t,\"introspectionTypes\",(function(){return E.introspectionTypes})),n.d(t,\"__Schema\",(function(){return E.__Schema})),n.d(t,\"__Directive\",(function(){return E.__Directive})),n.d(t,\"__DirectiveLocation\",(function(){return E.__DirectiveLocation})),n.d(t,\"__Type\",(function(){return E.__Type})),n.d(t,\"__Field\",(function(){return E.__Field})),n.d(t,\"__InputValue\",(function(){return E.__InputValue})),n.d(t,\"__EnumValue\",(function(){return E.__EnumValue})),n.d(t,\"__TypeKind\",(function(){return E.__TypeKind})),n.d(t,\"SchemaMetaFieldDef\",(function(){return E.SchemaMetaFieldDef})),n.d(t,\"TypeMetaFieldDef\",(function(){return E.TypeMetaFieldDef})),n.d(t,\"TypeNameMetaFieldDef\",(function(){return E.TypeNameMetaFieldDef})),n.d(t,\"isSchema\",(function(){return he.c})),n.d(t,\"isDirective\",(function(){return D.g})),n.d(t,\"isType\",(function(){return C.S})),n.d(t,\"isScalarType\",(function(){return C.R})),n.d(t,\"isObjectType\",(function(){return C.N})),n.d(t,\"isInterfaceType\",(function(){return C.H})),n.d(t,\"isUnionType\",(function(){return C.T})),n.d(t,\"isEnumType\",(function(){return C.E})),n.d(t,\"isInputObjectType\",(function(){return C.F})),n.d(t,\"isListType\",(function(){return C.J})),n.d(t,\"isNonNullType\",(function(){return C.L})),n.d(t,\"isInputType\",(function(){return C.G})),n.d(t,\"isOutputType\",(function(){return C.O})),n.d(t,\"isLeafType\",(function(){return C.I})),n.d(t,\"isCompositeType\",(function(){return C.D})),n.d(t,\"isAbstractType\",(function(){return C.C})),n.d(t,\"isWrappingType\",(function(){return C.U})),n.d(t,\"isNullableType\",(function(){return C.M})),n.d(t,\"isNamedType\",(function(){return C.K})),n.d(t,\"isRequiredArgument\",(function(){return C.P})),n.d(t,\"isRequiredInputField\",(function(){return C.Q})),n.d(t,\"isSpecifiedScalarType\",(function(){return me.f})),n.d(t,\"isIntrospectionType\",(function(){return E.isIntrospectionType})),n.d(t,\"isSpecifiedDirective\",(function(){return D.h})),n.d(t,\"assertSchema\",(function(){return he.b})),n.d(t,\"assertDirective\",(function(){return D.f})),n.d(t,\"assertType\",(function(){return C.x})),n.d(t,\"assertScalarType\",(function(){return C.w})),n.d(t,\"assertObjectType\",(function(){return C.u})),n.d(t,\"assertInterfaceType\",(function(){return C.o})),n.d(t,\"assertUnionType\",(function(){return C.y})),n.d(t,\"assertEnumType\",(function(){return C.l})),n.d(t,\"assertInputObjectType\",(function(){return C.m})),n.d(t,\"assertListType\",(function(){return C.q})),n.d(t,\"assertNonNullType\",(function(){return C.s})),n.d(t,\"assertInputType\",(function(){return C.n})),n.d(t,\"assertOutputType\",(function(){return C.v})),n.d(t,\"assertLeafType\",(function(){return C.p})),n.d(t,\"assertCompositeType\",(function(){return C.k})),n.d(t,\"assertAbstractType\",(function(){return C.j})),n.d(t,\"assertWrappingType\",(function(){return C.z})),n.d(t,\"assertNullableType\",(function(){return C.t})),n.d(t,\"assertNamedType\",(function(){return C.r})),n.d(t,\"getNullableType\",(function(){return C.B})),n.d(t,\"getNamedType\",(function(){return C.A})),n.d(t,\"validateSchema\",(function(){return u.b})),n.d(t,\"assertValidSchema\",(function(){return u.a})),n.d(t,\"Source\",(function(){return ge.a})),n.d(t,\"getLocation\",(function(){return ve.a})),n.d(t,\"printLocation\",(function(){return ye.a})),n.d(t,\"printSourceLocation\",(function(){return ye.b})),n.d(t,\"createLexer\",(function(){return be.a})),n.d(t,\"TokenKind\",(function(){return xe.a})),n.d(t,\"parse\",(function(){return a.a})),n.d(t,\"parseValue\",(function(){return a.c})),n.d(t,\"parseType\",(function(){return a.b})),n.d(t,\"print\",(function(){return _.print})),n.d(t,\"visit\",(function(){return Ee.c})),n.d(t,\"visitInParallel\",(function(){return Ee.d})),n.d(t,\"visitWithTypeInfo\",(function(){return Ee.e})),n.d(t,\"getVisitFn\",(function(){return Ee.b})),n.d(t,\"BREAK\",(function(){return Ee.a})),n.d(t,\"Kind\",(function(){return x.a})),n.d(t,\"DirectiveLocation\",(function(){return De.a})),n.d(t,\"isDefinitionNode\",(function(){return Ce.a})),n.d(t,\"isExecutableDefinitionNode\",(function(){return Ce.b})),n.d(t,\"isSelectionNode\",(function(){return Ce.c})),n.d(t,\"isValueNode\",(function(){return Ce.i})),n.d(t,\"isTypeNode\",(function(){return Ce.f})),n.d(t,\"isTypeSystemDefinitionNode\",(function(){return Ce.g})),n.d(t,\"isTypeDefinitionNode\",(function(){return Ce.d})),n.d(t,\"isTypeSystemExtensionNode\",(function(){return Ce.h})),n.d(t,\"isTypeExtensionNode\",(function(){return Ce.e})),n.d(t,\"execute\",(function(){return q})),n.d(t,\"defaultFieldResolver\",(function(){return ce})),n.d(t,\"defaultTypeResolver\",(function(){return ue})),n.d(t,\"responsePathAsArray\",(function(){return v})),n.d(t,\"getDirectiveValues\",(function(){return z})),n.d(t,\"subscribe\",(function(){return Ae})),n.d(t,\"createSourceEventStream\",(function(){return Oe})),n.d(t,\"validate\",(function(){return s.c})),n.d(t,\"ValidationContext\",(function(){return Fe.b})),n.d(t,\"specifiedRules\",(function(){return Ne.a})),n.d(t,\"ExecutableDefinitionsRule\",(function(){return Ie.ExecutableDefinitions})),n.d(t,\"FieldsOnCorrectTypeRule\",(function(){return Me.a})),n.d(t,\"FragmentsOnCompositeTypesRule\",(function(){return je.a})),n.d(t,\"KnownArgumentNamesRule\",(function(){return Le.a})),n.d(t,\"KnownDirectivesRule\",(function(){return Pe.a})),n.d(t,\"KnownFragmentNamesRule\",(function(){return Re.KnownFragmentNames})),n.d(t,\"KnownTypeNamesRule\",(function(){return Be.a})),n.d(t,\"LoneAnonymousOperationRule\",(function(){return ze.a})),n.d(t,\"NoFragmentCyclesRule\",(function(){return Ue.a})),n.d(t,\"NoUndefinedVariablesRule\",(function(){return qe.a})),n.d(t,\"NoUnusedFragmentsRule\",(function(){return Ve.NoUnusedFragments})),n.d(t,\"NoUnusedVariablesRule\",(function(){return He.a})),n.d(t,\"OverlappingFieldsCanBeMergedRule\",(function(){return We.a})),n.d(t,\"PossibleFragmentSpreadsRule\",(function(){return Ge.a})),n.d(t,\"ProvidedRequiredArgumentsRule\",(function(){return Ke.a})),n.d(t,\"ScalarLeafsRule\",(function(){return Je.a})),n.d(t,\"SingleFieldSubscriptionsRule\",(function(){return Ye.a})),n.d(t,\"UniqueArgumentNamesRule\",(function(){return Qe.a})),n.d(t,\"UniqueDirectivesPerLocationRule\",(function(){return $e.a})),n.d(t,\"UniqueFragmentNamesRule\",(function(){return Xe.a})),n.d(t,\"UniqueInputFieldNamesRule\",(function(){return Ze.a})),n.d(t,\"UniqueOperationNamesRule\",(function(){return et.a})),n.d(t,\"UniqueVariableNamesRule\",(function(){return tt.a})),n.d(t,\"ValuesOfCorrectTypeRule\",(function(){return nt.a})),n.d(t,\"VariablesAreInputTypesRule\",(function(){return rt.a})),n.d(t,\"VariablesInAllowedPositionRule\",(function(){return it.a})),n.d(t,\"LoneSchemaDefinitionRule\",(function(){return ot.a})),n.d(t,\"UniqueOperationTypesRule\",(function(){return at.a})),n.d(t,\"UniqueTypeNamesRule\",(function(){return st.a})),n.d(t,\"UniqueEnumValueNamesRule\",(function(){return ut.a})),n.d(t,\"UniqueFieldDefinitionNamesRule\",(function(){return ct.a})),n.d(t,\"UniqueDirectiveNamesRule\",(function(){return lt.a})),n.d(t,\"PossibleTypeExtensionsRule\",(function(){return pt.a})),n.d(t,\"GraphQLError\",(function(){return y.a})),n.d(t,\"syntaxError\",(function(){return ft.a})),n.d(t,\"locatedError\",(function(){return b})),n.d(t,\"printError\",(function(){return y.b})),n.d(t,\"formatError\",(function(){return dt})),n.d(t,\"getIntrospectionQuery\",(function(){return ht})),n.d(t,\"introspectionQuery\",(function(){return mt})),n.d(t,\"getOperationAST\",(function(){return gt.getOperationAST})),n.d(t,\"getOperationRootType\",(function(){return S})),n.d(t,\"introspectionFromSchema\",(function(){return vt})),n.d(t,\"buildClientSchema\",(function(){return bt})),n.d(t,\"buildASTSchema\",(function(){return Et})),n.d(t,\"buildSchema\",(function(){return At})),n.d(t,\"getDescription\",(function(){return kt})),n.d(t,\"extendSchema\",(function(){return It})),n.d(t,\"lexicographicSortSchema\",(function(){return Pt})),n.d(t,\"printSchema\",(function(){return qt})),n.d(t,\"printType\",(function(){return Kt})),n.d(t,\"printIntrospectionSchema\",(function(){return Vt})),n.d(t,\"typeFromAST\",(function(){return w.a})),n.d(t,\"valueFromAST\",(function(){return F})),n.d(t,\"valueFromASTUntyped\",(function(){return nn.a})),n.d(t,\"astFromValue\",(function(){return Ut.a})),n.d(t,\"TypeInfo\",(function(){return rn.a})),n.d(t,\"coerceInputValue\",(function(){return j})),n.d(t,\"coerceValue\",(function(){return on})),n.d(t,\"isValidJSValue\",(function(){return an})),n.d(t,\"isValidLiteralValue\",(function(){return sn})),n.d(t,\"concatAST\",(function(){return un})),n.d(t,\"separateOperations\",(function(){return cn})),n.d(t,\"stripIgnoredCharacters\",(function(){return fn})),n.d(t,\"isEqualType\",(function(){return hn.b})),n.d(t,\"isTypeSubTypeOf\",(function(){return hn.c})),n.d(t,\"doTypesOverlap\",(function(){return hn.a})),n.d(t,\"assertValidName\",(function(){return mn.a})),n.d(t,\"isValidNameError\",(function(){return mn.b})),n.d(t,\"BreakingChangeType\",(function(){return yn})),n.d(t,\"DangerousChangeType\",(function(){return bn})),n.d(t,\"findBreakingChanges\",(function(){return xn})),n.d(t,\"findDangerousChanges\",(function(){return En})),n.d(t,\"findDeprecatedUsages\",(function(){return Mn.a}));var r=\"14.6.0\",i=Object.freeze({major:14,minor:6,patch:0,preReleaseTag:null});function o(e){return Boolean(e&&\"function\"===typeof e.then)}var a=n(74),s=n(83),u=n(88),c=n(46),l=n(2);var p=n(23),f=n(7),d=n(45),h=n(130),m=n(27);function g(e,t){return{prev:e,key:t}}function v(e){for(var t=[],n=e;n;)t.push(n.key),n=n.prev;return t.reverse()}var y=n(4);function b(e,t,n){return e&&Array.isArray(e.path)?e:new y.a(e&&e.message,e&&e.nodes||t,e&&e.source,e&&e.positions,n,e)}var x=n(1),E=n(11),D=n(17),C=n(0),w=n(31);function S(e,t){if(\"query\"===t.operation){var n=e.getQueryType();if(!n)throw new y.a(\"Schema does not define the required query root type.\",t);return n}if(\"mutation\"===t.operation){var r=e.getMutationType();if(!r)throw new y.a(\"Schema is not configured for mutations.\",t);return r}if(\"subscription\"===t.operation){var i=e.getSubscriptionType();if(!i)throw new y.a(\"Schema is not configured for subscriptions.\",t);return i}throw new y.a(\"Can only have query, mutation and subscription operations.\",t)}var k=n(58),A=n(35);function T(e){return e.map((function(e){return\"number\"===typeof e?\"[\"+e.toString()+\"]\":\".\"+e})).join(\"\")}var _=n(19),O=n(12);function F(e,t,n){if(e){if(Object(C.L)(t)){if(e.kind===x.a.NULL)return;return F(e,t.ofType,n)}if(e.kind===x.a.NULL)return null;if(e.kind===x.a.VARIABLE){var r=e.name.value;if(!n||Object(d.a)(n[r]))return;var i=n[r];if(null===i&&Object(C.L)(t))return;return i}if(Object(C.J)(t)){var o=t.ofType;if(e.kind===x.a.LIST){for(var a=[],s=0,u=e.values;s2&&void 0!==arguments[2]?arguments[2]:L;return P(e,t,n)}function L(e,t,n){var r=\"Invalid value \"+Object(l.a)(t);throw e.length>0&&(r+=' at \"value'.concat(T(e),'\": ')),n.message=r+\": \"+n.message,n}function P(e,t,n,r){if(Object(C.L)(t))return null!=e?P(e,t.ofType,n,r):void n(v(r),e,new y.a(\"Expected non-nullable type \".concat(Object(l.a)(t),\" not to be null.\")));if(null==e)return null;if(Object(C.J)(t)){var i=t.ofType;if(Object(c.e)(e)){var o=[];return Object(c.b)(e,(function(e,t){o.push(P(e,i,n,g(r,t)))})),o}return[P(e,i,n,r)]}if(Object(C.F)(t)){if(!Object(m.a)(e))return void n(v(r),e,new y.a(\"Expected type \".concat(t.name,\" to be an object.\")));for(var a={},s=t.getFields(),u=0,f=Object(O.a)(s);u0&&(i+=' at \"'.concat(s).concat(T(e),'\"')),r(new y.a(i+\"; \"+n.message,a,void 0,void 0,void 0,n.originalError))}))},a=0;a=i)throw new y.a(\"Too many errors processing variables, error limit reached. Execution aborted.\");o.push(e)}));if(0===o.length)return{coerced:a}}catch(s){o.push(s)}return{errors:o}}function B(e,t,n){for(var r={},i=Object(A.a)(t.arguments||[],(function(e){return e.name.value})),o=0,a=e.args;o0)return{errors:d};try{t=Object(a.a)(r)}catch(ft){return{errors:[ft]}}var h=Object(s.c)(n,t);return h.length>0?{errors:h}:q({schema:n,document:t,rootValue:i,contextValue:o,variableValues:c,operationName:l,fieldResolver:p,typeResolver:f})}var he=n(51),me=n(13),ge=n(89),ve=n(105),ye=n(157),be=n(106),xe=n(5),Ee=n(20),De=n(10),Ce=n(53);function we(e,t,n){var r,i,o,a,s,u,l=Object(c.c)(e);function p(e){return e.done?e:Se(e.value,t).then(ke,i)}if(\"function\"===typeof l.return&&(r=l.return,i=function(e){var t=function(){return Promise.reject(e)};return r.call(l).then(t,t)}),n){var f=n;o=function(e){return Se(e,f).then(ke,i)}}return a={next:function(){return l.next().then(p,o)},return:function(){return r?r.call(l).then(p,o):Promise.resolve({value:void 0,done:!0})},throw:function(e){return\"function\"===typeof l.throw?l.throw(e).then(p,o):Promise.reject(e).catch(i)}},s=c.a,u=function(){return this},s in a?Object.defineProperty(a,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):a[s]=u,a}function Se(e,t){return new Promise((function(n){return n(t(e))}))}function ke(e){return{value:e,done:!1}}function Ae(e,t,n,r,i,o,a,s){return 1===arguments.length?_e(e):_e({schema:e,document:t,rootValue:n,contextValue:r,variableValues:i,operationName:o,fieldResolver:a,subscribeFieldResolver:s})}function Te(e){if(e instanceof y.a)return{errors:[e]};throw e}function _e(e){var t=e.schema,n=e.document,r=e.rootValue,i=e.contextValue,o=e.variableValues,a=e.operationName,s=e.fieldResolver,u=e.subscribeFieldResolver,l=Oe(t,n,r,i,o,a,u),p=function(e){return q(t,n,e,i,o,a,s)};return l.then((function(e){return Object(c.d)(e)?we(e,p,Te):e}))}function Oe(e,t,n,r,i,o,a){H(e,t,i);try{var s=W(e,t,n,r,i,o,a);if(Array.isArray(s))return Promise.resolve({errors:s});var u=S(e,s.operation),p=K(s,u,s.operation.selectionSet,Object.create(null),Object.create(null)),f=Object.keys(p)[0],d=p[f],h=d[0].name.value,m=le(e,u,h);if(!m)throw new y.a('The subscription field \"'.concat(h,'\" is not defined.'),d);var x=m.subscribe||s.fieldResolver,E=g(void 0,f),D=$(s,m,d,u,E),C=X(s,m,d,x,n,D);return Promise.resolve(C).then((function(e){if(e instanceof Error)return{errors:[b(e,d,v(E))]};if(Object(c.d)(e))return e;throw new Error(\"Subscription field must return Async Iterable. Received: \"+Object(l.a)(e))}))}catch(w){return w instanceof y.a?Promise.resolve({errors:[w]}):Promise.reject(w)}}var Fe=n(107),Ne=n(133),Ie=n(152),Me=n(248),je=n(245),Le=n(161),Pe=n(159),Re=n(153),Be=n(158),ze=n(243),Ue=n(251),qe=n(253),Ve=n(154),He=n(254),We=n(256),Ge=n(250),Ke=n(163),Je=n(247),Ye=n(244),Qe=n(162),$e=n(160),Xe=n(249),Ze=n(164),et=n(242),tt=n(252),nt=n(131),rt=n(246),it=n(255),ot=n(257),at=n(258),st=n(259),ut=n(260),ct=n(261),lt=n(262),pt=n(263),ft=n(49);function dt(e){e||Object(f.a)(0,\"Received null or undefined error.\");var t=e.message||\"An unknown error occurred.\",n=e.locations,r=e.path,i=e.extensions;return i?{message:t,locations:n,path:r,extensions:i}:{message:t,locations:n,path:r}}function ht(e){var t=!(e&&!1===e.descriptions);return\"\\n query IntrospectionQuery {\\n __schema {\\n queryType { name }\\n mutationType { name }\\n subscriptionType { name }\\n types {\\n ...FullType\\n }\\n directives {\\n name\\n \".concat(t?\"description\":\"\",\"\\n locations\\n args {\\n ...InputValue\\n }\\n }\\n }\\n }\\n\\n fragment FullType on __Type {\\n kind\\n name\\n \").concat(t?\"description\":\"\",\"\\n fields(includeDeprecated: true) {\\n name\\n \").concat(t?\"description\":\"\",\"\\n args {\\n ...InputValue\\n }\\n type {\\n ...TypeRef\\n }\\n isDeprecated\\n deprecationReason\\n }\\n inputFields {\\n ...InputValue\\n }\\n interfaces {\\n ...TypeRef\\n }\\n enumValues(includeDeprecated: true) {\\n name\\n \").concat(t?\"description\":\"\",\"\\n isDeprecated\\n deprecationReason\\n }\\n possibleTypes {\\n ...TypeRef\\n }\\n }\\n\\n fragment InputValue on __InputValue {\\n name\\n \").concat(t?\"description\":\"\",\"\\n type { ...TypeRef }\\n defaultValue\\n }\\n\\n fragment TypeRef on __Type {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n \")}var mt=ht(),gt=n(284);function vt(e,t){var n=q(e,Object(a.a)(ht(t)));return!o(n)&&!n.errors&&n.data||Object(p.a)(0),n.data}var yt=n(29);function bt(e,t){Object(m.a)(e)&&Object(m.a)(e.__schema)||Object(f.a)(0,'Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: '+Object(l.a)(e));for(var n=e.__schema,r=Object(yt.a)(n.types,(function(e){return e.name}),(function(e){return function(e){if(e&&e.name&&e.kind)switch(e.kind){case E.TypeKind.SCALAR:return n=e,new C.g({name:n.name,description:n.description});case E.TypeKind.OBJECT:return function(e){if(!e.interfaces)throw new Error(\"Introspection result missing interfaces: \"+Object(l.a)(e));return new C.f({name:e.name,description:e.description,interfaces:function(){return e.interfaces.map(y)},fields:function(){return b(e)}})}(e);case E.TypeKind.INTERFACE:return t=e,new C.c({name:t.name,description:t.description,fields:function(){return b(t)}});case E.TypeKind.UNION:return function(e){if(!e.possibleTypes)throw new Error(\"Introspection result missing possibleTypes: \"+Object(l.a)(e));return new C.h({name:e.name,description:e.description,types:function(){return e.possibleTypes.map(v)}})}(e);case E.TypeKind.ENUM:return function(e){if(!e.enumValues)throw new Error(\"Introspection result missing enumValues: \"+Object(l.a)(e));return new C.a({name:e.name,description:e.description,values:Object(yt.a)(e.enumValues,(function(e){return e.name}),(function(e){return{description:e.description,deprecationReason:e.deprecationReason}}))})}(e);case E.TypeKind.INPUT_OBJECT:return function(e){if(!e.inputFields)throw new Error(\"Introspection result missing inputFields: \"+Object(l.a)(e));return new C.b({name:e.name,description:e.description,fields:function(){return x(e.inputFields)}})}(e)}var t;var n;throw new Error(\"Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema:\"+Object(l.a)(e))}(e)})),i=0,o=[].concat(me.g,E.introspectionTypes);i0?function(){return n.map((function(e){return t.getNamedType(e)}))}:[],o=r&&r.length>0?function(){return wt(r,(function(e){return t.buildField(e)}))}:Object.create(null);return new C.f({name:e.name.value,description:kt(e,this._options),interfaces:i,fields:o,astNode:e})},t._makeInterfaceDef=function(e){var t=this,n=e.fields,r=n&&n.length>0?function(){return wt(n,(function(e){return t.buildField(e)}))}:Object.create(null);return new C.c({name:e.name.value,description:kt(e,this._options),fields:r,astNode:e})},t._makeEnumDef=function(e){var t=this,n=e.values||[];return new C.a({name:e.name.value,description:kt(e,this._options),values:wt(n,(function(e){return t.buildEnumValue(e)})),astNode:e})},t._makeUnionDef=function(e){var t=this,n=e.types,r=n&&n.length>0?function(){return n.map((function(e){return t.getNamedType(e)}))}:[];return new C.h({name:e.name.value,description:kt(e,this._options),types:r,astNode:e})},t._makeScalarDef=function(e){return new C.g({name:e.name.value,description:kt(e,this._options),astNode:e})},t._makeInputObjectDef=function(e){var t=this,n=e.fields;return new C.b({name:e.name.value,description:kt(e,this._options),fields:n?function(){return wt(n,(function(e){return t.buildInputField(e)}))}:Object.create(null),astNode:e})},e}();function wt(e,t){return Object(yt.a)(e,(function(e){return e.name.value}),t)}function St(e){var t=z(D.b,e);return t&&t.reason}function kt(e,t){if(e.description)return e.description.value;if(t&&t.commentDescriptions){var n=function(e){var t=e.loc;if(!t)return;var n=[],r=t.startToken.prev;for(;r&&r.kind===xe.a.COMMENT&&r.next&&r.prev&&r.line+1===r.next.line&&r.line!==r.prev.line;){var i=String(r.value);n.push(i),r=r.prev}return n.reverse().join(\"\\n\")}(e);if(void 0!==n)return Object(xt.a)(\"\\n\"+n)}}function At(e,t){return Et(Object(a.a)(e,t),t)}var Tt=n(54),_t=n(59);function Ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ft(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:\"\";return 0===t.length?\"\":t.every((function(e){return!e.description}))?\"(\"+t.map($t).join(\", \")+\")\":\"(\\n\"+t.map((function(t,r){return Zt(e,t,\" \"+n,!r)+\" \"+n+$t(t)})).join(\"\\n\")+\"\\n\"+n+\")\"}function $t(e){var t=Object(Ut.a)(e.defaultValue,e.type),n=e.name+\": \"+String(e.type);return t&&(n+=\" = \".concat(Object(_.print)(t))),n}function Xt(e){if(!e.isDeprecated)return\"\";var t=e.deprecationReason,n=Object(Ut.a)(t,me.e);return n&&\"\"!==t&&t!==D.a?\" @deprecated(reason: \"+Object(_.print)(n)+\")\":\" @deprecated\"}function Zt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\",r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(!t.description)return\"\";var i=tn(t.description,120-n.length);if(e&&e.commentDescriptions)return en(i,n,r);var o=i.join(\"\\n\"),a=o.length>70,s=Object(xt.c)(o,\"\",a),u=n&&!r?\"\\n\"+n:n;return u+s.replace(/\\n/g,\"\\n\"+n)+\"\\n\"}function en(e,t,n){for(var r=t&&!n?\"\\n\":\"\",i=0;i0&&(a+=' at \"value'.concat(T(s),'\"')),i.push(new y.a(a+\": \"+o.message,n,void 0,void 0,void 0,o.originalError))}));return i.length>0?{errors:i,value:void 0}:{errors:void 0,value:o}}function an(e,t){var n=on(e,t).errors;return n?n.map((function(e){return e.message})):[]}function sn(e,t){var n=new he.a({}),r={kind:x.a.DOCUMENT,definitions:[]},i=new rn.a(n,void 0,e),o=new Fe.b(n,r,i),a=Object(nt.a)(o);return Object(Ee.c)(t,Object(Ee.e)(i,a)),o.getErrors()}function un(e){return{kind:\"Document\",definitions:Object(Tt.a)(e,(function(e){return e.definitions}))}}function cn(e){var t,n=[],r=Object.create(null),i=new Map,o=Object.create(null),a=0;Object(Ee.c)(e,{OperationDefinition:function(e){t=ln(e),n.push(e),i.set(e,a++)},FragmentDefinition:function(e){t=e.name.value,r[t]=e,i.set(e,a++)},FragmentSpread:function(e){var n=e.name.value;(o[t]||(o[t]=Object.create(null)))[n]=!0}});for(var s=Object.create(null),u=0;u0&&(n=\"\\n\"+n);var i=n[n.length-1];return('\"'===i&&'\\\\\"\"\"'!==n.slice(-4)||\"\\\\\"===i)&&(n+=\"\\n\"),'\"\"\"'+n+'\"\"\"'}var hn=n(71),mn=n(241);function gn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var yn=Object.freeze({TYPE_REMOVED:\"TYPE_REMOVED\",TYPE_CHANGED_KIND:\"TYPE_CHANGED_KIND\",TYPE_REMOVED_FROM_UNION:\"TYPE_REMOVED_FROM_UNION\",VALUE_REMOVED_FROM_ENUM:\"VALUE_REMOVED_FROM_ENUM\",REQUIRED_INPUT_FIELD_ADDED:\"REQUIRED_INPUT_FIELD_ADDED\",INTERFACE_REMOVED_FROM_OBJECT:\"INTERFACE_REMOVED_FROM_OBJECT\",FIELD_REMOVED:\"FIELD_REMOVED\",FIELD_CHANGED_KIND:\"FIELD_CHANGED_KIND\",REQUIRED_ARG_ADDED:\"REQUIRED_ARG_ADDED\",ARG_REMOVED:\"ARG_REMOVED\",ARG_CHANGED_KIND:\"ARG_CHANGED_KIND\",DIRECTIVE_REMOVED:\"DIRECTIVE_REMOVED\",DIRECTIVE_ARG_REMOVED:\"DIRECTIVE_ARG_REMOVED\",REQUIRED_DIRECTIVE_ARG_ADDED:\"REQUIRED_DIRECTIVE_ARG_ADDED\",DIRECTIVE_LOCATION_REMOVED:\"DIRECTIVE_LOCATION_REMOVED\"}),bn=Object.freeze({VALUE_ADDED_TO_ENUM:\"VALUE_ADDED_TO_ENUM\",TYPE_ADDED_TO_UNION:\"TYPE_ADDED_TO_UNION\",OPTIONAL_INPUT_FIELD_ADDED:\"OPTIONAL_INPUT_FIELD_ADDED\",OPTIONAL_ARG_ADDED:\"OPTIONAL_ARG_ADDED\",INTERFACE_ADDED_TO_OBJECT:\"INTERFACE_ADDED_TO_OBJECT\",ARG_DEFAULT_VALUE_CHANGE:\"ARG_DEFAULT_VALUE_CHANGE\"});function xn(e,t){return Dn(e,t).filter((function(e){return e.type in yn}))}function En(e,t){return Dn(e,t).filter((function(e){return e.type in bn}))}function Dn(e,t){return[].concat(function(e,t){for(var n=[],r=In(Object(O.a)(e.getTypeMap()),Object(O.a)(t.getTypeMap())),i=0,o=r.removed;i=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error(\"Invalid value of type \"+typeof e+\" for \"+n+\" argument when connecting component \"+r.wrappedComponentName+\".\")}}function B(e,t){return e===t}function z(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?w:n,i=t.mapStateToPropsFactories,o=void 0===i?N:i,a=t.mapDispatchToPropsFactories,s=void 0===a?F:a,u=t.mergePropsFactories,c=void 0===u?M:u,l=t.selectorFactory,d=void 0===l?P:l;return function(e,t,n,i){void 0===i&&(i={});var a=i,u=a.pure,l=void 0===u||u,h=a.areStatesEqual,m=void 0===h?B:h,g=a.areOwnPropsEqual,v=void 0===g?k:g,y=a.areStatePropsEqual,b=void 0===y?k:y,x=a.areMergedPropsEqual,E=void 0===x?k:x,D=Object(f.a)(a,[\"pure\",\"areStatesEqual\",\"areOwnPropsEqual\",\"areStatePropsEqual\",\"areMergedPropsEqual\"]),C=R(e,o,\"mapStateToProps\"),w=R(t,s,\"mapDispatchToProps\"),S=R(n,c,\"mergeProps\");return r(d,Object(p.a)({methodName:\"connect\",getDisplayName:function(e){return\"Connect(\"+e+\")\"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:C,initMapDispatchToProps:w,initMergeProps:S,pure:l,areStatesEqual:m,areOwnPropsEqual:v,areStatePropsEqual:b,areMergedPropsEqual:E},D))}}var U=z();function q(){return Object(r.useContext)(o)}function V(e){void 0===e&&(e=o);var t=e===o?q:function(){return Object(r.useContext)(e)};return function(){return t().store}}var H=V();function W(e){void 0===e&&(e=o);var t=e===o?H:V(e);return function(){return t().dispatch}}var G=W(),K=function(e,t){return e===t};function J(e){void 0===e&&(e=o);var t=e===o?q:function(){return Object(r.useContext)(e)};return function(e,n){void 0===n&&(n=K);var i=t();return function(e,t,n,i){var o,a=Object(r.useReducer)((function(e){return e+1}),0)[1],s=Object(r.useMemo)((function(){return new c(n,i)}),[n,i]),u=Object(r.useRef)(),l=Object(r.useRef)(),p=Object(r.useRef)();try{o=e!==l.current||u.current?e(n.getState()):p.current}catch(f){throw u.current&&(f.message+=\"\\nThe error may be correlated with this previous error:\\n\"+u.current.stack+\"\\n\\n\"),f}return g((function(){l.current=e,p.current=o,u.current=void 0})),g((function(){function e(){try{var e=l.current(n.getState());if(t(e,p.current))return;p.current=e}catch(f){u.current=f}a({})}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}}),[n,s]),o}(e,n,i.store,i.subscription)}}var Y,Q=J(),$=n(61);Y=$.unstable_batchedUpdates,a=Y},function(e,t,n){\"use strict\";(function(e){n.d(t,\"a\",(function(){return a})),n.d(t,\"b\",(function(){return s}));var r=n(16),i=Object.setPrototypeOf,o=void 0===i?function(e,t){return e.__proto__=t,e}:i,a=function(e){function t(n){void 0===n&&(n=\"Invariant Violation\");var r=e.call(this,\"number\"===typeof n?\"Invariant Violation: \"+n+\" (see https://github.com/apollographql/invariant-packages)\":n)||this;return r.framesToPop=1,r.name=\"Invariant Violation\",o(r,t.prototype),r}return Object(r.b)(t,e),t}(Error);function s(e,t){if(!e)throw new a(t)}function u(e){return function(){return console[e].apply(console,arguments)}}!function(e){e.warn=u(\"warn\"),e.error=u(\"error\")}(s||(s={}));var c={env:{}};if(\"object\"===typeof e)c=e;else try{Function(\"stub\",\"process = stub\")(c)}catch(l){}}).call(this,n(91))},function(e,t,n){\"use strict\";function r(e,t){return e===t}function i(e,t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var r=t.length,i=0;i1&&void 0!==arguments[1]?arguments[1]:r,n=null,o=null;return function(){return i(t,n,arguments)||(o=e.apply(null,arguments)),n=arguments,o}}function a(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return\"function\"===typeof e}))){var n=t.map((function(e){return typeof e})).join(\", \");throw new Error(\"Selector creators expect all input-selectors to be functions, instead received the following types: [\"+n+\"]\")}return t}function s(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:u;if(\"object\"!==typeof e)throw new Error(\"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a \"+typeof e);var n=Object.keys(e);return t(n.map((function(t){return e[t]})),(function(){for(var e=arguments.length,t=Array(e),r=0;r>>0;if(\"\"+n!==t||4294967295===n)return NaN;t=n}return t<0?a(e)+t:t}function u(){return!0}function c(e,t,n){return(0===e&&!d(e)||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function l(e,t){return f(e,t,0)}function p(e,t){return f(e,t,t)}function f(e,t,n){return void 0===e?n:d(e)?t===1/0?t:0|Math.max(0,t+e):void 0===t||t===e?e:0|Math.min(t,e)}function d(e){return e<0||0===e&&1/e===-1/0}function h(e){return Boolean(e&&e[\"@@__IMMUTABLE_ITERABLE__@@\"])}function m(e){return Boolean(e&&e[\"@@__IMMUTABLE_KEYED__@@\"])}function g(e){return Boolean(e&&e[\"@@__IMMUTABLE_INDEXED__@@\"])}function v(e){return m(e)||g(e)}var y=function(e){return h(e)?e:R(e)},b=function(e){function t(e){return m(e)?e:B(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(y),x=function(e){function t(e){return g(e)?e:z(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(y),E=function(e){function t(e){return h(e)&&!v(e)?e:U(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(y);y.Keyed=b,y.Indexed=x,y.Set=E;function D(e){return Boolean(e&&e[\"@@__IMMUTABLE_SEQ__@@\"])}function C(e){return Boolean(e&&e[\"@@__IMMUTABLE_RECORD__@@\"])}function w(e){return h(e)||C(e)}var S=\"@@__IMMUTABLE_ORDERED__@@\";function k(e){return Boolean(e&&e[S])}var A=\"function\"===typeof Symbol&&Symbol.iterator,T=A||\"@@iterator\",_=function(e){this.next=e};function O(e,t,n,r){var i=0===e?t:1===e?n:[t,n];return r?r.value=i:r={value:i,done:!1},r}function F(){return{value:void 0,done:!0}}function N(e){return!!j(e)}function I(e){return e&&\"function\"===typeof e.next}function M(e){var t=j(e);return t&&t.call(e)}function j(e){var t=e&&(A&&e[A]||e[\"@@iterator\"]);if(\"function\"===typeof t)return t}_.prototype.toString=function(){return\"[Iterator]\"},_.KEYS=0,_.VALUES=1,_.ENTRIES=2,_.prototype.inspect=_.prototype.toSource=function(){return this.toString()},_.prototype[T]=function(){return this};var L=Object.prototype.hasOwnProperty;function P(e){return!(!Array.isArray(e)&&\"string\"!==typeof e)||e&&\"object\"===typeof e&&Number.isInteger(e.length)&&e.length>=0&&(0===e.length?1===Object.keys(e).length:e.hasOwnProperty(e.length-1))}var R=function(e){function t(e){return null===e||void 0===e?G():w(e)?e.toSeq():function(e){var t=Y(e);if(t)return t;if(\"object\"===typeof e)return new V(e);throw new TypeError(\"Expected Array or collection object of values, or keyed object: \"+e)}(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.toSeq=function(){return this},t.prototype.toString=function(){return this.__toString(\"Seq {\",\"}\")},t.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},t.prototype.__iterate=function(e,t){var n=this._cache;if(n){for(var r=n.length,i=0;i!==r;){var o=n[t?r-++i:i++];if(!1===e(o[1],o[0],this))break}return i}return this.__iterateUncached(e,t)},t.prototype.__iterator=function(e,t){var n=this._cache;if(n){var r=n.length,i=0;return new _((function(){if(i===r)return{value:void 0,done:!0};var o=n[t?r-++i:i++];return O(e,o[0],o[1])}))}return this.__iteratorUncached(e,t)},t}(y),B=function(e){function t(e){return null===e||void 0===e?G().toKeyedSeq():h(e)?m(e)?e.toSeq():e.fromEntrySeq():C(e)?e.toSeq():K(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.toKeyedSeq=function(){return this},t}(R),z=function(e){function t(e){return null===e||void 0===e?G():h(e)?m(e)?e.entrySeq():e.toIndexedSeq():C(e)?e.toSeq().entrySeq():J(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toIndexedSeq=function(){return this},t.prototype.toString=function(){return this.__toString(\"Seq [\",\"]\")},t}(R),U=function(e){function t(e){return(h(e)&&!v(e)?e:z(e)).toSetSeq()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toSetSeq=function(){return this},t}(R);R.isSeq=D,R.Keyed=B,R.Set=U,R.Indexed=z,R.prototype[\"@@__IMMUTABLE_SEQ__@@\"]=!0;var q=function(e){function t(e){this._array=e,this.size=e.length}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(e,t){return this.has(e)?this._array[s(this,e)]:t},t.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length,i=0;i!==r;){var o=t?r-++i:i++;if(!1===e(n[o],o,this))break}return i},t.prototype.__iterator=function(e,t){var n=this._array,r=n.length,i=0;return new _((function(){if(i===r)return{value:void 0,done:!0};var o=t?r-++i:i++;return O(e,o,n[o])}))},t}(z),V=function(e){function t(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},t.prototype.has=function(e){return L.call(this._object,e)},t.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,i=r.length,o=0;o!==i;){var a=r[t?i-++o:o++];if(!1===e(n[a],a,this))break}return o},t.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,i=r.length,o=0;return new _((function(){if(o===i)return{value:void 0,done:!0};var a=r[t?i-++o:o++];return O(e,a,n[a])}))},t}(B);V.prototype[S]=!0;var H,W=function(e){function t(e){this._collection=e,this.size=e.length||e.size}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=M(this._collection),r=0;if(I(n))for(var i;!(i=n.next()).done&&!1!==e(i.value,r++,this););return r},t.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=M(this._collection);if(!I(n))return new _(F);var r=0;return new _((function(){var t=n.next();return t.done?t:O(e,r++,t.value)}))},t}(z);function G(){return H||(H=new q([]))}function K(e){var t=Array.isArray(e)?new q(e):N(e)?new W(e):void 0;if(t)return t.fromEntrySeq();if(\"object\"===typeof e)return new V(e);throw new TypeError(\"Expected Array or collection object of [k, v] entries, or keyed object: \"+e)}function J(e){var t=Y(e);if(t)return t;throw new TypeError(\"Expected Array or collection object of values: \"+e)}function Y(e){return P(e)?new q(e):N(e)?new W(e):void 0}function Q(e){return Boolean(e&&e[\"@@__IMMUTABLE_MAP__@@\"])}function $(e){return Q(e)&&k(e)}function X(e){return Boolean(e&&\"function\"===typeof e.equals&&\"function\"===typeof e.hashCode)}function Z(e,t){if(e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1;if(\"function\"===typeof e.valueOf&&\"function\"===typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!==e&&t!==t)return!0;if(!e||!t)return!1}return!!(X(e)&&X(t)&&e.equals(t))}var ee=\"function\"===typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function te(e){return e>>>1&1073741824|3221225471&e}var ne=Object.prototype.valueOf;function re(e){switch(typeof e){case\"boolean\":return e?1108378657:1108378656;case\"number\":return function(e){if(e!==e||e===1/0)return 0;var t=0|e;t!==e&&(t^=4294967295*e);for(;e>4294967295;)t^=e/=4294967295;return te(t)}(e);case\"string\":return e.length>pe?function(e){var t=he[e];void 0===t&&(t=ie(e),de===fe&&(de=0,he={}),de++,he[e]=t);return t}(e):ie(e);case\"object\":case\"function\":return null===e?1108378658:\"function\"===typeof e.hashCode?te(e.hashCode(e)):(e.valueOf!==ne&&\"function\"===typeof e.valueOf&&(e=e.valueOf(e)),function(e){var t;if(ue&&void 0!==(t=se.get(e)))return t;if(void 0!==(t=e[le]))return t;if(!ae){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[le]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}t=++ce,1073741824&ce&&(ce=0);if(ue)se.set(e,t);else{if(void 0!==oe&&!1===oe(e))throw new Error(\"Non-extensible objects are not allowed as keys.\");if(ae)Object.defineProperty(e,le,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[le]=t;else{if(void 0===e.nodeType)throw new Error(\"Unable to set a non-enumerable property on object.\");e[le]=t}}return t}(e));case\"undefined\":return 1108378659;default:if(\"function\"===typeof e.toString)return ie(e.toString());throw new Error(\"Value type \"+typeof e+\" cannot be hashed.\")}}function ie(e){for(var t=0,n=0;n=0&&(d.get=function(t,n){return(t=s(this,t))>=0&&tu)return{value:void 0,done:!0};var e=i.next();return r||1===t||e.done?e:O(t,s-1,0===t?void 0:e.value[1],e)}))},d}function we(e,t,n,r){var i=Me(e);return i.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,u=0;return e.__iterate((function(e,o,c){if(!s||!(s=t.call(n,e,o,c)))return u++,i(e,r?o:u-1,a)})),u},i.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=e.__iterator(2,o),u=!0,c=0;return new _((function(){var e,o,l;do{if((e=s.next()).done)return r||1===i?e:O(i,c++,0===i?void 0:e.value[1],e);var p=e.value;o=p[0],l=p[1],u&&(u=t.call(n,l,o,a))}while(u);return 2===i?e:O(i,o,l,e)}))},i}function Se(e,t){var n=m(e),r=[e].concat(t).map((function(e){return h(e)?n&&(e=b(e)):e=n?K(e):J(Array.isArray(e)?e:[e]),e})).filter((function(e){return 0!==e.size}));if(0===r.length)return e;if(1===r.length){var i=r[0];if(i===e||n&&m(i)||g(e)&&g(i))return i}var o=new q(r);return n?o=o.toKeyedSeq():g(e)||(o=o.toSetSeq()),(o=o.flatten(!0)).size=r.reduce((function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}}),0),o}function ke(e,t,n){var r=Me(e);return r.__iterateUncached=function(i,o){if(o)return this.cacheResult().__iterate(i,o);var a=0,s=!1;return function e(u,c){u.__iterate((function(o,u){return(!t||c0}function Oe(e,t,n,r){var i=Me(e),o=new q(n).map((function(e){return e.size}));return i.size=r?o.max():o.min(),i.__iterate=function(e,t){for(var n,r=this.__iterator(1,t),i=0;!(n=r.next()).done&&!1!==e(n.value,i++,this););return i},i.__iteratorUncached=function(e,i){var o=n.map((function(e){return e=y(e),M(i?e.reverse():e)})),a=0,s=!1;return new _((function(){var n;return s||(n=o.map((function(e){return e.next()})),s=r?n.every((function(e){return e.done})):n.some((function(e){return e.done}))),s?{value:void 0,done:!0}:O(e,a++,t.apply(null,n.map((function(e){return e.value}))))}))},i}function Fe(e,t){return e===t?e:D(e)?t:e.constructor(t)}function Ne(e){if(e!==Object(e))throw new TypeError(\"Expected [K, V] tuple: \"+e)}function Ie(e){return m(e)?b:g(e)?x:E}function Me(e){return Object.create((m(e)?B:g(e)?z:U).prototype)}function je(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):R.prototype.cacheResult.call(this)}function Le(e,t){return void 0===e&&void 0===t?0:void 0===e?1:void 0===t?-1:e>t?1:e0;)t[n]=arguments[n+1];if(\"function\"!==typeof e)throw new TypeError(\"Invalid merger function: \"+e);return ot(this,t,e)}function ot(e,t,n){for(var i=[],o=0;o0;)t[n]=arguments[n+1];return pt(e,t)}function st(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];return pt(t,n,e)}function ut(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return lt(e,t)}function ct(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];return lt(t,n,e)}function lt(e,t,n){return pt(e,t,function(e){return function t(n,r,i){return qe(n)&&qe(r)?pt(n,[r],t):e?e(n,r,i):r}}(n))}function pt(e,t,n){if(!qe(e))throw new TypeError(\"Cannot merge into non-data-structure value: \"+e);if(w(e))return\"function\"===typeof n&&e.mergeWith?e.mergeWith.apply(e,[n].concat(t)):e.merge?e.merge.apply(e,t):e.concat.apply(e,t);for(var r=Array.isArray(e),i=e,o=r?x:b,a=r?function(t){i===e&&(i=Ge(i)),i.push(t)}:function(t,r){var o=L.call(i,r),a=o&&n?n(i[r],t,r):t;o&&a===i[r]||(i===e&&(i=Ge(i)),i[r]=a)},s=0;s0;)t[n]=arguments[n+1];return lt(this,t,e)}function ht(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return Ye(this,e,Nt(),(function(e){return pt(e,t)}))}function mt(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return Ye(this,e,Nt(),(function(e){return lt(e,t)}))}function gt(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this}function vt(){return this.__ownerID?this:this.__ensureOwner(new o)}function yt(){return this.__ensureOwner()}function bt(){return this.__altered}ge.prototype.cacheResult=me.prototype.cacheResult=ve.prototype.cacheResult=ye.prototype.cacheResult=je;var xt=function(e){function t(t){return null===t||void 0===t?Nt():Q(t)&&!k(t)?t:Nt().withMutations((function(n){var r=e(t);Be(r.size),r.forEach((function(e,t){return n.set(t,e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return Nt().withMutations((function(t){for(var n=0;n=e.length)throw new Error(\"Missing value for key: \"+e[n]);t.set(e[n],e[n+1])}}))},t.prototype.toString=function(){return this.__toString(\"Map {\",\"}\")},t.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},t.prototype.set=function(e,t){return It(this,e,t)},t.prototype.remove=function(e){return It(this,e,r)},t.prototype.deleteAll=function(e){var t=y(e);return 0===t.size?this:this.withMutations((function(e){t.forEach((function(t){return e.remove(t)}))}))},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Nt()},t.prototype.sort=function(e){return rn(Ae(this,e))},t.prototype.sortBy=function(e,t){return rn(Ae(this,t,e))},t.prototype.map=function(e,t){return this.withMutations((function(n){n.forEach((function(r,i){n.set(i,e.call(t,r,i,n))}))}))},t.prototype.__iterator=function(e,t){return new Tt(this,e,t)},t.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate((function(t){return r++,e(t[1],t[0],n)}),t),r},t.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Ft(this.size,this._root,e,this.__hash):0===this.size?Nt():(this.__ownerID=e,this.__altered=!1,this)},t}(b);xt.isMap=Q;var Et=xt.prototype;Et[\"@@__IMMUTABLE_MAP__@@\"]=!0,Et.delete=Et.remove,Et.removeAll=Et.deleteAll,Et.setIn=$e,Et.removeIn=Et.deleteIn=Ze,Et.update=tt,Et.updateIn=nt,Et.merge=Et.concat=rt,Et.mergeWith=it,Et.mergeDeep=ft,Et.mergeDeepWith=dt,Et.mergeIn=ht,Et.mergeDeepIn=mt,Et.withMutations=gt,Et.wasAltered=bt,Et.asImmutable=yt,Et[\"@@transducer/init\"]=Et.asMutable=vt,Et[\"@@transducer/step\"]=function(e,t){return e.set(t[0],t[1])},Et[\"@@transducer/result\"]=function(e){return e.asImmutable()};var Dt=function(e,t){this.ownerID=e,this.entries=t};Dt.prototype.get=function(e,t,n,r){for(var i=this.entries,o=0,a=i.length;o=Bt)return function(e,t,n,r){e||(e=new o);for(var i=new kt(e,re(n),[n,r]),a=0;a>>e)),o=this.bitmap;return 0===(o&i)?r:this.nodes[Pt(o&i-1)].get(e+5,t,n,r)},Ct.prototype.update=function(e,t,n,i,o,a,s){void 0===n&&(n=re(i));var u=31&(0===t?n:n>>>t),c=1<=zt)return function(e,t,n,r,i){for(var o=0,a=new Array(32),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[o++]:void 0;return a[r]=i,new wt(e,o+1,a)}(e,d,l,u,m);if(p&&!m&&2===d.length&&jt(d[1^f]))return d[1^f];if(p&&m&&1===d.length&&jt(m))return m;var g=e&&e===this.ownerID,v=p?m?l:l^c:l|c,y=p?m?Rt(d,f,m,g):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var i=new Array(r),o=0,a=0;a>>e),o=this.nodes[i];return o?o.get(e+5,t,n,r):r},wt.prototype.update=function(e,t,n,i,o,a,s){void 0===n&&(n=re(i));var u=31&(0===t?n:n>>>t),c=o===r,l=this.nodes,p=l[u];if(c&&!p)return this;var f=Mt(p,e,t+5,n,i,o,a,s);if(f===p)return this;var d=this.count;if(p){if(!f&&--d>>n),s=31&(0===n?r:r>>>n),u=a===s?[Lt(e,t,n+5,r,i)]:(o=new kt(t,r,i),a>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function Rt(e,t,n,r){var i=r?e:Pe(e);return i[t]=n,i}var Bt=8,zt=16,Ut=8;function qt(e){return Boolean(e&&e[\"@@__IMMUTABLE_LIST__@@\"])}var Vt=function(e){function t(t){var n=Qt();if(null===t||void 0===t)return n;if(qt(t))return t;var r=e(t),i=r.size;return 0===i?n:(Be(i),i>0&&i<32?Yt(0,i,5,null,new Wt(r.toArray())):n.withMutations((function(e){e.setSize(i),r.forEach((function(t,n){return e.set(n,t)}))})))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString(\"List [\",\"]\")},t.prototype.get=function(e,t){if((e=s(this,e))>=0&&e=e.size||t<0)return e.withMutations((function(e){t<0?en(e,t).set(0,n):en(e,0,t+1).set(t,n)}));t+=e._origin;var r=e._tail,i=e._root,o={value:!1};t>=tn(e._capacity)?r=$t(r,e.__ownerID,0,t,n,o):i=$t(i,e.__ownerID,e._level,t,n,o);if(!o.value)return e;if(e.__ownerID)return e._root=i,e._tail=r,e.__hash=void 0,e.__altered=!0,e;return Yt(e._origin,e._capacity,e._level,i,r)}(this,e,t)},t.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},t.prototype.insert=function(e,t){return this.splice(e,0,t)},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=5,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Qt()},t.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations((function(n){en(n,0,t+e.length);for(var r=0;r>>t&31;if(r>=this.array.length)return new Wt([],e);var i,o=0===r;if(t>0){var a=this.array[r];if((i=a&&a.removeBefore(e,t-5,n))===a&&o)return this}if(o&&!i)return this;var s=Xt(this,e);if(!o)for(var u=0;u>>t&31;if(i>=this.array.length)return this;if(t>0){var o=this.array[i];if((r=o&&o.removeAfter(e,t-5,n))===o&&i===this.array.length-1)return this}var a=Xt(this,e);return a.array.splice(i+1),r&&(a.array[i]=r),a};var Gt,Kt={};function Jt(e,t){var n=e._origin,r=e._capacity,i=tn(r),o=e._tail;return a(e._root,e._level,0);function a(e,s,u){return 0===s?function(e,a){var s=a===i?o&&o.array:e&&e.array,u=a>n?0:n-a,c=r-a;c>32&&(c=32);return function(){if(u===c)return Kt;var e=t?--c:u++;return s&&s[e]}}(e,u):function(e,i,o){var s,u=e&&e.array,c=o>n?0:n-o>>i,l=1+(r-o>>i);l>32&&(l=32);return function(){for(;;){if(s){var e=s();if(e!==Kt)return e;s=null}if(c===l)return Kt;var n=t?--l:c++;s=a(u&&u[n],i-5,o+(n<>>n&31,c=e&&u0){var l=e&&e.array[u],p=$t(l,t,n-5,r,o,a);return p===l?e:((s=Xt(e,t)).array[u]=p,s)}return c&&e.array[u]===o?e:(a&&i(a),s=Xt(e,t),void 0===o&&u===s.array.length-1?s.array.pop():s.array[u]=o,s)}function Xt(e,t){return t&&e&&t===e.ownerID?e:new Wt(e?e.array.slice():[],t)}function Zt(e,t){if(t>=tn(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&31],r-=5;return n}}function en(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new o,i=e._origin,a=e._capacity,s=i+t,u=void 0===n?a:n<0?a+n:i+n;if(s===i&&u===a)return e;if(s>=u)return e.clear();for(var c=e._level,l=e._root,p=0;s+p<0;)l=new Wt(l&&l.array.length?[void 0,l]:[],r),p+=1<<(c+=5);p&&(s+=p,i+=p,u+=p,a+=p);for(var f=tn(a),d=tn(u);d>=1<f?new Wt([],r):h;if(h&&d>f&&s5;v-=5){var y=f>>>v&31;g=g.array[y]=Xt(g.array[y],r)}g.array[f>>>5&31]=h}if(u=d)s-=d,u-=d,c=5,l=null,m=m&&m.removeBefore(r,0,s);else if(s>i||d>>c&31;if(b!==d>>>c&31)break;b&&(p+=(1<i&&(l=l.removeBefore(r,c,s-p)),l&&d>>5<<5}var nn,rn=function(e){function t(e){return null===e||void 0===e?an():$(e)?e:an().withMutations((function(t){var n=b(e);Be(n.size),n.forEach((function(e,n){return t.set(n,e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString(\"OrderedMap {\",\"}\")},t.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):an()},t.prototype.set=function(e,t){return sn(this,e,t)},t.prototype.remove=function(e){return sn(this,e,r)},t.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},t.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate((function(t){return t&&e(t[1],t[0],n)}),t)},t.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},t.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?on(t,n,e,this.__hash):0===this.size?an():(this.__ownerID=e,this._map=t,this._list=n,this)},t}(xt);function on(e,t,n,r){var i=Object.create(rn.prototype);return i.size=e?e.size:0,i._map=e,i._list=t,i.__ownerID=n,i.__hash=r,i}function an(){return nn||(nn=on(Nt(),Qt()))}function sn(e,t,n){var i,o,a=e._map,s=e._list,u=a.get(t),c=void 0!==u;if(n===r){if(!c)return e;s.size>=32&&s.size>=2*a.size?(i=(o=s.filter((function(e,t){return void 0!==e&&u!==t}))).toKeyedSeq().map((function(e){return e[0]})).flip().toMap(),e.__ownerID&&(i.__ownerID=o.__ownerID=e.__ownerID)):(i=a.remove(t),o=u===s.size-1?s.pop():s.set(u,void 0))}else if(c){if(n===s.get(u)[1])return e;i=a,o=s.set(u,[t,n])}else i=a.set(t,s.size),o=s.set(s.size,[t,n]);return e.__ownerID?(e.size=i.size,e._map=i,e._list=o,e.__hash=void 0,e):on(i,o)}rn.isOrderedMap=$,rn.prototype[S]=!0,rn.prototype.delete=rn.prototype.remove;function un(e){return Boolean(e&&e[\"@@__IMMUTABLE_STACK__@@\"])}var cn=function(e){function t(e){return null===e||void 0===e?dn():un(e)?e:dn().pushAll(e)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString(\"Stack [\",\"]\")},t.prototype.get=function(e,t){var n=this._head;for(e=s(this,e);n&&e--;)n=n.next;return n?n.value:t},t.prototype.peek=function(){return this._head&&this._head.value},t.prototype.push=function(){var e=arguments;if(0===arguments.length)return this;for(var t=this.size+arguments.length,n=this._head,r=arguments.length-1;r>=0;r--)n={value:e[r],next:n};return this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):fn(t,n)},t.prototype.pushAll=function(t){if(0===(t=e(t)).size)return this;if(0===this.size&&un(t))return t;Be(t.size);var n=this.size,r=this._head;return t.__iterate((function(e){n++,r={value:e,next:r}}),!0),this.__ownerID?(this.size=n,this._head=r,this.__hash=void 0,this.__altered=!0,this):fn(n,r)},t.prototype.pop=function(){return this.slice(1)},t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):dn()},t.prototype.slice=function(t,n){if(c(t,n,this.size))return this;var r=l(t,this.size);if(p(n,this.size)!==this.size)return e.prototype.slice.call(this,t,n);for(var i=this.size-r,o=this._head;r--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):fn(i,o)},t.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?fn(this.size,this._head,e,this.__hash):0===this.size?dn():(this.__ownerID=e,this.__altered=!1,this)},t.prototype.__iterate=function(e,t){var n=this;if(t)return new q(this.toArray()).__iterate((function(t,r){return e(t,r,n)}),t);for(var r=0,i=this._head;i&&!1!==e(i.value,r++,this);)i=i.next;return r},t.prototype.__iterator=function(e,t){if(t)return new q(this.toArray()).__iterator(e,t);var n=0,r=this._head;return new _((function(){if(r){var t=r.value;return r=r.next,O(e,n++,t)}return{value:void 0,done:!0}}))},t}(x);cn.isStack=un;var ln,pn=cn.prototype;function fn(e,t,n,r){var i=Object.create(pn);return i.size=e,i._head=t,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function dn(){return ln||(ln=fn(0))}pn[\"@@__IMMUTABLE_STACK__@@\"]=!0,pn.shift=pn.pop,pn.unshift=pn.push,pn.unshiftAll=pn.pushAll,pn.withMutations=gt,pn.wasAltered=bt,pn.asImmutable=yt,pn[\"@@transducer/init\"]=pn.asMutable=vt,pn[\"@@transducer/step\"]=function(e,t){return e.unshift(t)},pn[\"@@transducer/result\"]=function(e){return e.asImmutable()};function hn(e){return Boolean(e&&e[\"@@__IMMUTABLE_SET__@@\"])}function mn(e){return hn(e)&&k(e)}function gn(e,t){if(e===t)return!0;if(!h(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||m(e)!==m(t)||g(e)!==g(t)||k(e)!==k(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!v(e);if(k(e)){var i=e.entries();return t.every((function(e,t){var r=i.next().value;return r&&Z(r[1],e)&&(n||Z(r[0],t))}))&&i.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)\"function\"===typeof e.cacheResult&&e.cacheResult();else{o=!0;var a=e;e=t,t=a}var s=!0,u=t.__iterate((function(t,i){if(n?!e.has(t):o?!Z(t,e.get(i,r)):!Z(e.get(i,r),t))return s=!1,!1}));return s&&e.size===u}function vn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}function yn(e){if(!e||\"object\"!==typeof e)return e;if(!h(e)){if(!qe(e))return e;e=R(e)}if(m(e)){var t={};return e.__iterate((function(e,n){t[n]=yn(e)})),t}var n=[];return e.__iterate((function(e){n.push(yn(e))})),n}var bn=function(e){function t(t){return null===t||void 0===t?wn():hn(t)&&!k(t)?t:wn().withMutations((function(n){var r=e(t);Be(r.size),r.forEach((function(e){return n.add(e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(e){return this(b(e).keySeq())},t.intersect=function(e){return(e=y(e).toArray()).length?En.intersect.apply(t(e.pop()),e):wn()},t.union=function(e){return(e=y(e).toArray()).length?En.union.apply(t(e.pop()),e):wn()},t.prototype.toString=function(){return this.__toString(\"Set {\",\"}\")},t.prototype.has=function(e){return this._map.has(e)},t.prototype.add=function(e){return Dn(this,this._map.set(e,e))},t.prototype.remove=function(e){return Dn(this,this._map.remove(e))},t.prototype.clear=function(){return Dn(this,this._map.clear())},t.prototype.map=function(e,t){var n=this,r=[],i=[];return this.forEach((function(o){var a=e.call(t,o,o,n);a!==o&&(r.push(o),i.push(a))})),this.withMutations((function(e){r.forEach((function(t){return e.remove(t)})),i.forEach((function(t){return e.add(t)}))}))},t.prototype.union=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];return 0===(t=t.filter((function(e){return 0!==e.size}))).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations((function(n){for(var r=0;r=0&&t=0&&n>>-15,461845907),t=ee(t<<13|t>>>-13,5),t=ee((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=te((t=ee(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(n?t?function(e,t){r=31*r+Un(re(e),re(t))|0}:function(e,t){r=r+Un(re(e),re(t))|0}:t?function(e){r=31*r+re(e)|0}:function(e){r=r+re(e)|0}),r)}(this))}});var Fn=y.prototype;Fn[\"@@__IMMUTABLE_ITERABLE__@@\"]=!0,Fn[T]=Fn.values,Fn.toJSON=Fn.toArray,Fn.__toStringMapper=Ve,Fn.inspect=Fn.toSource=function(){return this.toString()},Fn.chain=Fn.flatMap,Fn.contains=Fn.includes,vn(b,{flip:function(){return Fe(this,be(this))},mapEntries:function(e,t){var n=this,r=0;return Fe(this,this.toSeq().map((function(i,o){return e.call(t,[o,i],r++,n)})).fromEntrySeq())},mapKeys:function(e,t){var n=this;return Fe(this,this.toSeq().flip().map((function(r,i){return e.call(t,r,i,n)})).flip())}});var Nn=b.prototype;Nn[\"@@__IMMUTABLE_KEYED__@@\"]=!0,Nn[T]=Fn.entries,Nn.toJSON=On,Nn.__toStringMapper=function(e,t){return Ve(t)+\": \"+Ve(e)},vn(x,{toKeyedSeq:function(){return new me(this,!1)},filter:function(e,t){return Fe(this,De(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return Fe(this,Ee(this,!1))},slice:function(e,t){return Fe(this,Ce(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(t||0,0),0===n||2===n&&!t)return this;e=l(e,e<0?this.count():this.size);var r=this.slice(0,e);return Fe(this,1===n?r:r.concat(Pe(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(e){return this.get(0,e)},flatten:function(e){return Fe(this,ke(this,e,!1))},get:function(e,t){return(e=s(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find((function(t,n){return n===e}),void 0,t)},has:function(e){return(e=s(this,e))>=0&&(void 0!==this.size?this.size===1/0||et?-1:0}function Un(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}In[\"@@__IMMUTABLE_INDEXED__@@\"]=!0,In[S]=!0,vn(E,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),E.prototype.has=Fn.includes,E.prototype.contains=E.prototype.includes,vn(B,b.prototype),vn(z,x.prototype),vn(U,E.prototype);var qn=function(e){function t(e){return null===e||void 0===e?Gn():mn(e)?e:Gn().withMutations((function(t){var n=E(e);Be(n.size),n.forEach((function(e){return t.add(e)}))}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(e){return this(b(e).keySeq())},t.prototype.toString=function(){return this.__toString(\"OrderedSet {\",\"}\")},t}(bn);qn.isOrderedSet=mn;var Vn,Hn=qn.prototype;function Wn(e,t){var n=Object.create(Hn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function Gn(){return Vn||(Vn=Wn(an()))}Hn[S]=!0,Hn.zip=In.zip,Hn.zipWith=In.zipWith,Hn.__empty=Gn,Hn.__make=Wn;var Kn=function(e,t){var n,r=function(o){var a=this;if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var s=Object.keys(e),u=i._indices={};i._name=t,i._keys=s,i._defaultValues=e;for(var c=0;c2?[]:void 0,{\"\":e})}function nr(e,t){return m(t)?t.toMap():t.toList()}var rr=\"4.0.0-rc.11\",ir={version:rr,Collection:y,Iterable:y,Seq:R,Map:xt,OrderedMap:rn,List:Vt,Stack:cn,Set:bn,OrderedSet:qn,Record:Kn,Range:kn,Repeat:er,is:Z,fromJS:tr,hash:re,isImmutable:w,isCollection:h,isKeyed:m,isIndexed:g,isAssociative:v,isOrdered:k,isValueObject:X,isSeq:D,isList:qt,isMap:Q,isOrderedMap:$,isStack:un,isSet:hn,isOrderedSet:mn,isRecord:C,get:We,getIn:An,has:He,hasIn:_n,merge:at,mergeDeep:ut,mergeWith:st,mergeDeepWith:ct,remove:Ke,removeIn:Xe,set:Je,setIn:Qe,update:et,updateIn:Ye},or=y;t.default=ir},function(e,t,n){\"use strict\";var r=n(102),i=[\"kind\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"defaultStyle\",\"styleAliases\"],o=[\"scalar\",\"sequence\",\"mapping\"];e.exports=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new r('Unknown option \"'+t+'\" is met in definition of \"'+e+'\" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===o.indexOf(this.kind))throw new r('Unknown kind \"'+this.kind+'\" is specified for \"'+e+'\" YAML type.')}},function(e,t,n){\"use strict\";function r(e,t){return e.reduce((function(e,n){return e[t(n)]=n,e}),Object.create(null))}n.d(t,\"a\",(function(){return r}))},function(e,t,n){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(50);function o(e,t){return function(n){var r;return(r={})[e]=n||t,r}}t.editQuery=(r=i.createActions({EDIT_QUERY:function(e){return{query:e}},EDIT_HEADERS:o(\"headers\"),EDIT_ENDPOINT:o(\"endpoint\"),EDIT_VARIABLES:o(\"variables\"),SET_OPERATION_NAME:o(\"operationName\"),SET_VARIABLE_TO_TYPE:o(\"variableToType\"),SET_OPERATIONS:o(\"operations\"),SET_EDITOR_FLEX:o(\"editorFlex\"),EDIT_NAME:o(\"name\"),OPEN_QUERY_VARIABLES:function(){return{queryVariablesActive:!0}},CLOSE_QUERY_VARIABLES:function(){return{queryVariablesActive:!1}},SET_VARIABLE_EDITOR_HEIGHT:o(\"variableEditorHeight\"),SET_RESPONSE_TRACING_HEIGHT:o(\"responceTracingHeight\"),SET_TRACING_SUPPORTED:o(\"tracingSupported\"),SET_SUBSCRIPTION_ACTIVE:o(\"subscriptionActive\"),SET_QUERY_TYPES:o(\"queryTypes\"),SET_RESPONSE_EXTENSIONS:o(\"responseExtensions\"),SET_CURRENT_QUERY_START_TIME:o(\"currentQueryStartTime\"),SET_CURRENT_QUERY_END_TIME:o(\"currentQueryEndTime\"),UPDATE_QUERY_FACTS:o(),PRETTIFY_QUERY:o(),INJECT_HEADERS:function(e,t){return{headers:e,endpoint:t}},CLOSE_TRACING:o(\"responseTracingHeight\"),OPEN_TRACING:o(\"responseTracingHeight\"),TOGGLE_TRACING:o(),CLOSE_VARIABLES:o(\"variableEditorHeight\"),OPEN_VARIABLES:o(\"variableEditorHeight\"),TOGGLE_VARIABLES:o(),ADD_RESPONSE:function(e,t,n){return{workspaceId:e,sessionId:t,response:n}},SET_RESPONSE:function(e,t,n){return{workspaceId:e,sessionId:t,response:n}},CLEAR_RESPONSES:o(),FETCH_SCHEMA:o(),REFETCH_SCHEMA:o(),SET_ENDPOINT_UNREACHABLE:o(\"endpoint\"),SET_SCROLL_TOP:function(e,t){return{sessionId:e,scrollTop:t}},SCHEMA_FETCHING_SUCCESS:function(e,t,n){return{endpoint:e,tracingSupported:t,isPollingSchema:n}},SCHEMA_FETCHING_ERROR:function(e,t){return{endpoint:e,error:t}},RENEW_STACKS:o(),RUN_QUERY:function(e){return{operationName:e}},QUERY_SUCCESS:o(),QUERY_ERROR:o(),RUN_QUERY_AT_POSITION:function(e){return{position:e}},START_QUERY:o(\"queryRunning\",!0),STOP_QUERY:function(e,t){return{workspaceId:t,sessionId:e}},OPEN_SETTINGS_TAB:function(){return{}},OPEN_CONFIG_TAB:function(){return{}},NEW_SESSION:function(e,t){return{endpoint:e,reuseHeaders:t}},NEW_SESSION_FROM_QUERY:function(e){return{query:e}},NEW_FILE_TAB:function(e,t,n){return{fileName:e,filePath:t,file:n}},DUPLICATE_SESSION:o(\"session\"),CLOSE_SELECTED_TAB:function(){return{}},SELECT_NEXT_TAB:function(){return{}},SELECT_PREV_TAB:function(){return{}},SELECT_TAB:o(\"sessionId\"),SELECT_TAB_INDEX:o(\"index\"),CLOSE_TAB:o(\"sessionId\"),REORDER_TABS:function(e,t){return{src:e,dest:t}},EDIT_SETTINGS:o(),SAVE_SETTINGS:o(),EDIT_CONFIG:o(),SAVE_CONFIG:o(),EDIT_FILE:o(),SAVE_FILE:o()})).editQuery,t.editVariables=r.editVariables,t.setOperationName=r.setOperationName,t.editHeaders=r.editHeaders,t.editEndpoint=r.editEndpoint,t.setVariableToType=r.setVariableToType,t.setOperations=r.setOperations,t.startQuery=r.startQuery,t.stopQuery=r.stopQuery,t.setEditorFlex=r.setEditorFlex,t.openQueryVariables=r.openQueryVariables,t.closeQueryVariables=r.closeQueryVariables,t.setVariableEditorHeight=r.setVariableEditorHeight,t.setResponseTracingHeight=r.setResponseTracingHeight,t.setTracingSupported=r.setTracingSupported,t.closeTracing=r.closeTracing,t.openTracing=r.openTracing,t.closeVariables=r.closeVariables,t.openVariables=r.openVariables,t.addResponse=r.addResponse,t.setResponse=r.setResponse,t.clearResponses=r.clearResponses,t.openSettingsTab=r.openSettingsTab,t.schemaFetchingSuccess=r.schemaFetchingSuccess,t.schemaFetchingError=r.schemaFetchingError,t.setEndpointUnreachable=r.setEndpointUnreachable,t.renewStacks=r.renewStacks,t.runQuery=r.runQuery,t.prettifyQuery=r.prettifyQuery,t.fetchSchema=r.fetchSchema,t.updateQueryFacts=r.updateQueryFacts,t.runQueryAtPosition=r.runQueryAtPosition,t.toggleTracing=r.toggleTracing,t.toggleVariables=r.toggleVariables,t.newSession=r.newSession,t.newSessionFromQuery=r.newSessionFromQuery,t.newFileTab=r.newFileTab,t.closeTab=r.closeTab,t.closeSelectedTab=r.closeSelectedTab,t.editSettings=r.editSettings,t.saveSettings=r.saveSettings,t.editConfig=r.editConfig,t.saveConfig=r.saveConfig,t.editFile=r.editFile,t.saveFile=r.saveFile,t.selectTab=r.selectTab,t.selectTabIndex=r.selectTabIndex,t.selectNextTab=r.selectNextTab,t.selectPrevTab=r.selectPrevTab,t.duplicateSession=r.duplicateSession,t.querySuccess=r.querySuccess,t.queryError=r.queryError,t.setSubscriptionActive=r.setSubscriptionActive,t.setQueryTypes=r.setQueryTypes,t.injectHeaders=r.injectHeaders,t.openConfigTab=r.openConfigTab,t.editName=r.editName,t.setResponseExtensions=r.setResponseExtensions,t.setCurrentQueryStartTime=r.setCurrentQueryStartTime,t.setCurrentQueryEndTime=r.setCurrentQueryEndTime,t.refetchSchema=r.refetchSchema,t.setScrollTop=r.setScrollTop,t.reorderTabs=r.reorderTabs},function(e,t){var n;n=function(){return this}();try{n=n||new Function(\"return this\")()}catch(r){\"object\"===typeof window&&(n=window)}e.exports=n},function(e,t,n){\"use strict\";var r=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n1&&l>1&&r[c-1]===i[l-2]&&r[c-2]===i[l-1]&&(n[c][l]=Math.min(n[c][l],n[c-2][l-2]+p))}return n[o][a]}n.d(t,\"a\",(function(){return r}))},function(e,t,n){\"use strict\";function r(e){return void 0===e||e!==e}n.d(t,\"a\",(function(){return r}))},function(e,t,n){\"use strict\";n.d(t,\"e\",(function(){return s})),n.d(t,\"b\",(function(){return p})),n.d(t,\"a\",(function(){return d})),n.d(t,\"d\",(function(){return h})),n.d(t,\"c\",(function(){return m}));var r=\"function\"===typeof Symbol?Symbol:void 0,i=r&&r.iterator,o=i||\"@@iterator\";function a(e){var t=null!=e&&e.length;return\"number\"===typeof t&&t>=0&&t%1===0}function s(e){return Object(e)===e&&(a(e)||function(e){return!!c(e)}(e))}function u(e){var t=c(e);if(t)return t.call(e)}function c(e){if(null!=e){var t=i&&e[i]||e[\"@@iterator\"];if(\"function\"===typeof t)return t}}function l(e){this._o=e,this._i=0}function p(e,t,n){if(null!=e){if(\"function\"===typeof e.forEach)return e.forEach(t,n);var r=0,i=u(e);if(i){for(var o;!(o=i.next()).done;)if(t.call(n,o.value,r++,e),r>9999999)throw new TypeError(\"Near-infinite iteration.\")}else if(a(e))for(;r=this._o.length?(this._o=void 0,{value:void 0,done:!0}):{value:this._o[this._i++],done:!1}};var f=r&&r.asyncIterator,d=f||\"@@asyncIterator\";function h(e){return!!g(e)}function m(e){var t=g(e);if(t)return t.call(e)}function g(e){if(null!=e){var t=f&&e[f]||e[\"@@asyncIterator\"];if(\"function\"===typeof t)return t}}function v(e){this._i=e}function y(e,t,n){var r;return new Promise((function(i){i((r=e[t](n)).value)})).then((function(e){return{value:e,done:r.done}}))}v.prototype[d]=function(){return this},v.prototype.next=function(e){return y(this._i,\"next\",e)},v.prototype.return=function(e){return this._i.return?y(this._i,\"return\",e):Promise.resolve({value:e,done:!0})},v.prototype.throw=function(e){return this._i.throw?y(this._i,\"throw\",e):Promise.reject(e)}},function(e,t,n){\"use strict\";function r(e){\"function\"===typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return this.constructor.name}})}n.d(t,\"a\",(function(){return r}))},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(104);function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.prototype.toString;e.prototype.toJSON=t,e.prototype.inspect=t,r.a&&(e.prototype[r.a]=t)}},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i}));var r=n(4);function i(e,t,n){return new r.a(\"Syntax Error: \".concat(n),void 0,e,[t])}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"combineActions\",(function(){return p})),n.d(t,\"createAction\",(function(){return h})),n.d(t,\"createActions\",(function(){return F})),n.d(t,\"createCurriedAction\",(function(){return P})),n.d(t,\"handleAction\",(function(){return R})),n.d(t,\"handleActions\",(function(){return U}));var r=n(39),i=n.n(r),o=function(e){return\"function\"===typeof e},a=function(e){return 0===e.length},s=function(e){return e.toString()},u=function(e){return\"string\"===typeof e};function c(e){return u(e)||o(e)||(\"symbol\"===typeof(t=e)||\"object\"===typeof t&&\"[object Symbol]\"===Object.prototype.toString.call(t));var t}function l(e){return!a(e)&&e.every(c)}function p(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),i=1;i1?t-1:0),r=1;r2?n-2:0),a=2;a0&&a(t[0]);)t.shift();for(;t.length>0&&a(t[t.length-1]);)t.pop();return t.join(\"\\n\")}function i(e){for(var t=null,n=1;n1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=-1===e.indexOf(\"\\n\"),i=\" \"===e[0]||\"\\t\"===e[0],o='\"'===e[e.length-1],a=!r||o||n,s=\"\";return!a||r&&i||(s+=\"\\n\"+t),s+=t?e.replace(/\\n/g,\"\\n\"+t):e,a&&(s+=\"\\n\"),'\"\"\"'+s.replace(/\"\"\"/g,'\\\\\"\"\"')+'\"\"\"'}n.d(t,\"a\",(function(){return r})),n.d(t,\"b\",(function(){return i})),n.d(t,\"c\",(function(){return s}))},function(e,t,n){\"use strict\";var r=Array.prototype.find?function(e,t){return Array.prototype.find.call(e,t)}:function(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=null,o=null;if(\"string\"===typeof e){var a=new RegExp(e,r?\"i\":\"g\");o=a.test(n._sourceText.substr(n._pos,e.length)),i=e}else e instanceof RegExp&&(i=(o=n._sourceText.slice(n._pos).match(e))&&o[0]);return!(null==o||!(\"string\"===typeof e||o instanceof Array&&n._sourceText.startsWith(o[0],n._pos)))&&(t&&(n._start=n._pos,i&&i.length&&(n._pos+=i.length)),o)},this.backUp=function(e){n._pos-=e},this.column=function(){return n._pos},this.indentation=function(){var e=n._sourceText.match(/\\s*/),t=0;if(e&&0===e.length)for(var r=e[0],i=0;r.length>i;)9===r.charCodeAt(i)?t+=2:t++,i++;return t},this.current=function(){return n._sourceText.slice(n._start,n._pos)},this._start=0,this._pos=0,this._sourceText=t}return Object(i.a)(e,[{key:\"_testNextCharacter\",value:function(e){var t=this._sourceText.charAt(this._pos);return\"string\"===typeof e?t===e:e instanceof RegExp?e.test(t):e(t)}}]),e}();function a(e){return{ofRule:e}}function s(e,t){return{ofRule:e,isList:!0,separator:t}}function u(e,t){var n=e.match;return e.match=function(e){var r=!1;return n&&(r=n(e)),r&&t.every((function(t){return t.match&&!t.match(e)}))},e}function c(e,t){return{style:t,match:function(t){return t.kind===e}}}function l(e,t){return{style:t||\"punctuation\",match:function(t){return\"Punctuation\"===t.kind&&t.value===e}}}var p,f=function(e){return\" \"===e||\"\\t\"===e||\",\"===e||\"\\n\"===e||\"\\r\"===e||\"\\ufeff\"===e},d={Name:/^[_A-Za-z][_0-9A-Za-z]*/,Punctuation:/^(?:!|\\$|\\(|\\)|\\.\\.\\.|:|=|@|\\[|]|\\{|\\||\\})/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^(?:\"\"\"(?:\\\\\"\"\"|[^\"]|\"[^\"]|\"\"[^\"])*(?:\"\"\")?|\"(?:[^\"\\\\]|\\\\(?:\"|\\/|\\\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*\"?)/,Comment:/^#.*/},h={Document:[s(\"Definition\")],Definition:function(e){switch(e.value){case\"{\":return\"ShortQuery\";case\"query\":return\"Query\";case\"mutation\":return\"Mutation\";case\"subscription\":return\"Subscription\";case\"fragment\":return\"FragmentDefinition\";case\"schema\":return\"SchemaDef\";case\"scalar\":return\"ScalarDef\";case\"type\":return\"ObjectTypeDef\";case\"interface\":return\"InterfaceDef\";case\"union\":return\"UnionDef\";case\"enum\":return\"EnumDef\";case\"input\":return\"InputDef\";case\"extend\":return\"ExtendDef\";case\"directive\":return\"DirectiveDef\"}},ShortQuery:[\"SelectionSet\"],Query:[m(\"query\"),a(g(\"def\")),a(\"VariableDefinitions\"),s(\"Directive\"),\"SelectionSet\"],Mutation:[m(\"mutation\"),a(g(\"def\")),a(\"VariableDefinitions\"),s(\"Directive\"),\"SelectionSet\"],Subscription:[m(\"subscription\"),a(g(\"def\")),a(\"VariableDefinitions\"),s(\"Directive\"),\"SelectionSet\"],VariableDefinitions:[l(\"(\"),s(\"VariableDefinition\"),l(\")\")],VariableDefinition:[\"Variable\",l(\":\"),\"Type\",a(\"DefaultValue\")],Variable:[l(\"$\",\"variable\"),g(\"variable\")],DefaultValue:[l(\"=\"),\"Value\"],SelectionSet:[l(\"{\"),s(\"Selection\"),l(\"}\")],Selection:function(e,t){return\"...\"===e.value?t.match(/[\\s\\u00a0,]*(on\\b|@|{)/,!1)?\"InlineFragment\":\"FragmentSpread\":t.match(/[\\s\\u00a0,]*:/,!1)?\"AliasedField\":\"Field\"},AliasedField:[g(\"property\"),l(\":\"),g(\"qualifier\"),a(\"Arguments\"),s(\"Directive\"),a(\"SelectionSet\")],Field:[g(\"property\"),a(\"Arguments\"),s(\"Directive\"),a(\"SelectionSet\")],Arguments:[l(\"(\"),s(\"Argument\"),l(\")\")],Argument:[g(\"attribute\"),l(\":\"),\"Value\"],FragmentSpread:[l(\"...\"),g(\"def\"),s(\"Directive\")],InlineFragment:[l(\"...\"),a(\"TypeCondition\"),s(\"Directive\"),\"SelectionSet\"],FragmentDefinition:[m(\"fragment\"),a(u(g(\"def\"),[m(\"on\")])),\"TypeCondition\",s(\"Directive\"),\"SelectionSet\"],TypeCondition:[m(\"on\"),\"NamedType\"],Value:function(e){switch(e.kind){case\"Number\":return\"NumberValue\";case\"String\":return\"StringValue\";case\"Punctuation\":switch(e.value){case\"[\":return\"ListValue\";case\"{\":return\"ObjectValue\";case\"$\":return\"Variable\"}return null;case\"Name\":switch(e.value){case\"true\":case\"false\":return\"BooleanValue\"}return\"null\"===e.value?\"NullValue\":\"EnumValue\"}},NumberValue:[c(\"Number\",\"number\")],StringValue:[c(\"String\",\"string\")],BooleanValue:[c(\"Name\",\"builtin\")],NullValue:[c(\"Name\",\"keyword\")],EnumValue:[g(\"string-2\")],ListValue:[l(\"[\"),s(\"Value\"),l(\"]\")],ObjectValue:[l(\"{\"),s(\"ObjectField\"),l(\"}\")],ObjectField:[g(\"attribute\"),l(\":\"),\"Value\"],Type:function(e){return\"[\"===e.value?\"ListType\":\"NonNullType\"},ListType:[l(\"[\"),\"Type\",l(\"]\"),a(l(\"!\"))],NonNullType:[\"NamedType\",a(l(\"!\"))],NamedType:[(p=\"atom\",{style:p,match:function(e){return\"Name\"===e.kind},update:function(e,t){e.prevState&&e.prevState.prevState&&(e.name=t.value,e.prevState.prevState.type=t.value)}})],Directive:[l(\"@\",\"meta\"),g(\"meta\"),a(\"Arguments\")],SchemaDef:[m(\"schema\"),s(\"Directive\"),l(\"{\"),s(\"OperationTypeDef\"),l(\"}\")],OperationTypeDef:[g(\"keyword\"),l(\":\"),g(\"atom\")],ScalarDef:[m(\"scalar\"),g(\"atom\"),s(\"Directive\")],ObjectTypeDef:[m(\"type\"),g(\"atom\"),a(\"Implements\"),s(\"Directive\"),l(\"{\"),s(\"FieldDef\"),l(\"}\")],Implements:[m(\"implements\"),s(\"NamedType\")],FieldDef:[g(\"property\"),a(\"ArgumentsDef\"),l(\":\"),\"Type\",s(\"Directive\")],ArgumentsDef:[l(\"(\"),s(\"InputValueDef\"),l(\")\")],InputValueDef:[g(\"attribute\"),l(\":\"),\"Type\",a(\"DefaultValue\"),s(\"Directive\")],InterfaceDef:[m(\"interface\"),g(\"atom\"),s(\"Directive\"),l(\"{\"),s(\"FieldDef\"),l(\"}\")],UnionDef:[m(\"union\"),g(\"atom\"),s(\"Directive\"),l(\"=\"),s(\"UnionMember\",l(\"|\"))],UnionMember:[\"NamedType\"],EnumDef:[m(\"enum\"),g(\"atom\"),s(\"Directive\"),l(\"{\"),s(\"EnumValueDef\"),l(\"}\")],EnumValueDef:[g(\"string-2\"),s(\"Directive\")],InputDef:[m(\"input\"),g(\"atom\"),s(\"Directive\"),l(\"{\"),s(\"InputValueDef\"),l(\"}\")],ExtendDef:[m(\"extend\"),\"ObjectTypeDef\"],DirectiveDef:[m(\"directive\"),l(\"@\",\"meta\"),g(\"meta\"),a(\"ArgumentsDef\"),m(\"on\"),s(\"DirectiveLocation\",l(\"|\"))],DirectiveLocation:[g(\"string-2\")]};function m(e){return{style:\"keyword\",match:function(t){return\"Name\"===t.kind&&t.value===e}}}function g(e){return{style:e,match:function(e){return\"Name\"===e.kind},update:function(e,t){e.name=t.value}}}var v=n(72);function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{eatWhitespace:function(e){return e.eatWhile(f)},lexRules:d,parseRules:h,editorConfig:{}};return{startState:function(){var t={level:0,step:0,name:null,kind:null,type:null,rule:null,needsSeperator:!1,prevState:null};return D(e.parseRules,t,\"Document\"),t},token:function(t,n){return b(t,n,e)}}}function b(e,t,n){var r=n.lexRules,i=n.parseRules,o=n.eatWhitespace,a=n.editorConfig;if(t.rule&&0===t.rule.length?C(t):t.needsAdvance&&(t.needsAdvance=!1,w(t,!0)),e.sol()){var s=a&&a.tabSize||2;t.indentLevel=Math.floor(e.indentation()/s)}if(o(e))return\"ws\";var u=function(e,t){for(var n=Object.keys(e),r=0;r0&&l[l.length-1]=0;c--)if(l[c]!==p[c])return!1;for(c=l.length-1;c>=0;c--)if(s=l[c],!b(e[s],t[s],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function x(e){return\"[object Arguments]\"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if(\"[object RegExp]\"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(n){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function D(e,t,n,r){var i;if(\"function\"!==typeof t)throw new TypeError('\"block\" argument must be a function');\"string\"===typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(n){t=n}return t}(t),r=(n&&n.name?\" (\"+n.name+\").\":\".\")+(r?\" \"+r:\".\"),e&&!i&&v(i,n,\"Missing expected exception\"+r);var o=\"string\"===typeof r,s=!e&&i&&!n;if((!e&&a.isError(i)&&o&&E(i,n)||s)&&v(i,n,\"Got unwanted exception\"+r),e&&i&&n&&!E(i,n)||!e&&i)throw i}f.AssertionError=function(e){this.name=\"AssertionError\",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return m(g(e.actual),128)+\" \"+e.operator+\" \"+m(g(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=h(t),o=r.indexOf(\"\\n\"+i);if(o>=0){var a=r.indexOf(\"\\n\",o+1);r=r.substring(a+1)}this.stack=r}}},a.inherits(f.AssertionError,Error),f.fail=v,f.ok=y,f.equal=function(e,t,n){e!=t&&v(e,t,n,\"==\",f.equal)},f.notEqual=function(e,t,n){e==t&&v(e,t,n,\"!=\",f.notEqual)},f.deepEqual=function(e,t,n){b(e,t,!1)||v(e,t,n,\"deepEqual\",f.deepEqual)},f.deepStrictEqual=function(e,t,n){b(e,t,!0)||v(e,t,n,\"deepStrictEqual\",f.deepStrictEqual)},f.notDeepEqual=function(e,t,n){b(e,t,!1)&&v(e,t,n,\"notDeepEqual\",f.notDeepEqual)},f.notDeepStrictEqual=function e(t,n,r){b(t,n,!0)&&v(t,n,r,\"notDeepStrictEqual\",e)},f.strictEqual=function(e,t,n){e!==t&&v(e,t,n,\"===\",f.strictEqual)},f.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,\"!==\",f.notStrictEqual)},f.throws=function(e,t,n){D(!0,e,t,n)},f.doesNotThrow=function(e,t,n){D(!1,e,t,n)},f.ifError=function(e){if(e)throw e},f.strict=r((function e(t,n){t||v(t,!0,n,\"==\",e)}),f,{equal:f.strictEqual,deepEqual:f.deepStrictEqual,notEqual:f.notStrictEqual,notDeepEqual:f.notDeepStrictEqual}),f.strict.strict=f.strict;var C=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}}).call(this,n(37))},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"__DO_NOT_USE__ActionTypes\",(function(){return o})),n.d(t,\"applyMiddleware\",(function(){return g})),n.d(t,\"bindActionCreators\",(function(){return p})),n.d(t,\"combineReducers\",(function(){return c})),n.d(t,\"compose\",(function(){return m})),n.d(t,\"createStore\",(function(){return s}));var r=n(129),i=function(){return Math.random().toString(36).substring(7).split(\"\").join(\".\")},o={INIT:\"@@redux/INIT\"+i(),REPLACE:\"@@redux/REPLACE\"+i(),PROBE_UNKNOWN_ACTION:function(){return\"@@redux/PROBE_UNKNOWN_ACTION\"+i()}};function a(e){if(\"object\"!==typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function s(e,t,n){var i;if(\"function\"===typeof t&&\"function\"===typeof n||\"function\"===typeof n&&\"function\"===typeof arguments[3])throw new Error(\"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.\");if(\"function\"===typeof t&&\"undefined\"===typeof n&&(n=t,t=void 0),\"undefined\"!==typeof n){if(\"function\"!==typeof n)throw new Error(\"Expected the enhancer to be a function.\");return n(s)(e,t)}if(\"function\"!==typeof e)throw new Error(\"Expected the reducer to be a function.\");var u=e,c=t,l=[],p=l,f=!1;function d(){p===l&&(p=l.slice())}function h(){if(f)throw new Error(\"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");return c}function m(e){if(\"function\"!==typeof e)throw new Error(\"Expected the listener to be a function.\");if(f)throw new Error(\"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.\");var t=!0;return d(),p.push(e),function(){if(t){if(f)throw new Error(\"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.\");t=!1,d();var n=p.indexOf(e);p.splice(n,1),l=null}}}function g(e){if(!a(e))throw new Error(\"Actions must be plain objects. Use custom middleware for async actions.\");if(\"undefined\"===typeof e.type)throw new Error('Actions may not have an undefined \"type\" property. Have you misspelled a constant?');if(f)throw new Error(\"Reducers may not dispatch actions.\");try{f=!0,c=u(c,e)}finally{f=!1}for(var t=l=p,n=0;n=0||(i[n]=e[n]);return i}n.d(t,\"a\",(function(){return r}))},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return u}));var r=n(58),i=n(1),o=n(0),a=n(11),s=n(31),u=function(){function e(e,t,n){this._schema=e,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=t||c,n&&(Object(o.G)(n)&&this._inputTypeStack.push(n),Object(o.D)(n)&&this._parentTypeStack.push(n),Object(o.O)(n)&&this._typeStack.push(n))}var t=e.prototype;return t.getType=function(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]},t.getParentType=function(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]},t.getInputType=function(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]},t.getParentInputType=function(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]},t.getFieldDef=function(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]},t.getDefaultValue=function(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]},t.getDirective=function(){return this._directive},t.getArgument=function(){return this._argument},t.getEnumValue=function(){return this._enumValue},t.enter=function(e){var t=this._schema;switch(e.kind){case i.a.SELECTION_SET:var n=Object(o.A)(this.getType());this._parentTypeStack.push(Object(o.D)(n)?n:void 0);break;case i.a.FIELD:var a,u,c=this.getParentType();c&&(a=this._getFieldDef(t,c,e))&&(u=a.type),this._fieldDefStack.push(a),this._typeStack.push(Object(o.O)(u)?u:void 0);break;case i.a.DIRECTIVE:this._directive=t.getDirective(e.name.value);break;case i.a.OPERATION_DEFINITION:var l;\"query\"===e.operation?l=t.getQueryType():\"mutation\"===e.operation?l=t.getMutationType():\"subscription\"===e.operation&&(l=t.getSubscriptionType()),this._typeStack.push(Object(o.N)(l)?l:void 0);break;case i.a.INLINE_FRAGMENT:case i.a.FRAGMENT_DEFINITION:var p=e.typeCondition,f=p?Object(s.a)(t,p):Object(o.A)(this.getType());this._typeStack.push(Object(o.O)(f)?f:void 0);break;case i.a.VARIABLE_DEFINITION:var d=Object(s.a)(t,e.type);this._inputTypeStack.push(Object(o.G)(d)?d:void 0);break;case i.a.ARGUMENT:var h,m,g=this.getDirective()||this.getFieldDef();g&&(h=Object(r.a)(g.args,(function(t){return t.name===e.name.value})))&&(m=h.type),this._argument=h,this._defaultValueStack.push(h?h.defaultValue:void 0),this._inputTypeStack.push(Object(o.G)(m)?m:void 0);break;case i.a.LIST:var v=Object(o.B)(this.getInputType()),y=Object(o.J)(v)?v.ofType:v;this._defaultValueStack.push(void 0),this._inputTypeStack.push(Object(o.G)(y)?y:void 0);break;case i.a.OBJECT_FIELD:var b,x,E=Object(o.A)(this.getInputType());Object(o.F)(E)&&(x=E.getFields()[e.name.value])&&(b=x.type),this._defaultValueStack.push(x?x.defaultValue:void 0),this._inputTypeStack.push(Object(o.G)(b)?b:void 0);break;case i.a.ENUM:var D,C=Object(o.A)(this.getInputType());Object(o.E)(C)&&(D=C.getValue(e.value)),this._enumValue=D}},t.leave=function(e){switch(e.kind){case i.a.SELECTION_SET:this._parentTypeStack.pop();break;case i.a.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case i.a.DIRECTIVE:this._directive=null;break;case i.a.OPERATION_DEFINITION:case i.a.INLINE_FRAGMENT:case i.a.FRAGMENT_DEFINITION:this._typeStack.pop();break;case i.a.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case i.a.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case i.a.LIST:case i.a.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case i.a.ENUM:this._enumValue=null}},e}();function c(e,t,n){var r=n.name.value;return r===a.SchemaMetaFieldDef.name&&e.getQueryType()===t?a.SchemaMetaFieldDef:r===a.TypeMetaFieldDef.name&&e.getQueryType()===t?a.TypeMetaFieldDef:r===a.TypeNameMetaFieldDef.name&&Object(o.D)(t)?a.TypeNameMetaFieldDef:Object(o.N)(t)||Object(o.H)(t)?t.getFields()[r]:void 0}},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"ApolloLink\",(function(){return b})),n.d(t,\"concat\",(function(){return y})),n.d(t,\"createOperation\",(function(){return f})),n.d(t,\"empty\",(function(){return m})),n.d(t,\"execute\",(function(){return x})),n.d(t,\"from\",(function(){return g})),n.d(t,\"fromError\",(function(){return p})),n.d(t,\"fromPromise\",(function(){return l})),n.d(t,\"makePromise\",(function(){return c})),n.d(t,\"split\",(function(){return v})),n.d(t,\"toPromise\",(function(){return u}));var r=n(42);n.d(t,\"Observable\",(function(){return r.a}));var i=n(25),o=n(16),a=n(127);n.d(t,\"getOperationName\",(function(){return a.a}));!function(e){function t(t,n){var r=e.call(this,t)||this;return r.link=n,r}Object(o.b)(t,e)}(Error);function s(e){return e.request.length<=1}function u(e){var t=!1;return new Promise((function(n,r){e.subscribe({next:function(e){t||(t=!0,n(e))},error:r})}))}var c=u;function l(e){return new r.a((function(t){e.then((function(e){t.next(e),t.complete()})).catch(t.error.bind(t))}))}function p(e){return new r.a((function(t){t.error(e)}))}function f(e,t){var n=Object(o.a)({},e);return Object.defineProperty(t,\"setContext\",{enumerable:!1,value:function(e){n=\"function\"===typeof e?Object(o.a)({},n,e(n)):Object(o.a)({},n,e)}}),Object.defineProperty(t,\"getContext\",{enumerable:!1,value:function(){return Object(o.a)({},n)}}),Object.defineProperty(t,\"toKey\",{enumerable:!1,value:function(){return function(e){var t=e.query,n=e.variables,r=e.operationName;return JSON.stringify([r,t,n])}(t)}}),t}function d(e,t){return t?t(e):r.a.of()}function h(e){return\"function\"===typeof e?new b(e):e}function m(){return new b((function(){return r.a.of()}))}function g(e){return 0===e.length?m():e.map(h).reduce((function(e,t){return e.concat(t)}))}function v(e,t,n){var i=h(t),o=h(n||new b(d));return s(i)&&s(o)?new b((function(t){return e(t)?i.request(t)||r.a.of():o.request(t)||r.a.of()})):new b((function(t,n){return e(t)?i.request(t,n)||r.a.of():o.request(t,n)||r.a.of()}))}var y=function(e,t){var n=h(e);if(s(n))return n;var i=h(t);return s(i)?new b((function(e){return n.request(e,(function(e){return i.request(e)||r.a.of()}))||r.a.of()})):new b((function(e,t){return n.request(e,(function(e){return i.request(e,t)||r.a.of()}))||r.a.of()}))},b=function(){function e(e){e&&(this.request=e)}return e.prototype.split=function(t,n,r){return this.concat(v(t,n,r||new e(d)))},e.prototype.concat=function(e){return y(this,e)},e.prototype.request=function(e,t){throw new i.a(1)},e.empty=m,e.from=g,e.split=v,e.execute=x,e}();function x(e,t){return e.request(f(t.context,function(e){var t={variables:e.variables||{},extensions:e.extensions||{},operationName:e.operationName,query:e.query};return t.operationName||(t.operationName=\"string\"!==typeof t.query?Object(a.a)(t.query):\"\"),t}(function(e){for(var t=[\"query\",\"operationName\",\"variables\",\"extensions\",\"context\"],n=0,r=Object.keys(e);n