From 70a1f6b8b641bc833e43a2b396d355b95b8295b0 Mon Sep 17 00:00:00 2001 From: Aaron Straup Cope Date: Fri, 12 Jul 2024 16:07:27 -0700 Subject: [PATCH] Refactor campus package (#2) * add tree output to current-complex * add Museum type to complex def * break up as tree methods * move all the FindTHING methods in to discrete packages * snapshot: move code around, rename a bunch of things * move more code around * work through Walk method, not sure it works yet * make recursive/tree stuff work * refactor how SFOId is derived for galleries and public art, still a few dupes... * add complex.DeriveAltLookup * update complex.AsGeoJSONLayers to use Walk methods * update vendor deps --------- Co-authored-by: sfomuseumbot --- .gitignore | 3 +- Makefile | 16 +- campus/boardingarea.go | 283 +++++++++++ campus/campus.go | 104 ++-- campus/checkpoint.go | 91 ++++ campus/commonarea.go | 232 +++++++++ campus/complex.go | 220 ++++++++ campus/current.go | 977 ------------------------------------ campus/database.go | 203 ++++++++ campus/element.go | 32 ++ campus/gallery.go | 90 ++++ campus/garage.go | 46 ++ campus/gate.go | 99 ++++ campus/geojson.go | 134 ----- campus/hotel.go | 46 ++ campus/museum.go | 131 +++++ campus/name.go | 39 ++ campus/observationdeck.go | 131 +++++ campus/publicart.go | 89 ++++ campus/terminal.go | 151 ++++++ cmd/complex/main.go | 114 +++++ cmd/current-complex/main.go | 39 -- data/galleries.json | 2 +- data/gates.json | 2 +- data/terminals.json | 2 +- go.mod | 2 +- 26 files changed, 2054 insertions(+), 1224 deletions(-) create mode 100644 campus/boardingarea.go create mode 100644 campus/checkpoint.go create mode 100644 campus/commonarea.go create mode 100644 campus/complex.go delete mode 100644 campus/current.go create mode 100644 campus/database.go create mode 100644 campus/element.go create mode 100644 campus/gallery.go create mode 100644 campus/garage.go create mode 100644 campus/gate.go delete mode 100644 campus/geojson.go create mode 100644 campus/hotel.go create mode 100644 campus/museum.go create mode 100644 campus/name.go create mode 100644 campus/observationdeck.go create mode 100644 campus/publicart.go create mode 100644 campus/terminal.go create mode 100644 cmd/complex/main.go delete mode 100644 cmd/current-complex/main.go diff --git a/.gitignore b/.gitignore index 6e7e38b..d103902 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *~ -bin \ No newline at end of file +bin +*.db \ No newline at end of file diff --git a/Makefile b/Makefile index 3607d72..323fb88 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,16 @@ -GOMOD=vendor +GOMOD=$(shell test -f "go.work" && echo "readonly" || echo "vendor") +LDFLAGS=-s -w + cli: @make cli-lookup - go build -mod $(GOMOD) -o bin/supersede-gallery cmd/supersede-gallery/main.go + go build -mod $(GOMOD) -ldflags="$(LDFLAGS)" -o bin/supersede-gallery cmd/supersede-gallery/main.go cli-lookup: - go build -mod $(GOMOD) -o bin/lookup cmd/lookup/main.go + go build -mod $(GOMOD) -ldflags="$(LDFLAGS)" -o bin/lookup cmd/lookup/main.go cli-complex: - go build -mod $(GOMOD) --tags json1 -o bin/current-complex cmd/current-complex/main.go + go build -mod $(GOMOD) -ldflags="$(LDFLAGS)" --tags json1 -o bin/current-complex cmd/current-complex/main.go compile: @make compile-gates @@ -17,10 +19,10 @@ compile: @make cli-lookup compile-gates: - go run -mod $(GOMOD) cmd/compile-gates-data/main.go + go run -mod $(GOMOD) -ldflags="$(LDFLAGS)" cmd/compile-gates-data/main.go compile-terminals: - go run -mod $(GOMOD) cmd/compile-terminals-data/main.go + go run -mod $(GOMOD) -ldflags="$(LDFLAGS)" cmd/compile-terminals-data/main.go compile-galleries: - go run -mod $(GOMOD) cmd/compile-galleries-data/main.go + go run -mod $(GOMOD) -ldflags="$(LDFLAGS)" cmd/compile-galleries-data/main.go diff --git a/campus/boardingarea.go b/campus/boardingarea.go new file mode 100644 index 0000000..2a14b99 --- /dev/null +++ b/campus/boardingarea.go @@ -0,0 +1,283 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + "strings" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type BoardingArea is a lightweight data structure to represent boarding areas at SFO with pointers its descendants. +type BoardingArea struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + Gates []*Gate `json:"gates,omitempty"` + Checkpoints []*Checkpoint `json:"checkpoints,omitempty"` + Galleries []*Gallery `json:"galleries,omitempty"` + PublicArt []*PublicArt `json:"publicart,omitempty"` + ObservationDecks []*ObservationDeck `json:"observationdecks,omitempty"` + Museums []*Museum `json:"museums,omitempty"` // for example AML +} + +func (b *BoardingArea) Id() int64 { + return b.WhosOnFirstId +} + +func (b *BoardingArea) AltId() string { + return b.SFOId +} + +func (b *BoardingArea) Placetype() string { + return "boardingarea" +} + +func (b *BoardingArea) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, g := range b.Gates { + + err := cb(ctx, g) + + if err != nil { + return nil + } + } + + for _, cp := range b.Checkpoints { + + err := cb(ctx, cp) + + if err != nil { + return nil + } + } + + for _, g := range b.Galleries { + + err := cb(ctx, g) + + if err != nil { + return nil + } + } + + for _, pa := range b.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return nil + } + } + + for _, od := range b.ObservationDecks { + + err := cb(ctx, od) + + if err != nil { + return nil + } + } + + for _, m := range b.Museums { + + err := cb(ctx, m) + + if err != nil { + return nil + } + } + + return nil +} + +func (b *BoardingArea) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + + return elementTree(ctx, b, r, wr, indent) + + b_id := b.WhosOnFirstId + fmt.Fprintf(wr, "%s (boardingarea) %d %s\n", strings.Repeat("\t", indent), b_id, name(ctx, r, b_id)) + + for _, g := range b.Gates { + + err := g.AsTree(ctx, r, wr, indent+1) + + if err != nil { + return fmt.Errorf("Failed to encode gate as tree, %w", err) + } + } + + for _, c := range b.Checkpoints { + + err := c.AsTree(ctx, r, wr, indent+1) + + if err != nil { + return fmt.Errorf("Failed to encode checkpoint as tree, %w", err) + } + } + + for _, g := range b.Galleries { + + err := g.AsTree(ctx, r, wr, indent+1) + + if err != nil { + return fmt.Errorf("Failed to encode gallery as tree, %w", err) + } + } + + for _, p := range b.PublicArt { + + err := p.AsTree(ctx, r, wr, indent+1) + + if err != nil { + return fmt.Errorf("Failed to encode public art as tree, %w", err) + } + } + + for _, o := range b.ObservationDecks { + + err := o.AsTree(ctx, r, wr, indent+1) + + if err != nil { + return fmt.Errorf("Failed to encode observation deck as tree, %w", err) + } + } + + for _, m := range b.Museums { + + err := m.AsTree(ctx, r, wr, indent+1) + + if err != nil { + return fmt.Errorf("Failed to encode museum as tree, %w", err) + } + } + + return nil + +} + +func DeriveBoardingAreas(ctx context.Context, db *sql.DB, id int64) ([]*BoardingArea, error) { + + slog.Debug("Derive boarding areas", "parent", id) + + boardingarea_ids, err := findChildIDs(ctx, db, id, "boardingarea") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (boarding areas areas) for %d, %v", id, err) + } + + boardingareas := make([]*BoardingArea, 0) + + for _, b_id := range boardingarea_ids { + + gates, err := DeriveGates(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive gates for boarding area %d, %w", b_id, err) + } + + checkpoints, err := DeriveCheckpoints(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive check points for boarding area %d, %w", b_id, err) + } + + galleries, err := DeriveGalleries(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive galleries for boarding area %d, %w", b_id, err) + } + + publicart, err := DerivePublicArt(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive public art for boarding area %d, %w", b_id, err) + } + + observation_decks, err := DeriveObservationDecks(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive observation decks for boarding area %d, %w", b_id, err) + } + + museums, err := DeriveMuseums(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive museums for boarding area %d, %w", b_id, err) + } + + b_body, err := loadFeatureWithDBAndChecks(ctx, db, b_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for %d, %w", b_id, err) + } + + if b_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(b_body, "properties.sfo:id") + + if rsp.Exists() { + + sfoid = rsp.String() + + } else { + + rsp := gjson.GetBytes(b_body, "properties.sfo:building_id") + + if !rsp.Exists() { + return nil, fmt.Errorf("Missing sfo:building_id for boarding area %d", b_id) + } + + sfoid = rsp.String() + } + + name_rsp := gjson.GetBytes(b_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(b_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(b_body, "properties.edtf:cessation") + + slog.Debug("Add boardinarea", "sfo id", sfoid, "id", b_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + area := &BoardingArea{ + WhosOnFirstId: b_id, + SFOId: sfoid, + } + + if len(gates) > 0 { + area.Gates = gates + } + + if len(checkpoints) > 0 { + area.Checkpoints = checkpoints + } + + if len(galleries) > 0 { + area.Galleries = galleries + } + + if len(publicart) > 0 { + area.PublicArt = publicart + } + + if len(observation_decks) > 0 { + area.ObservationDecks = observation_decks + } + + if len(museums) > 0 { + area.Museums = museums + } + + boardingareas = append(boardingareas, area) + } + + return boardingareas, nil + +} diff --git a/campus/campus.go b/campus/campus.go index 1635a8d..1ef6799 100644 --- a/campus/campus.go +++ b/campus/campus.go @@ -1,87 +1,67 @@ // package campus provides methods for working with the SFO airport campus. package campus +import ( + "context" +) + // type Campus is a lightweight data structure to represent the SFO campus with pointers its descendants. type Campus struct { + Element `json:",omitempty"` WhosOnFirstId int64 `json:"id"` SFOId string `json:"sfo:id"` Complex *Complex `json:"complex"` Garages []*Garage `json:"garages"` + Hotels []*Hotel `json:"hotels"` PublicArt []*PublicArt `json:"buildings,omitempty"` } -// type Garage is a lightweight data structure to represent garages at SFO with pointers its descendants. -type Garage struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` - PublicArt []*PublicArt `json:"publicart,omitempty"` +func (c *Campus) Id() int64 { + return c.WhosOnFirstId } -// type Complex is a lightweight data structure to represent the terminal complex at SFO with pointers its descendants. -type Complex struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` - Terminals []*Terminal `json:"terminals"` +func (c *Campus) AltId() string { + return c.SFOId } -// type ObservationDeck is a lightweight data structure to represent observation decks at SFO with pointers its descendants. -type ObservationDeck struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` - PublicArt []*PublicArt `json:"publicart,omitempty"` - Galleries []*Gallery `json:"galleries,omitempty"` +func (c *Campus) Placetype() string { + return "campus" } -// type Terminal is a lightweight data structure to represent terminals at SFO with pointers its descendants. -type Terminal struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` - CommonAreas []*CommonArea `json:"commonareas,omitempty"` - BoardingAreas []*BoardingArea `json:"boardingareas,omitempty"` -} +func (c *Campus) Walk(ctx context.Context, cb ElementCallbackFunc) error { -// type CommonArea is a lightweight data structure to represent common areas at SFO with pointers its descendants. -type CommonArea struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` - Gates []*Gate `json:"gates,omitempty"` - Checkpoints []*Checkpoint `json:"checkpoints,omitempty"` - Galleries []*Gallery `json:"galleries,omitempty"` - PublicArt []*PublicArt `json:"publicart,omitempty"` - ObservationDecks []*ObservationDeck `json:"observationdecks,omitempty"` // for example T2 -} + err := cb(ctx, c.Complex) -// type BoardingArea is a lightweight data structure to represent boarding areas at SFO with pointers its descendants. -type BoardingArea struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` - Gates []*Gate `json:"gates,omitempty"` - Checkpoints []*Checkpoint `json:"checkpoints,omitempty"` - Galleries []*Gallery `json:"galleries,omitempty"` - PublicArt []*PublicArt `json:"publicart,omitempty"` - ObservationDecks []*ObservationDeck `json:"observationdecks,omitempty"` -} + if err != nil { + return err + } -// type Gallery is a lightweight data structure to represent SFO Museum galleries at SFO. -type Gallery struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfomuseum:id"` -} + for _, g := range c.Garages { -// type Gate is a lightweight data structure to represent passenger gates at SFO. -type Gate struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` -} + err := cb(ctx, g) -// type Checkpoint is a lightweight data structure to represent security checkpoints at SFO. -type Checkpoint struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfo:id"` -} + if err != nil { + return err + } + } + + for _, h := range c.Hotels { + + err := cb(ctx, h) + + if err != nil { + return err + } + } + + for _, pa := range c.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return err + } + } -// type PublicArt is a lightweight data structure to represent public art works at SFO. -type PublicArt struct { - WhosOnFirstId int64 `json:"id"` - SFOId string `json:"sfomuseum:id"` + return nil } diff --git a/campus/checkpoint.go b/campus/checkpoint.go new file mode 100644 index 0000000..11f1a1d --- /dev/null +++ b/campus/checkpoint.go @@ -0,0 +1,91 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type Checkpoint is a lightweight data structure to represent security checkpoints at SFO. +type Checkpoint struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` +} + +func (c *Checkpoint) Id() int64 { + return c.WhosOnFirstId +} + +func (c *Checkpoint) AltId() string { + return c.SFOId +} + +func (c *Checkpoint) Placetype() string { + return "checkpoint" +} + +func (c *Checkpoint) Walk(ctx context.Context, cb ElementCallbackFunc) error { + return nil +} + +func (cp *Checkpoint) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + + return elementTree(ctx, cp, r, wr, indent) +} + +func DeriveCheckpoints(ctx context.Context, db *sql.DB, parent_id int64) ([]*Checkpoint, error) { + + slog.Debug("Derive check points", "parent id", parent_id) + + checkpoint_ids, err := findChildIDs(ctx, db, parent_id, "checkpoint") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (checkpoints) for %d, %w", parent_id, err) + } + + checkpoints := make([]*Checkpoint, 0) + + for _, cp_id := range checkpoint_ids { + + cp_body, err := loadFeatureWithDBAndChecks(ctx, db, cp_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for %d, %w", cp_id, err) + } + + if cp_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(cp_body, "properties.sfo:id") + + if !rsp.Exists() { + return nil, fmt.Errorf("Missing sfo:id for %d", cp_id) + } + + sfoid = rsp.String() + + name_rsp := gjson.GetBytes(cp_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(cp_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(cp_body, "properties.edtf:cessation") + + slog.Debug("Add checkpoint", "sfo id", sfoid, "parent id", parent_id, "id", cp_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + cp := &Checkpoint{ + WhosOnFirstId: cp_id, + SFOId: sfoid, + } + + checkpoints = append(checkpoints, cp) + } + + return checkpoints, nil +} diff --git a/campus/commonarea.go b/campus/commonarea.go new file mode 100644 index 0000000..a83c039 --- /dev/null +++ b/campus/commonarea.go @@ -0,0 +1,232 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type CommonArea is a lightweight data structure to represent common areas at SFO with pointers its descendants. +type CommonArea struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + Gates []*Gate `json:"gates,omitempty"` + Checkpoints []*Checkpoint `json:"checkpoints,omitempty"` + Galleries []*Gallery `json:"galleries,omitempty"` + PublicArt []*PublicArt `json:"publicart,omitempty"` + ObservationDecks []*ObservationDeck `json:"observationdecks,omitempty"` // for example T2 + Museums []*Museum `json:"museums,omitempty"` // for example AML +} + +func (c *CommonArea) Id() int64 { + return c.WhosOnFirstId +} + +func (c *CommonArea) AltId() string { + return c.SFOId +} + +func (c *CommonArea) Placetype() string { + return "commonarea" +} + +func (c *CommonArea) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, g := range c.Gates { + + err := cb(ctx, g) + + if err != nil { + return nil + } + } + + for _, cp := range c.Checkpoints { + + err := cb(ctx, cp) + + if err != nil { + return nil + } + } + + for _, g := range c.Galleries { + + err := cb(ctx, g) + + if err != nil { + return nil + } + } + + for _, pa := range c.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return nil + } + } + + for _, od := range c.ObservationDecks { + + err := cb(ctx, od) + + if err != nil { + return nil + } + } + + for _, m := range c.Museums { + + err := cb(ctx, m) + + if err != nil { + return nil + } + } + + return nil +} + +func (ca *CommonArea) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + + return elementTree(ctx, ca, r, wr, indent) +} + +func DeriveCommonAreas(ctx context.Context, db *sql.DB, parent_id int64) ([]*CommonArea, error) { + + slog.Debug("Derive common areas", "parent", parent_id) + + commonarea_ids, err := findChildIDs(ctx, db, parent_id, "commonarea") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (common areas) for %d, %v", parent_id, err) + } + + commonareas := make([]*CommonArea, 0) + + for _, c_id := range commonarea_ids { + + gates, err := DeriveGates(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive gates for common area %d, %w", c_id, err) + } + + checkpoints, err := DeriveCheckpoints(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive gates for check points %d, %w", c_id, err) + } + + galleries, err := DeriveGalleries(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive gates for galleries %d, %w", c_id, err) + } + + observation_decks, err := DeriveObservationDecks(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive observation decks for galleries %d, %w", c_id, err) + } + + museums, err := DeriveMuseums(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive museums for common area %d, %w", c_id, err) + } + + publicart, err := DerivePublicArt(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive public art for common area %d, %w", c_id, err) + } + + c_body, err := loadFeatureWithDBAndChecks(ctx, db, c_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature %d, %w", c_id, err) + } + + if c_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(c_body, "properties.sfo:id") + + if rsp.Exists() { + + sfoid = rsp.String() + + } else { + + rsp := gjson.GetBytes(c_body, "properties.sfo:building_id") + + if !rsp.Exists() { + return nil, fmt.Errorf("Unable to find sfo:building_id for %d", c_id) + } + + switch rsp.String() { + case "ITB", "100": + sfoid = "100CAD" // gis.COMMONAREA_ITB_DEPARTURES + case "T1", "200": + sfoid = "200CAD" // gis.COMMONAREA_T1_DEPARTURES + case "T2", "300": + sfoid = "300CAD" // gis.COMMONAREA_T2_DEPARTURES + case "T3", "400": + sfoid = "400CAD" // gis.COMMONAREA_T3_DEPARTURES + default: + return nil, fmt.Errorf("Unrecognized sfo:id '%s' for %d", rsp.String(), c_id) + } + } + + name_rsp := gjson.GetBytes(c_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(c_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(c_body, "properties.edtf:cessation") + + slog.Debug("Add common area", "sfo id", sfoid, "id", c_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + area := &CommonArea{ + WhosOnFirstId: c_id, + SFOId: sfoid, + } + + if len(gates) > 0 { + area.Gates = gates + } + + if len(checkpoints) > 0 { + area.Checkpoints = checkpoints + } + + if len(galleries) > 0 { + area.Galleries = galleries + } + + if len(publicart) > 0 { + area.PublicArt = publicart + } + + if len(observation_decks) > 0 { + area.ObservationDecks = observation_decks + } + + if len(museums) > 0 { + area.Museums = museums + } + + commonareas = append(commonareas, area) + } + + return commonareas, nil +} diff --git a/campus/complex.go b/campus/complex.go new file mode 100644 index 0000000..765198a --- /dev/null +++ b/campus/complex.go @@ -0,0 +1,220 @@ +package campus + +import ( + "context" + "database/sql" + "encoding/json" + "fmt" + "io" + "log/slog" + + "github.com/paulmach/orb/geojson" + "github.com/whosonfirst/go-reader" + wof_reader "github.com/whosonfirst/go-whosonfirst-reader" +) + +// SFO Terminal Complex (1954~ to 1963~) +// https://millsfield.sfomuseum.org/buildings/1159396329/ +const FIRST_SFO_COMPLEX int64 = 1159396329 + +// type Complex is a lightweight data structure to represent the terminal complex at SFO with pointers its descendants. +type Complex struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + Terminals []*Terminal `json:"terminals"` +} + +func (c *Complex) Id() int64 { + return c.WhosOnFirstId +} + +func (c *Complex) AltId() string { + return c.SFOId +} + +func (c *Complex) Placetype() string { + return "complex" +} + +func (c *Complex) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, t := range c.Terminals { + + err := cb(ctx, t) + + if err != nil { + return err + } + } + + return nil +} + +func (c *Complex) AsJSON(ctx context.Context, wr io.Writer) error { + + enc := json.NewEncoder(wr) + return enc.Encode(c) +} + +func (c *Complex) AsGeoJSONLayers(ctx context.Context, r reader.Reader) (map[string]*geojson.FeatureCollection, error) { + + layers_map := make(map[string]*geojson.FeatureCollection) + + var cb func(ctx context.Context, el Element) error + + cb = func(ctx context.Context, el Element) error { + + id := el.Id() + pt := el.Placetype() + + body, err := wof_reader.LoadBytes(ctx, r, id) + + if err != nil { + return fmt.Errorf("Failed to load record '%d', %w", id, err) + } + + f, err := geojson.UnmarshalFeature(body) + + if err != nil { + return fmt.Errorf("Failed to unmarshal feature '%d', %w", id, err) + } + + fc, exists := layers_map[pt] + + if !exists { + fc = geojson.NewFeatureCollection() + } + + fc.Append(f) + layers_map[pt] = fc + + el.Walk(ctx, cb) + return nil + } + + err := c.Walk(ctx, cb) + + if err != nil { + return nil, err + } + + return layers_map, nil +} + +func (c *Complex) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, c, r, wr, indent) +} + +func (c *Complex) DeriveAltLookup(ctx context.Context) (map[string]int64, error) { + + lookup_map := make(map[string]int64) + + var cb func(ctx context.Context, el Element) error + + cb = func(ctx context.Context, el Element) error { + + alt := el.AltId() + id := el.Id() + + other_id, exists := lookup_map[alt] + + if exists { + slog.Warn("Duplicate key", "placetype", el.Placetype(), "alt", alt, "id", id, "other", other_id) + } else { + lookup_map[alt] = id + // slog.Info("Current", "alt", alt, "id", id) + } + + el.Walk(ctx, cb) + return nil + } + + err := c.Walk(ctx, cb) + + if err != nil { + return nil, err + } + + return lookup_map, nil +} + +func DeriveComplex(ctx context.Context, db *sql.DB, complex_id int64) (*Complex, error) { + + if complex_id == 0 { + + id, err := findMostRecentComplexID(ctx, db, FIRST_SFO_COMPLEX) + + if err != nil { + return nil, fmt.Errorf("Failed to derive most recent complex ID, %w", err) + } + + complex_id = id + } + + terminals, err := DeriveTerminals(ctx, db, complex_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive terminals for complex %d, %w", complex_id, err) + } + + c := &Complex{ + WhosOnFirstId: complex_id, + SFOId: "SFO", + Terminals: terminals, + } + + return c, nil +} + +func findMostRecentComplexID(ctx context.Context, db *sql.DB, id int64) (int64, error) { + + q := "SELECT DISTINCT(superseded_by_id) FROM supersedes WHERE superseded_id = ?" + + rows, err := db.QueryContext(ctx, q, id) + + if err != nil { + + if err == sql.ErrNoRows { + return id, nil + } + + return -1, err + } + + defer rows.Close() + possible := make([]int64, 0) + + for rows.Next() { + + var superseded_by int64 + err := rows.Scan(&superseded_by) + + if err != nil { + return -1, fmt.Errorf("Failed to scan row, %w", err) + } + + possible = append(possible, superseded_by) + } + + err = rows.Close() + + if err != nil { + return -1, err + } + + err = rows.Err() + + if err != nil { + return -1, err + } + + switch len(possible) { + case 0: + return id, nil + case 1: + return findMostRecentComplexID(ctx, db, possible[0]) + default: + return -1, fmt.Errorf("Multiple results for '%d', not implemented", id) + } +} diff --git a/campus/current.go b/campus/current.go deleted file mode 100644 index 3be7ebb..0000000 --- a/campus/current.go +++ /dev/null @@ -1,977 +0,0 @@ -package campus - -// We could (might still) use go-whosonfirst-travel to determine the most recent SFO -// but since we have to (want to) use SQLite for querying relationships its just as -// easy to use that same database to follow superseded_by breadcrumbs to the "present" -// (20210513/thisisaaronland) - -/* - -> ./bin/wof-travel-id -superseded-by -source fs:///usr/local/data/sfomuseum-data-architecture/data 1159396329 -[1] 1159396329 SFO Terminal Complex [1954~] [1963~] -[2] 1159396325 SFO Terminal Complex [1963~] [1974~] -[3] 1159396339 SFO Terminal Complex [1974~] [1979~] -[4] 1159396331 SFO Terminal Complex [1979~] [1981~] -[5] 1159396327 SFO Terminal Complex [1981~] [1983~] -[6] 1159554801 SFO Terminal Complex [1983~] [1988~] -[7] 1159554803 SFO Terminal Complex [1988~] [2000~] -[8] 1159396319 SFO Terminal Complex [2000~] [2006~] -[9] 1159396337 SFO Terminal Complex [2006~] [2011~] -[10] 1159396333 SFO Terminal Complex [2011~] [2014~] -[11] 1159396321 SFO Terminal Complex [2014~] [2017~] -[12] 1159157271 SFO Terminal Complex [2017~] [2019-07-23] -[13] 1477855605 SFO Terminal Complex [2019-07-23] [2020-~05] -[14] 1729792387 SFO Terminal Complex [2020-~05] [2021-05-25] -[15] 1745882083 SFO Terminal Complex [2021-05-25] [..] - -*/ - -import ( - "context" - "database/sql" - "fmt" - "log/slog" - - "github.com/aaronland/go-sqlite" - aa_database "github.com/aaronland/go-sqlite/database" - "github.com/tidwall/gjson" - "github.com/whosonfirst/go-whosonfirst-sqlite-features-index" - "github.com/whosonfirst/go-whosonfirst-sqlite-features/tables" - sql_index "github.com/whosonfirst/go-whosonfirst-sqlite-index/v3" -) - -// SFO Terminal Complex (1954~ to 1963~) -// https://millsfield.sfomuseum.org/buildings/1159396329/ -const FIRST_SFO int64 = 1159396329 - -// MostRecentComplexWithIterator will return a `Complex` instance representing the most recent relationships of the SFO terminal complex -// and its descendants derived from data defined in 'iterator_uri' and 'paths'. -func MostRecentComplexWithIterator(ctx context.Context, iterator_uri string, paths ...string) (*Complex, error) { - - dsn := ":memory:" - - db, err := newWhosOnFirstDatabaseFromIterator(ctx, dsn, iterator_uri, paths...) - - if err != nil { - return nil, fmt.Errorf("Failed to derive new WOF database, %w", err) - } - - sql_db, err := db.Conn() - - if err != nil { - return nil, fmt.Errorf("Failed to create database connection, %w", err) - } - - return FindMostRecentComplexWithDatabase(ctx, sql_db) -} - -func FindMostRecentComplexWithDatabase(ctx context.Context, db *sql.DB) (*Complex, error) { - - sfo_id, err := findMostRecentComplexID(ctx, db, FIRST_SFO) - - if err != nil { - return nil, fmt.Errorf("Failed to derive most recent complex ID, %w", err) - } - - terminals, err := findTerminals(ctx, db, sfo_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive terminals for complex %d, %w", sfo_id, err) - } - - c := &Complex{ - WhosOnFirstId: sfo_id, - SFOId: "SFO", - Terminals: terminals, - } - - return c, nil -} - -func findTerminals(ctx context.Context, db *sql.DB, sfo_id int64) ([]*Terminal, error) { - - slog.Info("Find terminals", "parent id", sfo_id) - - terminal_ids, err := findChildIDs(ctx, db, sfo_id, "terminal") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (terminals) for %d, %v", sfo_id, err) - } - - terminals := make([]*Terminal, 0) - - for _, t_id := range terminal_ids { - - commonareas, err := findCommonAreas(ctx, db, t_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive common areas for %d, %w", t_id, err) - } - - boardingareas, err := findBoardingAreas(ctx, db, t_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive boarding areas for %d, %w", t_id, err) - } - - t_body, err := loadFeatureWithDBAndChecks(ctx, db, t_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for %d, %w", t_id, err) - } - - if t_body == nil { - continue - } - - var sfoid string - - rsp := gjson.GetBytes(t_body, "properties.sfo:id") - - if rsp.Exists() { - - sfoid = rsp.String() - - } else { - - rsp := gjson.GetBytes(t_body, "properties.sfomuseum:terminal_id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Missing properties.sfomuseum:terminal_id property for terminal %d", t_id) - } - - switch rsp.String() { - case "ITB": - sfoid = "100" // gis.BUILDING_ITB - case "T1": - sfoid = "200" // gis.BUILDING_T1 - case "T2": - sfoid = "300" // gis.BUILDING_T2 - case "T3": - sfoid = "400" // gis.BUILDING_T3 - default: - return nil, fmt.Errorf("Unrecognized terminal_id '%s' for %d", rsp.String(), t_id) - } - } - - name_rsp := gjson.GetBytes(t_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(t_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(t_body, "properties.edtf:cessation") - - slog.Info("Add terminal", "sfo id", sfoid, "id", t_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - terminal := &Terminal{ - WhosOnFirstId: t_id, - SFOId: sfoid, - } - - if len(commonareas) > 0 { - terminal.CommonAreas = commonareas - } - - if len(boardingareas) > 0 { - terminal.BoardingAreas = boardingareas - } - - terminals = append(terminals, terminal) - } - - return terminals, nil -} - -func findObservationDecks(ctx context.Context, db *sql.DB, t_id int64) ([]*ObservationDeck, error) { - - slog.Info("Find observation decks", "parent id", t_id) - - deck_ids, err := findChildIDs(ctx, db, t_id, "observationdeck") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (observation decks) for %d, %v", t_id, err) - } - - decks := make([]*ObservationDeck, 0) - - for _, d_id := range deck_ids { - - galleries, err := findGalleries(ctx, db, d_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive galleries for observation deck %d, %w", d_id, err) - } - - publicart, err := findPublicArt(ctx, db, d_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive public art for observation deck %d, %w", d_id, err) - } - - d_body, err := loadFeatureWithDBAndChecks(ctx, db, d_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for observation deck %d, %w", d_id, err) - } - - if d_body == nil { - continue - } - - var sfoid string - - rsp := gjson.GetBytes(d_body, "properties.sfo:id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Unable to find sfo:id for WOF record, %d", d_id) - } - - sfoid = rsp.String() - - name_rsp := gjson.GetBytes(d_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(d_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(d_body, "properties.edtf:cessation") - - slog.Info("Add observation deck", "sfo id", sfoid, "parent id", t_id, "id", d_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - deck := &ObservationDeck{ - WhosOnFirstId: d_id, - SFOId: sfoid, - } - - if len(galleries) > 0 { - deck.Galleries = galleries - } - - if len(publicart) > 0 { - deck.PublicArt = publicart - } - - decks = append(decks, deck) - } - - return decks, nil -} - -func findCommonAreas(ctx context.Context, db *sql.DB, parent_id int64) ([]*CommonArea, error) { - - slog.Info("Find common areas", "parent", parent_id) - - commonarea_ids, err := findChildIDs(ctx, db, parent_id, "commonarea") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (common areas) for %d, %v", parent_id, err) - } - - commonareas := make([]*CommonArea, 0) - - for _, c_id := range commonarea_ids { - - gates, err := findGates(ctx, db, c_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive gates for common area %d, %w", c_id, err) - } - - checkpoints, err := findCheckpoints(ctx, db, c_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive gates for check points %d, %w", c_id, err) - } - - galleries, err := findGalleries(ctx, db, c_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive gates for galleries %d, %w", c_id, err) - } - - observation_decks, err := findObservationDecks(ctx, db, c_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive observation decks for galleries %d, %w", c_id, err) - } - - publicart, err := findPublicArt(ctx, db, c_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive public art for galleries %d, %w", c_id, err) - } - - c_body, err := loadFeatureWithDBAndChecks(ctx, db, c_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature %d, %w", c_id, err) - } - - if c_body == nil { - continue - } - - var sfoid string - - rsp := gjson.GetBytes(c_body, "properties.sfo:id") - - if rsp.Exists() { - - sfoid = rsp.String() - - } else { - - rsp := gjson.GetBytes(c_body, "properties.sfo:building_id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Unable to find sfo:building_id for %d", c_id) - } - - switch rsp.String() { - case "ITB", "100": - sfoid = "100CAD" // gis.COMMONAREA_ITB_DEPARTURES - case "T1", "200": - sfoid = "200CAD" // gis.COMMONAREA_T1_DEPARTURES - case "T2", "300": - sfoid = "300CAD" // gis.COMMONAREA_T2_DEPARTURES - case "T3", "400": - sfoid = "400CAD" // gis.COMMONAREA_T3_DEPARTURES - default: - return nil, fmt.Errorf("Unrecognized sfo:id '%s' for %d", rsp.String(), c_id) - } - } - - name_rsp := gjson.GetBytes(c_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(c_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(c_body, "properties.edtf:cessation") - - slog.Info("Add common area", "sfo id", sfoid, "id", c_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - area := &CommonArea{ - WhosOnFirstId: c_id, - SFOId: sfoid, - } - - if len(gates) > 0 { - area.Gates = gates - } - - if len(checkpoints) > 0 { - area.Checkpoints = checkpoints - } - - if len(galleries) > 0 { - area.Galleries = galleries - } - - if len(publicart) > 0 { - area.PublicArt = publicart - } - - if len(observation_decks) > 0 { - area.ObservationDecks = observation_decks - } - - commonareas = append(commonareas, area) - } - - return commonareas, nil -} - -func findBoardingAreas(ctx context.Context, db *sql.DB, id int64) ([]*BoardingArea, error) { - - slog.Info("Find boarding areas", "parent", id) - - boardingarea_ids, err := findChildIDs(ctx, db, id, "boardingarea") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (boarding areas areas) for %d, %v", id, err) - } - - boardingareas := make([]*BoardingArea, 0) - - for _, b_id := range boardingarea_ids { - - gates, err := findGates(ctx, db, b_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive gates for boarding area %d, %w", b_id, err) - } - - checkpoints, err := findCheckpoints(ctx, db, b_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive check points for boarding area %d, %w", b_id, err) - } - - galleries, err := findGalleries(ctx, db, b_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive galleries for boarding area %d, %w", b_id, err) - } - - publicart, err := findPublicArt(ctx, db, b_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive public art for boarding area %d, %w", b_id, err) - } - - observation_decks, err := findObservationDecks(ctx, db, b_id) - - if err != nil { - return nil, fmt.Errorf("Failed to derive observation decks for boarding area %d, %w", b_id, err) - } - - b_body, err := loadFeatureWithDBAndChecks(ctx, db, b_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for %d, %w", b_id, err) - } - - if b_body == nil { - continue - } - - var sfoid string - - rsp := gjson.GetBytes(b_body, "properties.sfo:id") - - if rsp.Exists() { - - sfoid = rsp.String() - - } else { - - rsp := gjson.GetBytes(b_body, "properties.sfo:building_id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Missing sfo:building_id for boarding area %d", b_id) - } - - sfoid = rsp.String() - } - - name_rsp := gjson.GetBytes(b_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(b_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(b_body, "properties.edtf:cessation") - - slog.Info("Add boardinarea", "sfo id", sfoid, "id", b_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - area := &BoardingArea{ - WhosOnFirstId: b_id, - SFOId: sfoid, - } - - if len(gates) > 0 { - area.Gates = gates - } - - if len(checkpoints) > 0 { - area.Checkpoints = checkpoints - } - - if len(galleries) > 0 { - area.Galleries = galleries - } - - if len(publicart) > 0 { - area.PublicArt = publicart - } - - if len(observation_decks) > 0 { - area.ObservationDecks = observation_decks - } - - boardingareas = append(boardingareas, area) - } - - return boardingareas, nil - -} - -func findGates(ctx context.Context, db *sql.DB, parent_id int64) ([]*Gate, error) { - - slog.Info("Find gates", "parent", parent_id) - - gate_ids, err := findChildIDs(ctx, db, parent_id, "gate") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (gates) for %d, %w", parent_id, err) - } - - gates := make([]*Gate, 0) - - for _, g_id := range gate_ids { - - g_body, err := loadFeatureWithDBAndChecks(ctx, db, g_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for date %d, %w", g_id, err) - } - - if g_body == nil { - continue - } - - var sfoid string - - rsp := gjson.GetBytes(g_body, "properties.sfo:id") - - if rsp.Exists() { - - sfoid = rsp.String() - - } else { - - rsp := gjson.GetBytes(g_body, "properties.wof:name") - - if !rsp.Exists() { - return nil, fmt.Errorf("Missing wof:name for %d", g_id) - } - - sfoid = rsp.String() - } - - name_rsp := gjson.GetBytes(g_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(g_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(g_body, "properties.edtf:cessation") - - slog.Info("Add gate", "sfo id", sfoid, "parent_id", parent_id, "id", g_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - g := &Gate{ - WhosOnFirstId: g_id, - SFOId: sfoid, - } - - gates = append(gates, g) - } - - return gates, nil -} - -func findCheckpoints(ctx context.Context, db *sql.DB, parent_id int64) ([]*Checkpoint, error) { - - slog.Info("Find check points", "parent id", parent_id) - - checkpoint_ids, err := findChildIDs(ctx, db, parent_id, "checkpoint") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (checkpoints) for %d, %w", parent_id, err) - } - - checkpoints := make([]*Checkpoint, 0) - - for _, cp_id := range checkpoint_ids { - - cp_body, err := loadFeatureWithDBAndChecks(ctx, db, cp_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for %d, %w", cp_id, err) - } - - if cp_body == nil { - continue - } - - var sfoid string - - rsp := gjson.GetBytes(cp_body, "properties.sfo:id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Missing sfo:id for %d", cp_id) - } - - sfoid = rsp.String() - - name_rsp := gjson.GetBytes(cp_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(cp_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(cp_body, "properties.edtf:cessation") - - slog.Info("Add checkpoint", "sfo id", sfoid, "parent id", parent_id, "id", cp_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - cp := &Checkpoint{ - WhosOnFirstId: cp_id, - SFOId: sfoid, - } - - checkpoints = append(checkpoints, cp) - } - - return checkpoints, nil -} - -func findGalleries(ctx context.Context, db *sql.DB, parent_id int64) ([]*Gallery, error) { - - slog.Info("Find galleries", "parent id", parent_id) - - gallery_ids, err := findChildIDs(ctx, db, parent_id, "gallery") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (galleries) for %d, %w", parent_id, err) - } - - galleries := make([]*Gallery, 0) - - for _, g_id := range gallery_ids { - - g_body, err := loadFeatureWithDBAndChecks(ctx, db, g_id) - - if err != nil { - return nil, fmt.Errorf("Failed load feature for gallery %d, %w", g_id, err) - } - - if g_body == nil { - continue - } - - var sfomid string - - rsp := gjson.GetBytes(g_body, "properties.sfomuseum:map_id") - - if rsp.Exists() { - - sfomid = rsp.String() - - } else { - - rsp := gjson.GetBytes(g_body, "properties.sfomuseum:gallery_id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Missing sfomuseum:gallery_id property for gallery %d", g_id) - } - - sfomid = rsp.String() - } - - name_rsp := gjson.GetBytes(g_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(g_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(g_body, "properties.edtf:cessation") - - slog.Info("Add gallery", "sfo id", sfomid, "parent id", parent_id, "id", g_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - g := &Gallery{ - WhosOnFirstId: g_id, - SFOId: sfomid, - } - - galleries = append(galleries, g) - } - - return galleries, nil -} - -func findPublicArt(ctx context.Context, db *sql.DB, parent_id int64) ([]*PublicArt, error) { - - slog.Info("Find public art", "parent id", parent_id) - - publicart_ids, err := findChildIDs(ctx, db, parent_id, "publicart") - - if err != nil { - return nil, fmt.Errorf("Failed to find any child records (public art) for %d, %w", parent_id, err) - } - - publicarts := make([]*PublicArt, 0) - - for _, p_id := range publicart_ids { - - p_body, err := loadFeatureWithDBAndChecks(ctx, db, p_id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for public art %d, %w", p_id, err) - } - - if p_body == nil { - continue - } - - var sfomid string - - rsp := gjson.GetBytes(p_body, "properties.sfomuseum:map_id") - - if rsp.Exists() { - - sfomid = rsp.String() - - } else { - - rsp := gjson.GetBytes(p_body, "properties.sfomuseum:object_id") - - if !rsp.Exists() { - return nil, fmt.Errorf("Missing sfomuseum:object_id property for public art %d, %w", p_id, err) - } - - sfomid = rsp.String() - } - - name_rsp := gjson.GetBytes(p_body, "properties.wof:name") - inception_rsp := gjson.GetBytes(p_body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(p_body, "properties.edtf:cessation") - - slog.Info("Add public art", "sfo id", sfomid, "parent id", parent_id, "id", p_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - - pa := &PublicArt{ - WhosOnFirstId: p_id, - SFOId: sfomid, - } - - publicarts = append(publicarts, pa) - } - - return publicarts, nil -} - -func findMostRecentComplexID(ctx context.Context, db *sql.DB, id int64) (int64, error) { - - q := "SELECT DISTINCT(superseded_by_id) FROM supersedes WHERE superseded_id = ?" - - rows, err := db.QueryContext(ctx, q, id) - - if err != nil { - - if err == sql.ErrNoRows { - return id, nil - } - - return -1, err - } - - defer rows.Close() - possible := make([]int64, 0) - - for rows.Next() { - - var superseded_by int64 - err := rows.Scan(&superseded_by) - - if err != nil { - return -1, fmt.Errorf("Failed to scan row, %w", err) - } - - possible = append(possible, superseded_by) - } - - err = rows.Close() - - if err != nil { - return -1, err - } - - err = rows.Err() - - if err != nil { - return -1, err - } - - switch len(possible) { - case 0: - return id, nil - case 1: - return findMostRecentComplexID(ctx, db, possible[0]) - default: - return -1, fmt.Errorf("Multiple results for '%d', not implemented", id) - } -} - -func findChildIDs(ctx context.Context, db *sql.DB, parent_id int64, placetype string) ([]int64, error) { - - q := `SELECT s.id FROM spr s, geojson g WHERE s.id=g.id AND s.parent_id=? AND JSON_EXTRACT(g.body, '$.properties."sfomuseum:placetype"')=?` - - rows, err := db.QueryContext(ctx, q, parent_id, placetype) - - if err != nil { - return nil, err - } - - defer rows.Close() - children := make([]int64, 0) - - for rows.Next() { - - var superseded_by int64 - err := rows.Scan(&superseded_by) - - if err != nil { - return nil, err - } - - children = append(children, superseded_by) - } - - err = rows.Close() - - if err != nil { - return nil, err - } - - err = rows.Err() - - if err != nil { - return nil, err - } - - return children, nil -} - -func loadFeatureWithDBAndChecks(ctx context.Context, db *sql.DB, id int64) ([]byte, error) { - - body, err := loadFeatureWithDB(ctx, db, id) - - if err != nil { - return nil, fmt.Errorf("Failed to load feature for record %d, %w", id, err) - } - - name_rsp := gjson.GetBytes(body, "properties.wof:name") - inception_rsp := gjson.GetBytes(body, "properties.edtf:inception") - cessation_rsp := gjson.GetBytes(body, "properties.edtf:cessation") - - deprecated_rsp := gjson.GetBytes(body, "properties.edtf:deprecated") - - if deprecated_rsp.Exists() && deprecated_rsp.String() != "" { - return nil, nil - } - - current_rsp := gjson.GetBytes(body, "properties.mz:is_current") - - if !current_rsp.Exists() { - return nil, fmt.Errorf("Missing properties.mz:is_current property for record %d", id) - } - - if current_rsp.Int() != 1 { - slog.Warn("Unexpected mz:is_current property", "id", id, "mz:is_current", current_rsp.Int(), "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) - return nil, nil - } - - return body, nil -} - -func loadFeatureWithDB(ctx context.Context, db *sql.DB, id int64) ([]byte, error) { - - q := "SELECT body FROM geojson WHERE id = ?" - - row := db.QueryRowContext(ctx, q, id) - - var body string - err := row.Scan(&body) - - if err != nil { - return nil, err - } - - return []byte(body), nil -} - -func newWhosOnFirstDatabaseFromIterator(ctx context.Context, dsn string, iterator_uri string, paths ...string) (*aa_database.SQLiteDatabase, error) { - - driver := "sqlite3" - - db, err := aa_database.NewDBWithDriver(ctx, driver, dsn) - - if err != nil { - return nil, err - } - - err = db.LiveHardDieFast() - - if err != nil { - return nil, err - } - - to_index := make([]sqlite.Table, 0) - - geojson_opts, err := tables.DefaultGeoJSONTableOptions() - - if err != nil { - return nil, err - } - - geojson_opts.IndexAltFiles = false - - geojson_table, err := tables.NewGeoJSONTableWithDatabaseAndOptions(ctx, db, geojson_opts) - - if err != nil { - return nil, err - } - - to_index = append(to_index, geojson_table) - - supersedes_table, err := tables.NewSupersedesTableWithDatabase(ctx, db) - - if err != nil { - return nil, err - } - - to_index = append(to_index, supersedes_table) - - spr_opts, err := tables.DefaultSPRTableOptions() - - if err != nil { - return nil, err - } - - spr_table, err := tables.NewSPRTableWithDatabaseAndOptions(ctx, db, spr_opts) - - if err != nil { - return nil, err - } - - to_index = append(to_index, spr_table) - - /* - if opts.IndexRTreeTable { - - rtree_opts, err := tables.DefaultRTreeTableOptions() - - if err != nil { - return nil, err - } - - rtree_opts.IndexAltFiles = opts.IndexAltFiles - - rtree_table, err := tables.NewRTreeTableWithDatabaseAndOptions(ctx, db, rtree_opts) - - if err != nil { - return nil, err - } - - to_index = append(to_index, rtree_table) - } - - if opts.IndexPropertiesTable || opts.IndexRTreeTable { - - properties_opts, err := tables.DefaultPropertiesTableOptions() - - if err != nil { - return nil, err - } - - properties_opts.IndexAltFiles = opts.IndexAltFiles - - properties_table, err := tables.NewPropertiesTableWithDatabaseAndOptions(ctx, db, properties_opts) - - if err != nil { - return nil, err - } - - to_index = append(to_index, properties_table) - } - */ - - record_opts := &index.SQLiteFeaturesLoadRecordFuncOptions{ - StrictAltFiles: false, - } - - record_func := index.SQLiteFeaturesLoadRecordFunc(record_opts) - - idx_opts := &sql_index.SQLiteIndexerOptions{ - DB: db, - Tables: to_index, - LoadRecordFunc: record_func, - } - - idx, err := sql_index.NewSQLiteIndexer(idx_opts) - - if err != nil { - return nil, err - } - - err = idx.IndexPaths(ctx, iterator_uri, paths) - - if err != nil { - return nil, err - } - - return db, nil -} diff --git a/campus/database.go b/campus/database.go new file mode 100644 index 0000000..502ce01 --- /dev/null +++ b/campus/database.go @@ -0,0 +1,203 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "log/slog" + + "github.com/aaronland/go-sqlite" + aa_database "github.com/aaronland/go-sqlite/database" + "github.com/sfomuseum/go-edtf" + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-whosonfirst-sqlite-features-index" + "github.com/whosonfirst/go-whosonfirst-sqlite-features/tables" + sql_index "github.com/whosonfirst/go-whosonfirst-sqlite-index/v3" +) + +var WARN_IS_CURRENT = true + +func NewDatabaseWithIterator(ctx context.Context, dsn string, iterator_uri string, paths ...string) (*sql.DB, error) { + + driver := "sqlite3" + + db, err := aa_database.NewDBWithDriver(ctx, driver, dsn) + + if err != nil { + return nil, err + } + + err = db.LiveHardDieFast() + + if err != nil { + return nil, err + } + + to_index := make([]sqlite.Table, 0) + + geojson_opts, err := tables.DefaultGeoJSONTableOptions() + + if err != nil { + return nil, err + } + + geojson_opts.IndexAltFiles = false + + geojson_table, err := tables.NewGeoJSONTableWithDatabaseAndOptions(ctx, db, geojson_opts) + + if err != nil { + return nil, err + } + + to_index = append(to_index, geojson_table) + + supersedes_table, err := tables.NewSupersedesTableWithDatabase(ctx, db) + + if err != nil { + return nil, err + } + + to_index = append(to_index, supersedes_table) + + spr_opts, err := tables.DefaultSPRTableOptions() + + if err != nil { + return nil, err + } + + spr_table, err := tables.NewSPRTableWithDatabaseAndOptions(ctx, db, spr_opts) + + if err != nil { + return nil, err + } + + to_index = append(to_index, spr_table) + + record_opts := &index.SQLiteFeaturesLoadRecordFuncOptions{ + StrictAltFiles: false, + } + + record_func := index.SQLiteFeaturesLoadRecordFunc(record_opts) + + idx_opts := &sql_index.SQLiteIndexerOptions{ + DB: db, + Tables: to_index, + LoadRecordFunc: record_func, + } + + idx, err := sql_index.NewSQLiteIndexer(idx_opts) + + if err != nil { + return nil, err + } + + err = idx.IndexPaths(ctx, iterator_uri, paths) + + if err != nil { + return nil, err + } + + conn, err := db.Conn() + + if err != nil { + return nil, err + } + + return conn, nil +} + +func findChildIDs(ctx context.Context, db *sql.DB, parent_id int64, placetype string) ([]int64, error) { + + q := `SELECT s.id FROM spr s, geojson g WHERE s.id=g.id AND s.parent_id=? AND JSON_EXTRACT(g.body, '$.properties."sfomuseum:placetype"')=?` + + slog.Debug(q, "parent_id", parent_id, "placetype", placetype) + + rows, err := db.QueryContext(ctx, q, parent_id, placetype) + + if err != nil { + return nil, err + } + + defer rows.Close() + children := make([]int64, 0) + + for rows.Next() { + + var superseded_by int64 + err := rows.Scan(&superseded_by) + + if err != nil { + return nil, err + } + + children = append(children, superseded_by) + } + + err = rows.Close() + + if err != nil { + return nil, err + } + + err = rows.Err() + + if err != nil { + return nil, err + } + + return children, nil +} + +func loadFeatureWithDBAndChecks(ctx context.Context, db *sql.DB, id int64) ([]byte, error) { + + body, err := loadFeatureWithDB(ctx, db, id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for record %d, %w", id, err) + } + + name_rsp := gjson.GetBytes(body, "properties.wof:name") + inception_rsp := gjson.GetBytes(body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(body, "properties.edtf:cessation") + + deprecated_rsp := gjson.GetBytes(body, "properties.edtf:deprecated") + + if deprecated_rsp.Exists() && deprecated_rsp.String() != "" { + return nil, nil + } + + current_rsp := gjson.GetBytes(body, "properties.mz:is_current") + + if !current_rsp.Exists() { + return nil, fmt.Errorf("Missing properties.mz:is_current property for record %d", id) + } + + if current_rsp.Int() != 1 && WARN_IS_CURRENT { + + cessation_str := cessation_rsp.String() + + if cessation_str == "" || cessation_str == edtf.OPEN { + slog.Warn("Unexpected mz:is_current property", "id", id, "mz:is_current", current_rsp.Int(), "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + } + + // return nil, nil + } + + return body, nil +} + +func loadFeatureWithDB(ctx context.Context, db *sql.DB, id int64) ([]byte, error) { + + q := "SELECT body FROM geojson WHERE id = ?" + + row := db.QueryRowContext(ctx, q, id) + + var body string + err := row.Scan(&body) + + if err != nil { + return nil, err + } + + return []byte(body), nil +} diff --git a/campus/element.go b/campus/element.go new file mode 100644 index 0000000..6cf672e --- /dev/null +++ b/campus/element.go @@ -0,0 +1,32 @@ +package campus + +import ( + "context" + "fmt" + "io" + _ "log/slog" + "strings" + + "github.com/whosonfirst/go-reader" +) + +type Element interface { + Id() int64 + AltId() string + Placetype() string + Walk(context.Context, ElementCallbackFunc) error + AsTree(context.Context, reader.Reader, io.Writer, int) error +} + +type ElementCallbackFunc func(context.Context, Element) error + +func elementTree(ctx context.Context, el Element, r reader.Reader, wr io.Writer, indent int) error { + + fmt.Fprintf(wr, "%s%s\n", strings.Repeat("\t", indent), treeLabel(ctx, r, el)) + + cb := func(ctx context.Context, other_el Element) error { + return other_el.AsTree(ctx, r, wr, indent+1) + } + + return el.Walk(ctx, cb) +} diff --git a/campus/gallery.go b/campus/gallery.go new file mode 100644 index 0000000..c5e60e9 --- /dev/null +++ b/campus/gallery.go @@ -0,0 +1,90 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type Gallery is a lightweight data structure to represent SFO Museum galleries at SFO. +type Gallery struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfomuseum:id"` +} + +func (g *Gallery) Id() int64 { + return g.WhosOnFirstId +} + +func (g *Gallery) AltId() string { + return g.SFOId +} + +func (g *Gallery) Placetype() string { + return "gallery" +} + +func (g *Gallery) Walk(ctx context.Context, cb ElementCallbackFunc) error { + return nil +} + +func (g *Gallery) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + + return elementTree(ctx, g, r, wr, indent) +} + +func DeriveGalleries(ctx context.Context, db *sql.DB, parent_id int64) ([]*Gallery, error) { + + slog.Debug("Derive galleries", "parent id", parent_id) + + gallery_ids, err := findChildIDs(ctx, db, parent_id, "gallery") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (galleries) for %d, %w", parent_id, err) + } + + galleries := make([]*Gallery, 0) + + for _, g_id := range gallery_ids { + + g_body, err := loadFeatureWithDBAndChecks(ctx, db, g_id) + + if err != nil { + return nil, fmt.Errorf("Failed load feature for gallery %d, %w", g_id, err) + } + + if g_body == nil { + continue + } + + map_rsp := gjson.GetBytes(g_body, "properties.sfomuseum:map_id") + gallery_rsp := gjson.GetBytes(g_body, "properties.sfomuseum:gallery_id") + + if !gallery_rsp.Exists() { + return nil, fmt.Errorf("Missing sfomuseum:gallery_id property for gallery %d", g_id) + } + + sfom_id := fmt.Sprintf("%s#%d", map_rsp.String(), gallery_rsp.Int()) + + name_rsp := gjson.GetBytes(g_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(g_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(g_body, "properties.edtf:cessation") + + slog.Debug("Add gallery", "sfo id", sfom_id, "parent id", parent_id, "id", g_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + g := &Gallery{ + WhosOnFirstId: g_id, + SFOId: sfom_id, + } + + galleries = append(galleries, g) + } + + return galleries, nil +} diff --git a/campus/garage.go b/campus/garage.go new file mode 100644 index 0000000..9989e82 --- /dev/null +++ b/campus/garage.go @@ -0,0 +1,46 @@ +package campus + +import ( + "context" + "io" + + "github.com/whosonfirst/go-reader" +) + +// type Garage is a lightweight data structure to represent garages at SFO with pointers its descendants. +type Garage struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + PublicArt []*PublicArt `json:"publicart,omitempty"` +} + +func (g *Garage) Id() int64 { + return g.WhosOnFirstId +} + +func (g *Garage) AltId() string { + return g.SFOId +} + +func (g *Garage) Placetype() string { + return "garage" +} + +func (g *Garage) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, pa := range g.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return nil + } + } + + return nil +} + +func (g *Garage) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, g, r, wr, indent) +} diff --git a/campus/gate.go b/campus/gate.go new file mode 100644 index 0000000..000c049 --- /dev/null +++ b/campus/gate.go @@ -0,0 +1,99 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type Gate is a lightweight data structure to represent passenger gates at SFO. +type Gate struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` +} + +func (g *Gate) Id() int64 { + return g.WhosOnFirstId +} + +func (g *Gate) AltId() string { + return g.SFOId +} + +func (g *Gate) Placetype() string { + return "gate" +} + +func (g *Gate) Walk(ctx context.Context, cb ElementCallbackFunc) error { + return nil +} + +func (g *Gate) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, g, r, wr, indent) +} + +func DeriveGates(ctx context.Context, db *sql.DB, parent_id int64) ([]*Gate, error) { + + slog.Debug("Derive gates", "parent", parent_id) + + gate_ids, err := findChildIDs(ctx, db, parent_id, "gate") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (gates) for %d, %w", parent_id, err) + } + + gates := make([]*Gate, 0) + + for _, g_id := range gate_ids { + + g_body, err := loadFeatureWithDBAndChecks(ctx, db, g_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for date %d, %w", g_id, err) + } + + if g_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(g_body, "properties.sfo:id") + + if rsp.Exists() { + + sfoid = rsp.String() + + } else { + + rsp := gjson.GetBytes(g_body, "properties.wof:name") + + if !rsp.Exists() { + return nil, fmt.Errorf("Missing wof:name for %d", g_id) + } + + sfoid = rsp.String() + } + + name_rsp := gjson.GetBytes(g_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(g_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(g_body, "properties.edtf:cessation") + + slog.Debug("Add gate", "sfo id", sfoid, "parent_id", parent_id, "id", g_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + g := &Gate{ + WhosOnFirstId: g_id, + SFOId: sfoid, + } + + gates = append(gates, g) + } + + return gates, nil +} diff --git a/campus/geojson.go b/campus/geojson.go deleted file mode 100644 index 87e4448..0000000 --- a/campus/geojson.go +++ /dev/null @@ -1,134 +0,0 @@ -package campus - -import ( - "context" - "fmt" - - "github.com/paulmach/orb/geojson" - "github.com/whosonfirst/go-reader" - wof_reader "github.com/whosonfirst/go-whosonfirst-reader" -) - -func ComplexToGeoJSONLayers(ctx context.Context, c *Complex, r reader.Reader) (map[string]*geojson.FeatureCollection, error) { - - terminal_ids := make([]int64, 0) - boardingarea_ids := make([]int64, 0) - commonarea_ids := make([]int64, 0) - observationdeck_ids := make([]int64, 0) - gallery_ids := make([]int64, 0) - checkpoint_ids := make([]int64, 0) - gate_ids := make([]int64, 0) - publicart_ids := make([]int64, 0) - - for _, t := range c.Terminals { - - terminal_ids = append(terminal_ids, t.WhosOnFirstId) - - for _, b := range t.BoardingAreas { - boardingarea_ids = append(boardingarea_ids, b.WhosOnFirstId) - - for _, g := range b.Gates { - gate_ids = append(gate_ids, g.WhosOnFirstId) - } - - for _, c := range b.Checkpoints { - checkpoint_ids = append(checkpoint_ids, c.WhosOnFirstId) - } - - for _, g := range b.Galleries { - gallery_ids = append(gallery_ids, g.WhosOnFirstId) - } - - for _, p := range b.PublicArt { - publicart_ids = append(publicart_ids, p.WhosOnFirstId) - } - - for _, o := range b.ObservationDecks { - - observationdeck_ids = append(observationdeck_ids, o.WhosOnFirstId) - - for _, g := range o.Galleries { - gallery_ids = append(gallery_ids, g.WhosOnFirstId) - } - - for _, p := range o.PublicArt { - publicart_ids = append(publicart_ids, p.WhosOnFirstId) - } - - } - } - - for _, c := range t.CommonAreas { - - commonarea_ids = append(commonarea_ids, c.WhosOnFirstId) - - for _, g := range c.Gates { - gate_ids = append(gate_ids, g.WhosOnFirstId) - } - - for _, c := range c.Checkpoints { - checkpoint_ids = append(checkpoint_ids, c.WhosOnFirstId) - } - - for _, g := range c.Galleries { - gallery_ids = append(gallery_ids, g.WhosOnFirstId) - } - - for _, p := range c.PublicArt { - publicart_ids = append(publicart_ids, p.WhosOnFirstId) - } - - for _, o := range c.ObservationDecks { - - observationdeck_ids = append(observationdeck_ids, o.WhosOnFirstId) - - for _, g := range o.Galleries { - gallery_ids = append(gallery_ids, g.WhosOnFirstId) - } - - for _, p := range o.PublicArt { - publicart_ids = append(publicart_ids, p.WhosOnFirstId) - } - } - } - } - - feature_ids := map[string][]int64{ - "terminals": terminal_ids, - "boardingareas": boardingarea_ids, - "commonareas": commonarea_ids, - "observationdecks": observationdeck_ids, - "gates": gate_ids, - "checkpoints": checkpoint_ids, - "galleries": gallery_ids, - "publicart": publicart_ids, - } - - features := make(map[string]*geojson.FeatureCollection) - - for k, ids := range feature_ids { - - fc := geojson.NewFeatureCollection() - - for _, id := range ids { - - body, err := wof_reader.LoadBytes(ctx, r, id) - - if err != nil { - return nil, fmt.Errorf("Failed to read %d, %w", id, err) - } - - f, err := geojson.UnmarshalFeature(body) - - if err != nil { - return nil, fmt.Errorf("Failed to unmarshal %d, %w", id, err) - } - - fc.Append(f) - } - - features[k] = fc - } - - return features, nil -} diff --git a/campus/hotel.go b/campus/hotel.go new file mode 100644 index 0000000..2a826f3 --- /dev/null +++ b/campus/hotel.go @@ -0,0 +1,46 @@ +package campus + +import ( + "context" + "io" + + "github.com/whosonfirst/go-reader" +) + +// type Hotel is a lightweight data structure to represent garages at SFO with pointers its descendants. +type Hotel struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + PublicArt []*PublicArt `json:"publicart,omitempty"` +} + +func (h *Hotel) Id() int64 { + return h.WhosOnFirstId +} + +func (h *Hotel) AltId() string { + return h.SFOId +} + +func (h *Hotel) Placetype() string { + return "hotel" +} + +func (h *Hotel) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, pa := range h.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return nil + } + } + + return nil +} + +func (h *Hotel) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, h, r, wr, indent) +} diff --git a/campus/museum.go b/campus/museum.go new file mode 100644 index 0000000..f93ed9e --- /dev/null +++ b/campus/museum.go @@ -0,0 +1,131 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type Museum is a lightweight data structure to represent dedicated Museum-related areas, distinct from galleries, at SFO with pointers to its descendants. +type Museum struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + Galleries []*Gallery `json:"galleries,omitempty"` + PublicArt []*PublicArt `json:"publicart,omitempty"` +} + +func (m *Museum) Id() int64 { + return m.WhosOnFirstId +} + +func (m *Museum) AltId() string { + return m.SFOId +} + +func (m *Museum) Placetype() string { + return "museum" +} + +func (m *Museum) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, pa := range m.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return nil + } + } + + for _, g := range m.Galleries { + + err := cb(ctx, g) + + if err != nil { + return nil + } + } + + return nil +} + +func (m *Museum) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, m, r, wr, indent) +} + +func DeriveMuseums(ctx context.Context, db *sql.DB, parent_id int64) ([]*Museum, error) { + + slog.Debug("Derive museums", "parent id", parent_id) + + museum_ids, err := findChildIDs(ctx, db, parent_id, "museum") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (museums) for %d, %v", parent_id, err) + } + + museums := make([]*Museum, 0) + + for _, m_id := range museum_ids { + + galleries, err := DeriveGalleries(ctx, db, m_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive galleries for museum %d, %w", m_id, err) + } + + publicart, err := DerivePublicArt(ctx, db, m_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive public art for museum %d, %w", m_id, err) + } + + m_body, err := loadFeatureWithDBAndChecks(ctx, db, m_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for museum %d, %w", m_id, err) + } + + if m_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(m_body, "properties.sfo:id") + + if !rsp.Exists() { + return nil, fmt.Errorf("Unable to find sfo:id for WOF record, %d", m_id) + } + + sfoid = rsp.String() + + name_rsp := gjson.GetBytes(m_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(m_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(m_body, "properties.edtf:cessation") + + slog.Debug("Add museum", "sfo id", sfoid, "parent id", parent_id, "id", m_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + museum := &Museum{ + WhosOnFirstId: m_id, + SFOId: sfoid, + } + + if len(galleries) > 0 { + museum.Galleries = galleries + } + + if len(publicart) > 0 { + museum.PublicArt = publicart + } + + museums = append(museums, museum) + } + + return museums, nil +} diff --git a/campus/name.go b/campus/name.go new file mode 100644 index 0000000..7662293 --- /dev/null +++ b/campus/name.go @@ -0,0 +1,39 @@ +package campus + +import ( + "context" + "fmt" + "log/slog" + + "github.com/whosonfirst/go-reader" + "github.com/whosonfirst/go-whosonfirst-feature/properties" + wof_reader "github.com/whosonfirst/go-whosonfirst-reader" +) + +func treeLabel(ctx context.Context, r reader.Reader, el Element) string { + + id := el.Id() + alt := el.AltId() + pt := el.Placetype() + + return fmt.Sprintf("[%s] %d#%s %s", pt, id, alt, name(ctx, r, id)) +} + +func name(ctx context.Context, r reader.Reader, id int64) string { + + body, err := wof_reader.LoadBytes(ctx, r, id) + + if err != nil { + slog.Warn("Failed to read bytes for ID", "id", id, "error", err) + return "" + } + + name, err := properties.Name(body) + + if err != nil { + slog.Warn("Failed to read name", "id", id, "error", err) + return "" + } + + return name +} diff --git a/campus/observationdeck.go b/campus/observationdeck.go new file mode 100644 index 0000000..aec2b26 --- /dev/null +++ b/campus/observationdeck.go @@ -0,0 +1,131 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type ObservationDeck is a lightweight data structure to represent observation decks at SFO with pointers its descendants. +type ObservationDeck struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + PublicArt []*PublicArt `json:"publicart,omitempty"` + Galleries []*Gallery `json:"galleries,omitempty"` +} + +func (od *ObservationDeck) Id() int64 { + return od.WhosOnFirstId +} + +func (od *ObservationDeck) AltId() string { + return od.SFOId +} + +func (od *ObservationDeck) Placetype() string { + return "observationdeck" +} + +func (od *ObservationDeck) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, pa := range od.PublicArt { + + err := cb(ctx, pa) + + if err != nil { + return nil + } + } + + for _, g := range od.Galleries { + + err := cb(ctx, g) + + if err != nil { + return nil + } + } + + return nil +} + +func (od *ObservationDeck) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, od, r, wr, indent) +} + +func DeriveObservationDecks(ctx context.Context, db *sql.DB, t_id int64) ([]*ObservationDeck, error) { + + slog.Debug("Derive observation decks", "parent id", t_id) + + deck_ids, err := findChildIDs(ctx, db, t_id, "observationdeck") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (observation decks) for %d, %v", t_id, err) + } + + decks := make([]*ObservationDeck, 0) + + for _, d_id := range deck_ids { + + galleries, err := DeriveGalleries(ctx, db, d_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive galleries for observation deck %d, %w", d_id, err) + } + + publicart, err := DerivePublicArt(ctx, db, d_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive public art for observation deck %d, %w", d_id, err) + } + + d_body, err := loadFeatureWithDBAndChecks(ctx, db, d_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for observation deck %d, %w", d_id, err) + } + + if d_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(d_body, "properties.sfo:id") + + if !rsp.Exists() { + return nil, fmt.Errorf("Unable to find sfo:id for WOF record, %d", d_id) + } + + sfoid = rsp.String() + + name_rsp := gjson.GetBytes(d_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(d_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(d_body, "properties.edtf:cessation") + + slog.Debug("Add observation deck", "sfo id", sfoid, "parent id", t_id, "id", d_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + deck := &ObservationDeck{ + WhosOnFirstId: d_id, + SFOId: sfoid, + } + + if len(galleries) > 0 { + deck.Galleries = galleries + } + + if len(publicart) > 0 { + deck.PublicArt = publicart + } + + decks = append(decks, deck) + } + + return decks, nil +} diff --git a/campus/publicart.go b/campus/publicart.go new file mode 100644 index 0000000..5bd2e40 --- /dev/null +++ b/campus/publicart.go @@ -0,0 +1,89 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type PublicArt is a lightweight data structure to represent public art works at SFO. +type PublicArt struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfomuseum:id"` +} + +func (pa *PublicArt) Id() int64 { + return pa.WhosOnFirstId +} + +func (pa *PublicArt) AltId() string { + return pa.SFOId +} + +func (pa *PublicArt) Placetype() string { + return "publicart" +} + +func (pa *PublicArt) Walk(ctx context.Context, cb ElementCallbackFunc) error { + return nil +} + +func (pa *PublicArt) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, pa, r, wr, indent) +} + +func DerivePublicArt(ctx context.Context, db *sql.DB, parent_id int64) ([]*PublicArt, error) { + + slog.Debug("Derive public art", "parent id", parent_id) + + publicart_ids, err := findChildIDs(ctx, db, parent_id, "publicart") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (public art) for %d, %w", parent_id, err) + } + + publicarts := make([]*PublicArt, 0) + + for _, p_id := range publicart_ids { + + p_body, err := loadFeatureWithDBAndChecks(ctx, db, p_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for public art %d, %w", p_id, err) + } + + if p_body == nil { + continue + } + + map_rsp := gjson.GetBytes(p_body, "properties.sfomuseum:map_id") + object_rsp := gjson.GetBytes(p_body, "properties.sfomuseum:object_id") + + if !object_rsp.Exists() { + return nil, fmt.Errorf("Missing sfomuseum:object_id property for public art %d, %w", p_id, err) + } + + sfom_id := fmt.Sprintf("%s#%d", map_rsp.String(), object_rsp.Int()) + + name_rsp := gjson.GetBytes(p_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(p_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(p_body, "properties.edtf:cessation") + + slog.Debug("Add public art", "sfo id", sfom_id, "parent id", parent_id, "id", p_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + pa := &PublicArt{ + WhosOnFirstId: p_id, + SFOId: sfom_id, + } + + publicarts = append(publicarts, pa) + } + + return publicarts, nil +} diff --git a/campus/terminal.go b/campus/terminal.go new file mode 100644 index 0000000..cb967d0 --- /dev/null +++ b/campus/terminal.go @@ -0,0 +1,151 @@ +package campus + +import ( + "context" + "database/sql" + "fmt" + "io" + "log/slog" + + "github.com/tidwall/gjson" + "github.com/whosonfirst/go-reader" +) + +// type Terminal is a lightweight data structure to represent terminals at SFO with pointers its descendants. +type Terminal struct { + Element `json:",omitempty"` + WhosOnFirstId int64 `json:"id"` + SFOId string `json:"sfo:id"` + CommonAreas []*CommonArea `json:"commonareas,omitempty"` + BoardingAreas []*BoardingArea `json:"boardingareas,omitempty"` +} + +func (t *Terminal) Id() int64 { + return t.WhosOnFirstId +} + +func (t *Terminal) AltId() string { + return t.SFOId +} + +func (t *Terminal) Placetype() string { + return "terminal" +} + +func (t *Terminal) Walk(ctx context.Context, cb ElementCallbackFunc) error { + + for _, ba := range t.BoardingAreas { + + err := cb(ctx, ba) + + if err != nil { + return err + } + } + + for _, ca := range t.CommonAreas { + + err := cb(ctx, ca) + + if err != nil { + return err + } + } + + return nil +} + +func (t *Terminal) AsTree(ctx context.Context, r reader.Reader, wr io.Writer, indent int) error { + return elementTree(ctx, t, r, wr, indent) +} + +func DeriveTerminals(ctx context.Context, db *sql.DB, sfo_id int64) ([]*Terminal, error) { + + slog.Debug("Derive terminals", "parent id", sfo_id) + + terminal_ids, err := findChildIDs(ctx, db, sfo_id, "terminal") + + if err != nil { + return nil, fmt.Errorf("Failed to find any child records (terminals) for %d, %v", sfo_id, err) + } + + terminals := make([]*Terminal, 0) + + for _, t_id := range terminal_ids { + + commonareas, err := DeriveCommonAreas(ctx, db, t_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive common areas for %d, %w", t_id, err) + } + + boardingareas, err := DeriveBoardingAreas(ctx, db, t_id) + + if err != nil { + return nil, fmt.Errorf("Failed to derive boarding areas for %d, %w", t_id, err) + } + + t_body, err := loadFeatureWithDBAndChecks(ctx, db, t_id) + + if err != nil { + return nil, fmt.Errorf("Failed to load feature for %d, %w", t_id, err) + } + + if t_body == nil { + continue + } + + var sfoid string + + rsp := gjson.GetBytes(t_body, "properties.sfo:id") + + if rsp.Exists() { + + sfoid = rsp.String() + + } else { + + rsp := gjson.GetBytes(t_body, "properties.sfomuseum:terminal_id") + + if !rsp.Exists() { + return nil, fmt.Errorf("Missing properties.sfomuseum:terminal_id property for terminal %d", t_id) + } + + switch rsp.String() { + case "ITB": + sfoid = "100" // gis.BUILDING_ITB + case "T1": + sfoid = "200" // gis.BUILDING_T1 + case "T2": + sfoid = "300" // gis.BUILDING_T2 + case "T3": + sfoid = "400" // gis.BUILDING_T3 + default: + return nil, fmt.Errorf("Unrecognized terminal_id '%s' for %d", rsp.String(), t_id) + } + } + + name_rsp := gjson.GetBytes(t_body, "properties.wof:name") + inception_rsp := gjson.GetBytes(t_body, "properties.edtf:inception") + cessation_rsp := gjson.GetBytes(t_body, "properties.edtf:cessation") + + slog.Debug("Add terminal", "sfo id", sfoid, "id", t_id, "name", name_rsp.String(), "inception", inception_rsp.String(), "cessation", cessation_rsp.String()) + + terminal := &Terminal{ + WhosOnFirstId: t_id, + SFOId: sfoid, + } + + if len(commonareas) > 0 { + terminal.CommonAreas = commonareas + } + + if len(boardingareas) > 0 { + terminal.BoardingAreas = boardingareas + } + + terminals = append(terminals, terminal) + } + + return terminals, nil +} diff --git a/cmd/complex/main.go b/cmd/complex/main.go new file mode 100644 index 0000000..fa8e337 --- /dev/null +++ b/cmd/complex/main.go @@ -0,0 +1,114 @@ +package main + +import ( + "context" + "flag" + "fmt" + "io" + "log" + "os" + + "github.com/sfomuseum/go-sfomuseum-architecture/campus" + "github.com/whosonfirst/go-reader" +) + +func main() { + + var architecture_reader_uri string + var publicart_reader_uri string + + var iterator_uri string + var output_mode string + var verbose bool + var complex_id int64 + var dsn string + + flag.StringVar(&iterator_uri, "iterator-uri", "repo://", "...") + flag.StringVar(&output_mode, "output-mode", "json", "...") + flag.StringVar(&architecture_reader_uri, "architecture-reader-uri", "repo:///usr/local/data/sfomuseum-data-architecture", "...") + flag.StringVar(&publicart_reader_uri, "publicart-reader-uri", "repo:///usr/local/data/sfomuseum-data-publicart", "...") + flag.BoolVar(&verbose, "verbose", false, "...") + flag.Int64Var(&complex_id, "complex-id", 0, "If 0 then the most recent (current) complex ID will be used.") + flag.StringVar(&dsn, "dsn", ":memory:", "...") + + flag.Parse() + + ctx := context.Background() + + if verbose { + // set slog.LogLevel here + // why is this so hard? + } + + paths := flag.Args() + + db, err := campus.NewDatabaseWithIterator(ctx, dsn, iterator_uri, paths...) + + if err != nil { + log.Fatalf("Failed to create database, %v", err) + } + + if complex_id != 0 { + campus.WARN_IS_CURRENT = false + } + + c, err := campus.DeriveComplex(ctx, db, complex_id) + + if err != nil { + log.Fatalf("Failed to derive complex, %v", err) + } + + writers := make([]io.Writer, 0) + writers = append(writers, os.Stdout) + wr := io.MultiWriter(writers...) + + mk_reader := func(ctx context.Context) (reader.Reader, error) { + + architecture_r, err := reader.NewReader(ctx, architecture_reader_uri) + + if err != nil { + return nil, fmt.Errorf("Failed to create new architecture reader, %w", err) + } + + publicart_r, err := reader.NewReader(ctx, publicart_reader_uri) + + if err != nil { + return nil, fmt.Errorf("Failed to create new public art reader, %w", err) + } + + multi_r, err := reader.NewMultiReader(ctx, architecture_r, publicart_r) + + if err != nil { + return nil, fmt.Errorf("Failed to create new multi reader, %w", err) + } + + return multi_r, nil + } + + switch output_mode { + case "json": + + err := c.AsJSON(ctx, wr) + + if err != nil { + log.Fatalf("Failed to encode complex, %v", err) + } + + case "tree": + + r, err := mk_reader(ctx) + + if err != nil { + log.Fatalf("Failed to create reader, %v", err) + } + + err = c.AsTree(ctx, r, wr, 0) + + if err != nil { + log.Fatalf("Failed to render complex as tree, %v", err) + } + + default: + log.Fatalf("Invalid or unsupported output mode, %v", err) + } +} diff --git a/cmd/current-complex/main.go b/cmd/current-complex/main.go deleted file mode 100644 index d076488..0000000 --- a/cmd/current-complex/main.go +++ /dev/null @@ -1,39 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "flag" - "io" - "log" - "os" - - "github.com/sfomuseum/go-sfomuseum-architecture/campus" -) - -func main() { - - mode := flag.String("mode", "repo://", "...") - flag.Parse() - - ctx := context.Background() - - writers := make([]io.Writer, 0) - writers = append(writers, os.Stdout) - wr := io.MultiWriter(writers...) - - paths := flag.Args() - - c, err := campus.MostRecentComplexWithIterator(ctx, *mode, paths...) - - if err != nil { - log.Fatalf("Failed to derive most recent complex, %v", err) - } - - enc := json.NewEncoder(wr) - err = enc.Encode(c) - - if err != nil { - log.Fatalf("Failed to encode complex, %v", err) - } -} diff --git a/data/galleries.json b/data/galleries.json index 079018c..978817c 100644 --- a/data/galleries.json +++ b/data/galleries.json @@ -1 +1 @@ -[{"wof:id":1477855941,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855943,"sfomuseum:id":42,"map_id":"K06","wof:name":"AML Aviation Museum Gallery 06a-e","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855945,"sfomuseum:id":62,"map_id":"K04","wof:name":"AML Aviation Museum Gallery 04","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855947,"sfomuseum:id":28,"map_id":"AML 02","wof:name":"AML 02 Aviation Museum Gallery 02","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729792765,"sfomuseum:id":66,"map_id":"D13","wof:name":"2C Kids’ Spot","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792771,"sfomuseum:id":2,"map_id":"3C","wof:name":"3C North Connector","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792767,"sfomuseum:id":67,"map_id":"D14","wof:name":"2B Kids’ Spot","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792775,"sfomuseum:id":25,"map_id":"F04","wof:name":"3F Gate 87a","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792769,"sfomuseum:id":58,"map_id":"D12","wof:name":"2A Boomerang Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792777,"sfomuseum:id":3,"map_id":"3E","wof:name":"3E Gate 76","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792785,"sfomuseum:id":18,"map_id":"A01","wof:name":"4C International South Wall","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792793,"sfomuseum:id":70,"map_id":"4E","wof:name":"4E Video Arts Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792779,"sfomuseum:id":37,"map_id":"3D","wof:name":"3D Terminal 3 Hub","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792787,"sfomuseum:id":19,"map_id":"G01","wof:name":"4B International North Wall","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792795,"sfomuseum:id":20,"map_id":"","wof:name":"G-02 International North Cases","edtf:inception":"2020-~05","edtf:cessation":"2020-02-02","mz:is_current":0},{"wof:id":1729792789,"sfomuseum:id":59,"map_id":"","wof:name":"A-07 International Central Vitrine","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1746403233,"sfomuseum:id":86,"map_id":"4A","wof:name":"4A International North Cases","edtf:inception":"","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882455,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882457,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882461,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882459,"sfomuseum:id":80,"map_id":"2D","wof:name":"2D Sky Terrace Platform","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882463,"sfomuseum:id":77,"map_id":"1D","wof:name":"1D Alley Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882467,"sfomuseum:id":74,"map_id":"HM01","wof:name":"HM01 Central Photo Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882471,"sfomuseum:id":79,"map_id":"1A","wof:name":"1A Student Art South","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882473,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882477,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882481,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882479,"sfomuseum:id":2,"map_id":"F02","wof:name":"3C North Connector","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882483,"sfomuseum:id":3,"map_id":"3E","wof:name":"3E Gate 76","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882485,"sfomuseum:id":37,"map_id":"3D","wof:name":"3D Terminal 3 Hub","edtf:inception":"2021-05-25","edtf:cessation":"2021-04-18","mz:is_current":0},{"wof:id":1745882491,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882489,"sfomuseum:id":65,"map_id":"E06","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882495,"sfomuseum:id":68,"map_id":"F12","wof:name":"3K Aviation Photographs","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882497,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882501,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882499,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2021-05-25","edtf:cessation":"2021-03-15","mz:is_current":0},{"wof:id":1745882503,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882507,"sfomuseum:id":70,"map_id":"G05","wof:name":"4E Video Arts Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745885813,"sfomuseum:id":91,"map_id":"B17","wof:name":"1F Kids’ Spot/Tree Town","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887099,"sfomuseum:id":92,"map_id":"B18","wof:name":"1C Kids’ Spot","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887101,"sfomuseum:id":93,"map_id":"B15","wof:name":"HM04 Harvey Milk Temporary Wall 2","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887111,"sfomuseum:id":55,"map_id":"AML 08","wof:name":"AML 08 Aviation Museum Perimeter 08","edtf:inception":"2021-05-25","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763594987,"sfomuseum:id":84,"map_id":"HM03","wof:name":"HM03 Sterile Connector","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763594989,"sfomuseum:id":90,"map_id":"2F","wof:name":"2F Pre-Security Connector/Zuber","edtf:inception":"","edtf:cessation":"2022~","mz:is_current":0},{"wof:id":1763595185,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763588485,"sfomuseum:id":66,"map_id":"2C","wof:name":"2C Kids’ Spot","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763601211,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1763588491,"sfomuseum:id":80,"map_id":"2D","wof:name":"2D Sky Terrace Platform","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588487,"sfomuseum:id":58,"map_id":"2A","wof:name":"2A Boomerang Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763601213,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1763588495,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588489,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588499,"sfomuseum:id":74,"map_id":"HM01","wof:name":"HM01 Central Photo Wall","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588501,"sfomuseum:id":77,"map_id":"1D","wof:name":"1D Alley Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763594987,"sfomuseum:id":84,"map_id":"HM03","wof:name":"HM03 Sterile Connector","edtf:inception":"2021-10-16","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763588521,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588517,"sfomuseum:id":91,"map_id":"1F","wof:name":"1F Kids’ Spot/Tree Town","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763594987,"sfomuseum:id":84,"map_id":"HM03","wof:name":"HM03 Sterile Connector","edtf:inception":"2021-10-16","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763588503,"sfomuseum:id":79,"map_id":"1A","wof:name":"1A Student Art South","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588519,"sfomuseum:id":2,"map_id":"3C","wof:name":"3C North Connector","edtf:inception":"2021-11-09","edtf:cessation":"2022~","mz:is_current":0},{"wof:id":1763588523,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2021-11-09","edtf:cessation":"2022-05-08","mz:is_current":0},{"wof:id":1763588533,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2021-11-09","edtf:cessation":"2022-01-17","mz:is_current":0},{"wof:id":1763588505,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588543,"sfomuseum:id":18,"map_id":"4C","wof:name":"4C International South Wall","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588525,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588535,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588507,"sfomuseum:id":92,"map_id":"1C","wof:name":"1C Kids’ Spot","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588527,"sfomuseum:id":65,"map_id":"3B","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588545,"sfomuseum:id":19,"map_id":"4B","wof:name":"4B International North Wall","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588537,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588509,"sfomuseum:id":93,"map_id":"HM04","wof:name":"HM04 Harvey Milk Temporary Wall 2","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588551,"sfomuseum:id":85,"map_id":"4D","wof:name":"4D International South Cases","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763588553,"sfomuseum:id":86,"map_id":"4A","wof:name":"4A International North Cases","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1863481213,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1863481213,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1159157037,"sfomuseum:id":20,"map_id":"","wof:name":"G-02 International North Cases","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157041,"sfomuseum:id":59,"map_id":"","wof:name":"A-07 International Central Vitrine","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157047,"sfomuseum:id":18,"map_id":"4C","wof:name":"4C International South Wall","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157039,"sfomuseum:id":17,"map_id":"","wof:name":"A-02 International South Cases","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157049,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2020-05~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1159157063,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157065,"sfomuseum:id":6,"map_id":"","wof:name":"D-01 Central North Connector","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157067,"sfomuseum:id":58,"map_id":"2A","wof:name":"2A Boomerang Gallery","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157069,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157071,"sfomuseum:id":66,"map_id":"2C","wof:name":"2C Kids’ Spot","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157081,"sfomuseum:id":69,"map_id":"","wof:name":"B-06 Kids’ Spot","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157075,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157073,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157077,"sfomuseum:id":16,"map_id":"","wof:name":"B-03 Gate 36","edtf:inception":"2017~","edtf:cessation":"2019-07-22","mz:is_current":0},{"wof:id":1159157045,"sfomuseum:id":19,"map_id":"4B","wof:name":"4B International North Wall","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157051,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157053,"sfomuseum:id":2,"map_id":"3C","wof:name":"3C North Connector","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157055,"sfomuseum:id":37,"map_id":"3D","wof:name":"3D Terminal 3 Hub","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157057,"sfomuseum:id":3,"map_id":"3E","wof:name":"3E Gate 76","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157059,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157865,"sfomuseum:id":9,"map_id":"","wof:name":"D-04 Central Gallery","edtf:inception":"1983-12-15","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157869,"sfomuseum:id":12,"map_id":"","wof:name":"C-02 Gate 40 Gallery","edtf:inception":"1996-01-01","edtf:cessation":"1999-01-25","mz:is_current":0},{"wof:id":1159157867,"sfomuseum:id":10,"map_id":"","wof:name":"D-05 Central South Connector","edtf:inception":"1983-07-13","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157873,"sfomuseum:id":13,"map_id":"","wof:name":"C-03 Entrance Lobby C","edtf:inception":"1988-08-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157881,"sfomuseum:id":1,"map_id":"","wof:name":"F-01 Gate 68 Children’s Art Gallery","edtf:inception":"1988-07-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157875,"sfomuseum:id":24,"map_id":"","wof:name":"B-04 Entrance Lobby B","edtf:inception":"1997-01-29","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157883,"sfomuseum:id":34,"map_id":"","wof:name":"A-03 Entrance Lobby A","edtf:inception":"1990-09-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157877,"sfomuseum:id":15,"map_id":"","wof:name":"B-02 Gate 26","edtf:inception":"1988-07-01","edtf:cessation":"1998-10-31","mz:is_current":0},{"wof:id":1159157879,"sfomuseum:id":5,"map_id":"","wof:name":"E-02 Gate 62 Cultural Wall","edtf:inception":"1985-05-29","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157885,"sfomuseum:id":7,"map_id":"","wof:name":"D-02 Central Fountain Gallery","edtf:inception":"1991-06-01","edtf:cessation":"1997-04-10","mz:is_current":0},{"wof:id":1159157891,"sfomuseum:id":11,"map_id":"","wof:name":"C-01 Aquarium","edtf:inception":"1995-11-13","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157893,"sfomuseum:id":23,"map_id":"","wof:name":"D-06 Kids’ Spot","edtf:inception":"1997-08-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157895,"sfomuseum:id":14,"map_id":"","wof:name":"B-01 Gate 20","edtf:inception":"1995-12-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157897,"sfomuseum:id":32,"map_id":"","wof:name":"E-03 Entrance Lobby E","edtf:inception":"1998-10-16","edtf:cessation":"1999-01-29","mz:is_current":0},{"wof:id":1159157887,"sfomuseum:id":21,"map_id":"","wof:name":"D-07 International Customs Area","edtf:inception":"1992-05-01","edtf:cessation":"1998-06-02","mz:is_current":0},{"wof:id":1159157905,"sfomuseum:id":43,"map_id":"","wof:name":"D-09 Central South","edtf:inception":"2001-12-10","edtf:cessation":"2002-09-25","mz:is_current":0},{"wof:id":1159157911,"sfomuseum:id":8,"map_id":"","wof:name":"D-03 Central Concourse","edtf:inception":"1987-07-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157909,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2000-07-15","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1159157915,"sfomuseum:id":49,"map_id":"","wof:name":"D-10 Central Cases (Currency Exchange)","edtf:inception":"1987-09-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157919,"sfomuseum:id":45,"map_id":"","wof:name":"F-06 Gate 72","edtf:inception":"1987-05-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157917,"sfomuseum:id":50,"map_id":"","wof:name":"D-11 Central Wall (Duty Free)","edtf:inception":"1987-09-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157931,"sfomuseum:id":53,"map_id":"","wof:name":"B-05 Boarding Lobby","edtf:inception":"2003-09-24","edtf:cessation":"2016-10-28","mz:is_current":0},{"wof:id":1159157921,"sfomuseum:id":46,"map_id":"","wof:name":"F-07 Gate 74","edtf:inception":"1987-05-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157923,"sfomuseum:id":47,"map_id":"","wof:name":"A-06 Gate 08","edtf:inception":"1987-04-01","edtf:cessation":"1987-12-31","mz:is_current":0},{"wof:id":1159157927,"sfomuseum:id":48,"map_id":"","wof:name":"F-08 Gate 81","edtf:inception":"1987-09-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157939,"sfomuseum:id":70,"map_id":"G03","wof:name":"G-03 Video Arts Gallery","edtf:inception":"2017-09-07","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157929,"sfomuseum:id":44,"map_id":"","wof:name":"E-04 Gate 61 Cultural Wall","edtf:inception":"1988-01-01","edtf:cessation":"1998-06-30","mz:is_current":0},{"wof:id":1360392583,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1159157937,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2017-04-06","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360392585,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360392589,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360392587,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360392591,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360392593,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"1987~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516117,"sfomuseum:id":65,"map_id":"E06","wof:name":"E-06 Kid’s Spot Boarding Area E","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516121,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516133,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1981-01-01","edtf:cessation":"1983~","mz:is_current":0},{"wof:id":1360516119,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516123,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516135,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1981~","edtf:cessation":"1981~","mz:is_current":0},{"wof:id":1360516125,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516137,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516127,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516139,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516129,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1983~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516141,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516143,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516145,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516147,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"1985~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516151,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516153,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516155,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516157,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360521553,"sfomuseum:id":6,"map_id":"","wof:name":"D-01 Central North Connector","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516159,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"1991~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516161,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360521555,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516165,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516163,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360521557,"sfomuseum:id":10,"map_id":"","wof:name":"D-05 Central South Connector","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360521559,"sfomuseum:id":10,"map_id":"D05","wof:name":"D-05 Central South Connector","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516169,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516171,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"1991-06-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516173,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516175,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516177,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516179,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2002-04-07","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516181,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516183,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516187,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516189,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516191,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516193,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516201,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516195,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516197,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516205,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2010~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516199,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516207,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516209,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516215,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"1996~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516213,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516211,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516217,"sfomuseum:id":16,"map_id":"","wof:name":"B-03 Gate 36","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516219,"sfomuseum:id":16,"map_id":"B03","wof:name":"B-03 Gate 36","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516225,"sfomuseum:id":16,"map_id":"B03","wof:name":"B-03 Gate 36","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541553,"sfomuseum:id":4,"map_id":"","wof:name":"E-01 Children’s Art Gallery #2","edtf:inception":"1990-12-16","edtf:cessation":"1998-12-17","mz:is_current":0},{"wof:id":1360516223,"sfomuseum:id":16,"map_id":"","wof:name":"B-03 Gate 36","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541555,"sfomuseum:id":26,"map_id":"","wof:name":"D-08 International Garage Passageway","edtf:inception":"1997-11-01","edtf:cessation":"1998-03-01","mz:is_current":0},{"wof:id":1360516229,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541559,"sfomuseum:id":28,"map_id":"AML 02","wof:name":"AML 02 Aviation Museum Gallery 02","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541557,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML 01 AML Front Gallery","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516231,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516233,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516227,"sfomuseum:id":16,"map_id":"B03","wof:name":"B-03 Gate 36","edtf:inception":"1990~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360541561,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541563,"sfomuseum:id":30,"map_id":"","wof:name":"K-4A Aviation Museum Gallery 04a","edtf:inception":"2000-12-01","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516235,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516237,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360541569,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 AML Ceiling","edtf:inception":"2000-11-22","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541567,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 Aviation Museum Gallery 05a-d","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516241,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"1988~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516243,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516245,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541571,"sfomuseum:id":41,"map_id":"AML 04B","wof:name":"AML 04B Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2000-12-03","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541573,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 Aviation Museum Gallery 06a-e","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516251,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516253,"sfomuseum:id":67,"map_id":"D14","wof:name":"D-14 Kids’ Spot","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516247,"sfomuseum:id":69,"map_id":"","wof:name":"B-06 Kids’ Spot","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541575,"sfomuseum:id":55,"map_id":"AML 08","wof:name":"AML 08 Aviation Museum Perimeter 08","edtf:inception":"2004-02-17","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516255,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516249,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2015~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541577,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 Aviation Museum Gallery 04","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541615,"sfomuseum:id":30,"map_id":"","wof:name":"K-4A Aviation Museum Gallery 04a","edtf:inception":"2006~","edtf:cessation":"2010-09-20","mz:is_current":0},{"wof:id":1360516259,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541625,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 Aviation Museum Ceiling 07","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516261,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516263,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541629,"sfomuseum:id":38,"map_id":"K07","wof:name":"AML Aviation Museum Ceiling 07","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541627,"sfomuseum:id":38,"map_id":"K07","wof:name":"AML Aviation Museum Ceiling 07","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516265,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516267,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"1983~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516269,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"1983~","edtf:cessation":"1983~","mz:is_current":0},{"wof:id":1360516271,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516277,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516279,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516273,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1477855613,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1360541633,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 Aviation Museum Gallery 05a-d","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541631,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 Aviation Museum Ceiling 07","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541635,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 Aviation Museum Gallery 05a-d","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541639,"sfomuseum:id":31,"map_id":"K05","wof:name":"AML Aviation Museum Gallery 05a-d","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516283,"sfomuseum:id":20,"map_id":"","wof:name":"G-02 International North Cases","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516281,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516287,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516285,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541643,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541641,"sfomuseum:id":31,"map_id":"K05","wof:name":"AML Aviation Museum Gallery 05a-d","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541649,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML Aviation Museum Gallery 03","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541647,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML Aviation Museum Gallery 03","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541645,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML Aviation Museum Gallery 03","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516435,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541651,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516439,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541653,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541657,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541659,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1477855625,"sfomuseum:id":67,"map_id":"D14","wof:name":"D-14 Kids’ Spot","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855627,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1360516441,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2014~","edtf:cessation":"2016-08-19","mz:is_current":0},{"wof:id":1360516443,"sfomuseum:id":13,"map_id":"","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541661,"sfomuseum:id":27,"map_id":"AML 01","wof:name":"AML 01 Aviation Museum Gallery 01","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516445,"sfomuseum:id":13,"map_id":"","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541663,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541665,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516447,"sfomuseum:id":13,"map_id":"C03","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541667,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360516449,"sfomuseum:id":13,"map_id":"C03","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2014~","edtf:cessation":"2016-03-31","mz:is_current":0},{"wof:id":1360516451,"sfomuseum:id":5,"map_id":"","wof:name":"E-02 Gate 62 Cultural Wall","edtf:inception":"1988~","edtf:cessation":"1997-03-21","mz:is_current":0},{"wof:id":1360516453,"sfomuseum:id":24,"map_id":"","wof:name":"B-04 Entrance Lobby B","edtf:inception":"2000~","edtf:cessation":"2001-11-26","mz:is_current":0},{"wof:id":1360516457,"sfomuseum:id":23,"map_id":"","wof:name":"D-06 Kids’ Spot","edtf:inception":"2011~","edtf:cessation":"2011-12-01","mz:is_current":0},{"wof:id":1360516459,"sfomuseum:id":14,"map_id":"","wof:name":"B-01 Gate 20","edtf:inception":"2000~","edtf:cessation":"2001-06-15","mz:is_current":0},{"wof:id":1360541671,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 Aviation Museum Gallery 06a-e","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541669,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 Aviation Museum Gallery 06a-e","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541675,"sfomuseum:id":42,"map_id":"K06","wof:name":"AML Aviation Museum Gallery 06a-e","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541677,"sfomuseum:id":42,"map_id":"K06","wof:name":"AML Aviation Museum Gallery 06a-e","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541679,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 Aviation Museum Gallery 04","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516461,"sfomuseum:id":11,"map_id":"","wof:name":"C-01 Aquarium","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1477855653,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2019-07-23","edtf:cessation":"2019-10-28","mz:is_current":0},{"wof:id":1360516463,"sfomuseum:id":11,"map_id":"C01","wof:name":"C-01 Aquarium","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516465,"sfomuseum:id":11,"map_id":"C01","wof:name":"C-01 Aquarium","edtf:inception":"2011~","edtf:cessation":"2013-10-31","mz:is_current":0},{"wof:id":1360516467,"sfomuseum:id":10,"map_id":"","wof:name":"D-05 Central South Connector","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516469,"sfomuseum:id":10,"map_id":"D05","wof:name":"D-05 Central South Connector","edtf:inception":"2011~","edtf:cessation":"2012-04-30","mz:is_current":0},{"wof:id":1360541681,"sfomuseum:id":62,"map_id":"K04","wof:name":"AML Aviation Museum Gallery 04","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541683,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 Aviation Museum Gallery 04","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541685,"sfomuseum:id":62,"map_id":"K04","wof:name":"AML Aviation Museum Gallery 04","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541687,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541689,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1477855661,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2015-01-20","edtf:cessation":"","mz:is_current":0},{"wof:id":1477855663,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1360516475,"sfomuseum:id":9,"map_id":"D04","wof:name":"D-04 Central Gallery","edtf:inception":"2011~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516471,"sfomuseum:id":9,"map_id":"","wof:name":"D-04 Central Gallery","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516477,"sfomuseum:id":34,"map_id":"","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516479,"sfomuseum:id":34,"map_id":"A03","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541693,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541695,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541697,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541699,"sfomuseum:id":41,"map_id":"AML 04B","wof:name":"AML 04B Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516481,"sfomuseum:id":34,"map_id":"","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516483,"sfomuseum:id":34,"map_id":"A03","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2014~","edtf:cessation":"2015-09-22","mz:is_current":0},{"wof:id":1360516485,"sfomuseum:id":1,"map_id":"","wof:name":"F-01 Gate 68 Children’s Art Gallery","edtf:inception":"2000~","edtf:cessation":"2002-01-15","mz:is_current":0},{"wof:id":1360516487,"sfomuseum:id":48,"map_id":"","wof:name":"F-08 Gate 81","edtf:inception":"1988~","edtf:cessation":"1990-10-01","mz:is_current":0},{"wof:id":1360541701,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516489,"sfomuseum:id":46,"map_id":"","wof:name":"F-07 Gate 74","edtf:inception":"1988~","edtf:cessation":"1990-12-15","mz:is_current":0},{"wof:id":1360541703,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516493,"sfomuseum:id":45,"map_id":"","wof:name":"F-06 Gate 72","edtf:inception":"1988~","edtf:cessation":"1990-08-06","mz:is_current":0},{"wof:id":1360516495,"sfomuseum:id":50,"map_id":"","wof:name":"D-11 Central Wall (Duty Free)","edtf:inception":"1988~","edtf:cessation":"1998-02-01","mz:is_current":0},{"wof:id":1360516497,"sfomuseum:id":49,"map_id":"","wof:name":"D-10 Central Cases (Currency Exchange)","edtf:inception":"1988~","edtf:cessation":"1991-12-19","mz:is_current":0},{"wof:id":1360516499,"sfomuseum:id":8,"map_id":"","wof:name":"D-03 Central Concourse","edtf:inception":"1988~","edtf:cessation":"1996-12-30","mz:is_current":0},{"wof:id":1360516501,"sfomuseum:id":8,"map_id":"","wof:name":"D-03 Central Concourse","edtf:inception":"2011~","edtf:cessation":"2013~","mz:is_current":0},{"wof:id":1477855725,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855727,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855729,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855731,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855787,"sfomuseum:id":65,"map_id":"E06","wof:name":"E-06 Kid’s Spot Boarding Area E","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855821,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855823,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2002-04-07","edtf:cessation":"","mz:is_current":0},{"wof:id":1477855825,"sfomuseum:id":64,"map_id":"E05","wof:name":"E-05 E Plaza Meet and Greet","edtf:inception":"2019-07-23","edtf:cessation":"2019-10-17","mz:is_current":0},{"wof:id":1477855831,"sfomuseum:id":68,"map_id":"F12","wof:name":"F-12 Aviation Photographs","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855929,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855931,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855933,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855939,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 Aviation Museum Ceiling 07","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813677,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813679,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813681,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813683,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813685,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML 04B AML Special Collections Room","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813687,"sfomuseum:id":71,"map_id":"B12","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855951,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855955,"sfomuseum:id":31,"map_id":"K05","wof:name":"AML Aviation Museum Gallery 05a-d","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855957,"sfomuseum:id":70,"map_id":"G03","wof:name":"G-03 Video Arts Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813691,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813693,"sfomuseum:id":74,"map_id":"B08","wof:name":"HM01 Central Photo Wall","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1477855959,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813695,"sfomuseum:id":77,"map_id":"B11","wof:name":"1D Alley Gallery","edtf:inception":"2021~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813697,"sfomuseum:id":79,"map_id":"B14","wof:name":"1A Student Art South","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813699,"sfomuseum:id":80,"map_id":"D15","wof:name":"2D Sky Terrace Platform","edtf:inception":"2020~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1477855961,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813701,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2020~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813731,"sfomuseum:id":38,"map_id":"K07","wof:name":"AML Aviation Museum Ceiling 07","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":0},{"wof:id":1729813733,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML 08 AML Perimeter","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813735,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 AML Photography","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813737,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 AML South Interior","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813739,"sfomuseum:id":28,"map_id":"AML 02","wof:name":"AML 02 AML Back Gallery","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813741,"sfomuseum:id":27,"map_id":"AML","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813745,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 AML Book Show","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813747,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729837315,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729837317,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-04-29","mz:is_current":0},{"wof:id":1729837319,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729837321,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1477855949,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729792783,"sfomuseum:id":17,"map_id":"","wof:name":"A-02 International South Cases","edtf:inception":"2020-~05","edtf:cessation":"2020-01-13","mz:is_current":0},{"wof:id":1729792781,"sfomuseum:id":65,"map_id":"E06","wof:name":"E-06 Kid’s Spot Boarding Area E","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1745882453,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882465,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882475,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-06-21","mz:is_current":0},{"wof:id":1745882493,"sfomuseum:id":51,"map_id":"F09","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882509,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887097,"sfomuseum:id":85,"map_id":"A08","wof:name":"4D International South Cases","edtf:inception":"2021-05-29","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763594985,"sfomuseum:id":83,"map_id":"2E","wof:name":"2E Kadish Gallery","edtf:inception":"","edtf:cessation":"","mz:is_current":1},{"wof:id":1763595133,"sfomuseum:id":64,"map_id":"3A","wof:name":"E-05 E Plaza Meet and Greet","edtf:inception":"2021-10","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763595139,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763595187,"sfomuseum:id":41,"map_id":"AML 04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1796989589,"sfomuseum:id":82,"map_id":"AML 09","wof:name":"AML 09 AML New Corner Gallery","edtf:inception":"","edtf:cessation":"","mz:is_current":1},{"wof:id":1763588497,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588513,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588515,"sfomuseum:id":63,"map_id":"C04","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2021-11-09","edtf:cessation":"2022-09-07","mz:is_current":0},{"wof:id":1763588531,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1863481145,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1763588541,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588549,"sfomuseum:id":70,"map_id":"4E","wof:name":"4E Video Arts Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1863481157,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1763588539,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1863481145,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1863481157,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1863481183,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1863481235,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1863481235,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1863481171,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1863481171,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2021-05-25","edtf:cessation":"..","mz:is_current":0},{"wof:id":1175727175,"sfomuseum:id":65,"map_id":"3B","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0}] +[{"wof:id":1763601211,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1763601213,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1763594985,"sfomuseum:id":83,"map_id":"2E","wof:name":"2E Kadish Gallery","edtf:inception":"","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763594989,"sfomuseum:id":90,"map_id":"2F","wof:name":"2F Pre-Security Connector/Zuber","edtf:inception":"","edtf:cessation":"2022~","mz:is_current":0},{"wof:id":1763594987,"sfomuseum:id":84,"map_id":"HM03","wof:name":"HM03 Sterile Connector","edtf:inception":"2021-10-16","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763595139,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763595133,"sfomuseum:id":64,"map_id":"3A","wof:name":"E-05 E Plaza Meet and Greet","edtf:inception":"2021-10","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763595187,"sfomuseum:id":41,"map_id":"AML 04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":1},{"wof:id":1763595185,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1763588487,"sfomuseum:id":58,"map_id":"2A","wof:name":"2A Boomerang Gallery","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588489,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588485,"sfomuseum:id":66,"map_id":"2C","wof:name":"2C Kids’ Spot","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588515,"sfomuseum:id":63,"map_id":"C04","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2021-11-09","edtf:cessation":"2022-09-07","mz:is_current":0},{"wof:id":1763588523,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2021-11-09","edtf:cessation":"2022-05-08","mz:is_current":0},{"wof:id":1763588495,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588513,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588491,"sfomuseum:id":80,"map_id":"2D","wof:name":"2D Sky Terrace Platform","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588521,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588517,"sfomuseum:id":91,"map_id":"1F","wof:name":"1F Kids’ Spot/Tree Town","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588525,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588519,"sfomuseum:id":2,"map_id":"3C","wof:name":"3C North Connector","edtf:inception":"2021-11-09","edtf:cessation":"2022~","mz:is_current":0},{"wof:id":1763588499,"sfomuseum:id":74,"map_id":"HM01","wof:name":"HM01 Central Photo Wall","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588527,"sfomuseum:id":65,"map_id":"3B","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588533,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2021-11-09","edtf:cessation":"2022-01-17","mz:is_current":0},{"wof:id":1763588543,"sfomuseum:id":18,"map_id":"4C","wof:name":"4C International South Wall","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588535,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588497,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588541,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588539,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588537,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588531,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1763588549,"sfomuseum:id":70,"map_id":"4E","wof:name":"4E Video Arts Gallery","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588545,"sfomuseum:id":19,"map_id":"4B","wof:name":"4B International North Wall","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588551,"sfomuseum:id":85,"map_id":"4D","wof:name":"4D International South Cases","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588553,"sfomuseum:id":86,"map_id":"4A","wof:name":"4A International North Cases","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1796989589,"sfomuseum:id":82,"map_id":"AML 09","wof:name":"AML 09 AML New Corner Gallery","edtf:inception":"","edtf:cessation":"","mz:is_current":1},{"wof:id":1159157037,"sfomuseum:id":20,"map_id":"","wof:name":"G-02 International North Cases","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157039,"sfomuseum:id":17,"map_id":"","wof:name":"A-02 International South Cases","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157041,"sfomuseum:id":59,"map_id":"","wof:name":"A-07 International Central Vitrine","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157045,"sfomuseum:id":19,"map_id":"4B","wof:name":"4B International North Wall","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157051,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1763588505,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1159157047,"sfomuseum:id":18,"map_id":"4C","wof:name":"4C International South Wall","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1763588507,"sfomuseum:id":92,"map_id":"1C","wof:name":"1C Kids’ Spot","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588501,"sfomuseum:id":77,"map_id":"1D","wof:name":"1D Alley Gallery","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1763588509,"sfomuseum:id":93,"map_id":"HM04","wof:name":"HM04 Harvey Milk Temporary Wall 2","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1159157053,"sfomuseum:id":2,"map_id":"3C","wof:name":"3C North Connector","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1763588503,"sfomuseum:id":79,"map_id":"1A","wof:name":"1A Student Art South","edtf:inception":"2021-11-09","edtf:cessation":"2024-06-17","mz:is_current":0},{"wof:id":1159157055,"sfomuseum:id":37,"map_id":"3D","wof:name":"3D Terminal 3 Hub","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157057,"sfomuseum:id":3,"map_id":"3E","wof:name":"3E Gate 76","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157059,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157073,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157071,"sfomuseum:id":66,"map_id":"2C","wof:name":"2C Kids’ Spot","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157077,"sfomuseum:id":16,"map_id":"","wof:name":"B-03 Gate 36","edtf:inception":"2017~","edtf:cessation":"2019-07-22","mz:is_current":0},{"wof:id":1159157049,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2020-05~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1159157075,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157063,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157067,"sfomuseum:id":58,"map_id":"2A","wof:name":"2A Boomerang Gallery","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157081,"sfomuseum:id":69,"map_id":"","wof:name":"B-06 Kids’ Spot","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157069,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157065,"sfomuseum:id":6,"map_id":"","wof:name":"D-01 Central North Connector","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360392583,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360392585,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360392589,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360392587,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360392593,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"1987~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360392591,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1763594987,"sfomuseum:id":84,"map_id":"HM03","wof:name":"HM03 Sterile Connector","edtf:inception":"2021-10-16","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1360516117,"sfomuseum:id":65,"map_id":"E06","wof:name":"E-06 Kid’s Spot Boarding Area E","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516119,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516123,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516125,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516121,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516129,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1983~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516141,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516133,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1981-01-01","edtf:cessation":"1983~","mz:is_current":0},{"wof:id":1360516135,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1981~","edtf:cessation":"1981~","mz:is_current":0},{"wof:id":1360516137,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516127,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516139,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516147,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"1985~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516145,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516153,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516151,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516143,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516155,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516157,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516159,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"1991~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516161,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516163,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516171,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"1991-06-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360521555,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516165,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516169,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360521559,"sfomuseum:id":10,"map_id":"D05","wof:name":"D-05 Central South Connector","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516175,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516177,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516179,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2002-04-07","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360521557,"sfomuseum:id":10,"map_id":"","wof:name":"D-05 Central South Connector","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516173,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516187,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516181,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516189,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516183,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516191,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360521553,"sfomuseum:id":6,"map_id":"","wof:name":"D-01 Central North Connector","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516195,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516205,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2010~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516199,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516201,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516197,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516209,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516193,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516217,"sfomuseum:id":16,"map_id":"","wof:name":"B-03 Gate 36","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516215,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"1996~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516213,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516207,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516219,"sfomuseum:id":16,"map_id":"B03","wof:name":"B-03 Gate 36","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516211,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516231,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516233,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516235,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516237,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516241,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"1988~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516247,"sfomuseum:id":69,"map_id":"","wof:name":"B-06 Kids’ Spot","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516245,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516243,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516249,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2015~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516261,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516259,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516253,"sfomuseum:id":67,"map_id":"D14","wof:name":"D-14 Kids’ Spot","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516251,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516263,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516255,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516265,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516271,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516269,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"1983~","edtf:cessation":"1983~","mz:is_current":0},{"wof:id":1360516273,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516267,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"1983~","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516279,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516277,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516223,"sfomuseum:id":16,"map_id":"","wof:name":"B-03 Gate 36","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516225,"sfomuseum:id":16,"map_id":"B03","wof:name":"B-03 Gate 36","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541553,"sfomuseum:id":4,"map_id":"","wof:name":"E-01 Children’s Art Gallery #2","edtf:inception":"1990-12-16","edtf:cessation":"1998-12-17","mz:is_current":0},{"wof:id":1360541557,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML 01 AML Front Gallery","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541555,"sfomuseum:id":26,"map_id":"","wof:name":"D-08 International Garage Passageway","edtf:inception":"1997-11-01","edtf:cessation":"1998-03-01","mz:is_current":0},{"wof:id":1360516227,"sfomuseum:id":16,"map_id":"B03","wof:name":"B-03 Gate 36","edtf:inception":"1990~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516229,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541561,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516435,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541563,"sfomuseum:id":30,"map_id":"","wof:name":"K-4A Aviation Museum Gallery 04a","edtf:inception":"2000-12-01","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541567,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 Aviation Museum Gallery 05a-d","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1159157865,"sfomuseum:id":9,"map_id":"","wof:name":"D-04 Central Gallery","edtf:inception":"1983-12-15","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516439,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541559,"sfomuseum:id":28,"map_id":"AML 02","wof:name":"AML 02 Aviation Museum Gallery 02","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1159157867,"sfomuseum:id":10,"map_id":"","wof:name":"D-05 Central South Connector","edtf:inception":"1983-07-13","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360541569,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 AML Ceiling","edtf:inception":"2000-11-22","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541571,"sfomuseum:id":41,"map_id":"AML 04B","wof:name":"AML 04B Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2000-12-03","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1159157869,"sfomuseum:id":12,"map_id":"","wof:name":"C-02 Gate 40 Gallery","edtf:inception":"1996-01-01","edtf:cessation":"1999-01-25","mz:is_current":0},{"wof:id":1360541577,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 Aviation Museum Gallery 04","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541575,"sfomuseum:id":55,"map_id":"AML 08","wof:name":"AML 08 Aviation Museum Perimeter 08","edtf:inception":"2004-02-17","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541573,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 Aviation Museum Gallery 06a-e","edtf:inception":"2000-11-20","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516461,"sfomuseum:id":11,"map_id":"","wof:name":"C-01 Aquarium","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516469,"sfomuseum:id":10,"map_id":"D05","wof:name":"D-05 Central South Connector","edtf:inception":"2011~","edtf:cessation":"2012-04-30","mz:is_current":0},{"wof:id":1360516465,"sfomuseum:id":11,"map_id":"C01","wof:name":"C-01 Aquarium","edtf:inception":"2011~","edtf:cessation":"2013-10-31","mz:is_current":0},{"wof:id":1360516463,"sfomuseum:id":11,"map_id":"C01","wof:name":"C-01 Aquarium","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516467,"sfomuseum:id":10,"map_id":"","wof:name":"D-05 Central South Connector","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516281,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516287,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516441,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2014~","edtf:cessation":"2016-08-19","mz:is_current":0},{"wof:id":1360516445,"sfomuseum:id":13,"map_id":"","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516285,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516449,"sfomuseum:id":13,"map_id":"C03","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2014~","edtf:cessation":"2016-03-31","mz:is_current":0},{"wof:id":1360516447,"sfomuseum:id":13,"map_id":"C03","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516283,"sfomuseum:id":20,"map_id":"","wof:name":"G-02 International North Cases","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516471,"sfomuseum:id":9,"map_id":"","wof:name":"D-04 Central Gallery","edtf:inception":"1988~","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360541615,"sfomuseum:id":30,"map_id":"","wof:name":"K-4A Aviation Museum Gallery 04a","edtf:inception":"2006~","edtf:cessation":"2010-09-20","mz:is_current":0},{"wof:id":1360516451,"sfomuseum:id":5,"map_id":"","wof:name":"E-02 Gate 62 Cultural Wall","edtf:inception":"1988~","edtf:cessation":"1997-03-21","mz:is_current":0},{"wof:id":1360516453,"sfomuseum:id":24,"map_id":"","wof:name":"B-04 Entrance Lobby B","edtf:inception":"2000~","edtf:cessation":"2001-11-26","mz:is_current":0},{"wof:id":1360516475,"sfomuseum:id":9,"map_id":"D04","wof:name":"D-04 Central Gallery","edtf:inception":"2011~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516457,"sfomuseum:id":23,"map_id":"","wof:name":"D-06 Kids’ Spot","edtf:inception":"2011~","edtf:cessation":"2011-12-01","mz:is_current":0},{"wof:id":1360516459,"sfomuseum:id":14,"map_id":"","wof:name":"B-01 Gate 20","edtf:inception":"2000~","edtf:cessation":"2001-06-15","mz:is_current":0},{"wof:id":1360516477,"sfomuseum:id":34,"map_id":"","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360516479,"sfomuseum:id":34,"map_id":"A03","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1159157873,"sfomuseum:id":13,"map_id":"","wof:name":"C-03 Entrance Lobby C","edtf:inception":"1988-08-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157875,"sfomuseum:id":24,"map_id":"","wof:name":"B-04 Entrance Lobby B","edtf:inception":"1997-01-29","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516443,"sfomuseum:id":13,"map_id":"","wof:name":"C-03 Entrance Lobby C","edtf:inception":"2000~","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541631,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 Aviation Museum Ceiling 07","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541633,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 Aviation Museum Gallery 05a-d","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1159157877,"sfomuseum:id":15,"map_id":"","wof:name":"B-02 Gate 26","edtf:inception":"1988-07-01","edtf:cessation":"1998-10-31","mz:is_current":0},{"wof:id":1360541635,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 Aviation Museum Gallery 05a-d","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360516481,"sfomuseum:id":34,"map_id":"","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1159157881,"sfomuseum:id":1,"map_id":"","wof:name":"F-01 Gate 68 Children’s Art Gallery","edtf:inception":"1988-07-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1159157883,"sfomuseum:id":34,"map_id":"","wof:name":"A-03 Entrance Lobby A","edtf:inception":"1990-09-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360541639,"sfomuseum:id":31,"map_id":"K05","wof:name":"AML Aviation Museum Gallery 05a-d","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516483,"sfomuseum:id":34,"map_id":"A03","wof:name":"A-03 Entrance Lobby A","edtf:inception":"2014~","edtf:cessation":"2015-09-22","mz:is_current":0},{"wof:id":1159157885,"sfomuseum:id":7,"map_id":"","wof:name":"D-02 Central Fountain Gallery","edtf:inception":"1991-06-01","edtf:cessation":"1997-04-10","mz:is_current":0},{"wof:id":1159157887,"sfomuseum:id":21,"map_id":"","wof:name":"D-07 International Customs Area","edtf:inception":"1992-05-01","edtf:cessation":"1998-06-02","mz:is_current":0},{"wof:id":1159157891,"sfomuseum:id":11,"map_id":"","wof:name":"C-01 Aquarium","edtf:inception":"1995-11-13","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360541625,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 Aviation Museum Ceiling 07","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541627,"sfomuseum:id":38,"map_id":"K07","wof:name":"AML Aviation Museum Ceiling 07","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1159157879,"sfomuseum:id":5,"map_id":"","wof:name":"E-02 Gate 62 Cultural Wall","edtf:inception":"1985-05-29","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157893,"sfomuseum:id":23,"map_id":"","wof:name":"D-06 Kids’ Spot","edtf:inception":"1997-08-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516493,"sfomuseum:id":45,"map_id":"","wof:name":"F-06 Gate 72","edtf:inception":"1988~","edtf:cessation":"1990-08-06","mz:is_current":0},{"wof:id":1159157895,"sfomuseum:id":14,"map_id":"","wof:name":"B-01 Gate 20","edtf:inception":"1995-12-01","edtf:cessation":"2000~","mz:is_current":0},{"wof:id":1360516497,"sfomuseum:id":49,"map_id":"","wof:name":"D-10 Central Cases (Currency Exchange)","edtf:inception":"1988~","edtf:cessation":"1991-12-19","mz:is_current":0},{"wof:id":1159157897,"sfomuseum:id":32,"map_id":"","wof:name":"E-03 Entrance Lobby E","edtf:inception":"1998-10-16","edtf:cessation":"1999-01-29","mz:is_current":0},{"wof:id":1360541629,"sfomuseum:id":38,"map_id":"K07","wof:name":"AML Aviation Museum Ceiling 07","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360516499,"sfomuseum:id":8,"map_id":"","wof:name":"D-03 Central Concourse","edtf:inception":"1988~","edtf:cessation":"1996-12-30","mz:is_current":0},{"wof:id":1360516495,"sfomuseum:id":50,"map_id":"","wof:name":"D-11 Central Wall (Duty Free)","edtf:inception":"1988~","edtf:cessation":"1998-02-01","mz:is_current":0},{"wof:id":1159157905,"sfomuseum:id":43,"map_id":"","wof:name":"D-09 Central South","edtf:inception":"2001-12-10","edtf:cessation":"2002-09-25","mz:is_current":0},{"wof:id":1360516501,"sfomuseum:id":8,"map_id":"","wof:name":"D-03 Central Concourse","edtf:inception":"2011~","edtf:cessation":"2013~","mz:is_current":0},{"wof:id":1360516485,"sfomuseum:id":1,"map_id":"","wof:name":"F-01 Gate 68 Children’s Art Gallery","edtf:inception":"2000~","edtf:cessation":"2002-01-15","mz:is_current":0},{"wof:id":1159157911,"sfomuseum:id":8,"map_id":"","wof:name":"D-03 Central Concourse","edtf:inception":"1987-07-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157919,"sfomuseum:id":45,"map_id":"","wof:name":"F-06 Gate 72","edtf:inception":"1987-05-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157917,"sfomuseum:id":50,"map_id":"","wof:name":"D-11 Central Wall (Duty Free)","edtf:inception":"1987-09-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157915,"sfomuseum:id":49,"map_id":"","wof:name":"D-10 Central Cases (Currency Exchange)","edtf:inception":"1987-09-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1159157909,"sfomuseum:id":39,"map_id":"","wof:name":"A-05 Terminal One Lower Gallery","edtf:inception":"2000-07-15","edtf:cessation":"2006~","mz:is_current":0},{"wof:id":1360541671,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 Aviation Museum Gallery 06a-e","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541675,"sfomuseum:id":42,"map_id":"K06","wof:name":"AML Aviation Museum Gallery 06a-e","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1159157921,"sfomuseum:id":46,"map_id":"","wof:name":"F-07 Gate 74","edtf:inception":"1987-05-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360516487,"sfomuseum:id":48,"map_id":"","wof:name":"F-08 Gate 81","edtf:inception":"1988~","edtf:cessation":"1990-10-01","mz:is_current":0},{"wof:id":1360541677,"sfomuseum:id":42,"map_id":"K06","wof:name":"AML Aviation Museum Gallery 06a-e","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541641,"sfomuseum:id":31,"map_id":"K05","wof:name":"AML Aviation Museum Gallery 05a-d","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541679,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 Aviation Museum Gallery 04","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541643,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360516489,"sfomuseum:id":46,"map_id":"","wof:name":"F-07 Gate 74","edtf:inception":"1988~","edtf:cessation":"1990-12-15","mz:is_current":0},{"wof:id":1360541661,"sfomuseum:id":27,"map_id":"AML 01","wof:name":"AML 01 Aviation Museum Gallery 01","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541681,"sfomuseum:id":62,"map_id":"K04","wof:name":"AML Aviation Museum Gallery 04","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541683,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 Aviation Museum Gallery 04","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541663,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1159157927,"sfomuseum:id":48,"map_id":"","wof:name":"F-08 Gate 81","edtf:inception":"1987-09-01","edtf:cessation":"1988~","mz:is_current":0},{"wof:id":1360541645,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML Aviation Museum Gallery 03","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1159157923,"sfomuseum:id":47,"map_id":"","wof:name":"A-06 Gate 08","edtf:inception":"1987-04-01","edtf:cessation":"1987-12-31","mz:is_current":0},{"wof:id":1360541685,"sfomuseum:id":62,"map_id":"K04","wof:name":"AML Aviation Museum Gallery 04","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541665,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1159157929,"sfomuseum:id":44,"map_id":"","wof:name":"E-04 Gate 61 Cultural Wall","edtf:inception":"1988-01-01","edtf:cessation":"1998-06-30","mz:is_current":0},{"wof:id":1360541647,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML Aviation Museum Gallery 03","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541687,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541669,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 Aviation Museum Gallery 06a-e","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541693,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541649,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML Aviation Museum Gallery 03","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541667,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157931,"sfomuseum:id":53,"map_id":"","wof:name":"B-05 Boarding Lobby","edtf:inception":"2003-09-24","edtf:cessation":"2016-10-28","mz:is_current":0},{"wof:id":1360541689,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541697,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541695,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157937,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2017-04-06","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1159157939,"sfomuseum:id":70,"map_id":"G03","wof:name":"G-03 Video Arts Gallery","edtf:inception":"2017-09-07","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541699,"sfomuseum:id":41,"map_id":"AML 04B","wof:name":"AML 04B Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1360541651,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2006~","edtf:cessation":"2011~","mz:is_current":0},{"wof:id":1360541703,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541657,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541701,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML Aviation Museum Gallery 04b Special Collections Room","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1360541659,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1360541653,"sfomuseum:id":28,"map_id":"K02","wof:name":"AML Aviation Museum Gallery 02","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1914564821,"sfomuseum:id":25,"map_id":"3F","wof:name":"3F Gate 87a","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564797,"sfomuseum:id":85,"map_id":"4D","wof:name":"4D International South Cases","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564777,"sfomuseum:id":70,"map_id":"4E","wof:name":"4E Video Arts Gallery","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564785,"sfomuseum:id":19,"map_id":"4B","wof:name":"4B International North Wall","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564793,"sfomuseum:id":86,"map_id":"4A","wof:name":"4A International North Cases","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564839,"sfomuseum:id":65,"map_id":"3B","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564901,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564895,"sfomuseum:id":64,"map_id":"3A","wof:name":"3A E Plaza Meet and Greet","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564959,"sfomuseum:id":93,"map_id":"HM04","wof:name":"HM04 Harvey Milk Temporary Wall 2","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564947,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564923,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565045,"sfomuseum:id":91,"map_id":"1F","wof:name":"1F Kids’ Spot/Tree Town","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565083,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564953,"sfomuseum:id":92,"map_id":"1C","wof:name":"1C Kids’ Spot","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565087,"sfomuseum:id":58,"map_id":"2A","wof:name":"2A Boomerang Gallery","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564945,"sfomuseum:id":79,"map_id":"1A","wof:name":"1A Student Art South","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565069,"sfomuseum:id":74,"map_id":"HM01","wof:name":"HM01 Central Photo Wall","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565247,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564941,"sfomuseum:id":77,"map_id":"1D","wof:name":"1D Alley Gallery","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565097,"sfomuseum:id":83,"map_id":"2E","wof:name":"2E Kadish Gallery","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565243,"sfomuseum:id":80,"map_id":"2D","wof:name":"2D Sky Terrace Platform","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914565091,"sfomuseum:id":66,"map_id":"2C","wof:name":"2C Kids’ Spot","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1914564783,"sfomuseum:id":18,"map_id":"4C","wof:name":"4C International South Wall","edtf:inception":"2024-06-17","edtf:cessation":"..","mz:is_current":1},{"wof:id":1863481145,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1863481157,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1863481183,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2021-11-09","edtf:cessation":"..","mz:is_current":0},{"wof:id":1863481213,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2011~","edtf:cessation":"2014~","mz:is_current":0},{"wof:id":1863481235,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2014~","edtf:cessation":"2017~","mz:is_current":0},{"wof:id":1863481171,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1729813691,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813693,"sfomuseum:id":74,"map_id":"B08","wof:name":"HM01 Central Photo Wall","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813695,"sfomuseum:id":77,"map_id":"B11","wof:name":"1D Alley Gallery","edtf:inception":"2021~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813697,"sfomuseum:id":79,"map_id":"B14","wof:name":"1A Student Art South","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813699,"sfomuseum:id":80,"map_id":"D15","wof:name":"2D Sky Terrace Platform","edtf:inception":"2020~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813681,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813683,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813701,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2020~","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813677,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813679,"sfomuseum:id":68,"map_id":"3K","wof:name":"3K Aviation Photographs","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813741,"sfomuseum:id":27,"map_id":"AML","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813685,"sfomuseum:id":41,"map_id":"K04B","wof:name":"AML 04B AML Special Collections Room","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813747,"sfomuseum:id":29,"map_id":"K03","wof:name":"AML 03 AML North Interior","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813745,"sfomuseum:id":31,"map_id":"AML 05","wof:name":"AML 05 AML Book Show","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813733,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML 08 AML Perimeter","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729813731,"sfomuseum:id":38,"map_id":"K07","wof:name":"AML Aviation Museum Ceiling 07","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":0},{"wof:id":1729813687,"sfomuseum:id":71,"map_id":"B12","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1729813735,"sfomuseum:id":42,"map_id":"AML 06","wof:name":"AML 06 AML Photography","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813737,"sfomuseum:id":62,"map_id":"AML 04","wof:name":"AML 04 AML South Interior","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729813739,"sfomuseum:id":28,"map_id":"AML 02","wof:name":"AML 02 AML Back Gallery","edtf:inception":"2020-~05","edtf:cessation":"..","mz:is_current":1},{"wof:id":1729792765,"sfomuseum:id":66,"map_id":"D13","wof:name":"2C Kids’ Spot","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792769,"sfomuseum:id":58,"map_id":"D12","wof:name":"2A Boomerang Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792767,"sfomuseum:id":67,"map_id":"D14","wof:name":"2B Kids’ Spot","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792777,"sfomuseum:id":3,"map_id":"3E","wof:name":"3E Gate 76","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792771,"sfomuseum:id":2,"map_id":"3C","wof:name":"3C North Connector","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792775,"sfomuseum:id":25,"map_id":"F04","wof:name":"3F Gate 87a","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792793,"sfomuseum:id":70,"map_id":"4E","wof:name":"4E Video Arts Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792779,"sfomuseum:id":37,"map_id":"3D","wof:name":"3D Terminal 3 Hub","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792783,"sfomuseum:id":17,"map_id":"","wof:name":"A-02 International South Cases","edtf:inception":"2020-~05","edtf:cessation":"2020-01-13","mz:is_current":0},{"wof:id":1729792795,"sfomuseum:id":20,"map_id":"","wof:name":"G-02 International North Cases","edtf:inception":"2020-~05","edtf:cessation":"2020-02-02","mz:is_current":0},{"wof:id":1729792785,"sfomuseum:id":18,"map_id":"A01","wof:name":"4C International South Wall","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729837321,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792787,"sfomuseum:id":19,"map_id":"G01","wof:name":"4B International North Wall","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792789,"sfomuseum:id":59,"map_id":"","wof:name":"A-07 International Central Vitrine","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729792781,"sfomuseum:id":65,"map_id":"E06","wof:name":"E-06 Kid’s Spot Boarding Area E","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729837317,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-04-29","mz:is_current":0},{"wof:id":1729837319,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1729837315,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2020-~05","edtf:cessation":"2021-05-25","mz:is_current":0},{"wof:id":1477855613,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855627,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855625,"sfomuseum:id":67,"map_id":"D14","wof:name":"D-14 Kids’ Spot","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855653,"sfomuseum:id":6,"map_id":"D01","wof:name":"D-01 Central North Connector","edtf:inception":"2019-07-23","edtf:cessation":"2019-10-28","mz:is_current":0},{"wof:id":1477855663,"sfomuseum:id":40,"map_id":"C05","wof:name":"C-05 Terminal One Lower Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855661,"sfomuseum:id":63,"map_id":"C04","wof:name":"C-04 Entrance Lobby C Meet and Greet","edtf:inception":"2015-01-20","edtf:cessation":"","mz:is_current":0},{"wof:id":1477855725,"sfomuseum:id":2,"map_id":"F02","wof:name":"F-02 North Connector","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855729,"sfomuseum:id":3,"map_id":"F03","wof:name":"F-03 Gate 76","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855731,"sfomuseum:id":37,"map_id":"F05","wof:name":"F-05 Terminal 3 Hub","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855727,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855787,"sfomuseum:id":65,"map_id":"E06","wof:name":"E-06 Kid’s Spot Boarding Area E","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855821,"sfomuseum:id":60,"map_id":"F11","wof:name":"F-11 Photographs","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855823,"sfomuseum:id":51,"map_id":"F09","wof:name":"F-09 Terminal 3 Connector Arrival Level","edtf:inception":"2002-04-07","edtf:cessation":"","mz:is_current":0},{"wof:id":1477855825,"sfomuseum:id":64,"map_id":"E05","wof:name":"E-05 E Plaza Meet and Greet","edtf:inception":"2019-07-23","edtf:cessation":"2019-10-17","mz:is_current":0},{"wof:id":1477855831,"sfomuseum:id":68,"map_id":"F12","wof:name":"F-12 Aviation Photographs","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855929,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855931,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855933,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855939,"sfomuseum:id":38,"map_id":"AML 07","wof:name":"AML 07 Aviation Museum Ceiling 07","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855943,"sfomuseum:id":42,"map_id":"K06","wof:name":"AML Aviation Museum Gallery 06a-e","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855947,"sfomuseum:id":28,"map_id":"AML 02","wof:name":"AML 02 Aviation Museum Gallery 02","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855949,"sfomuseum:id":27,"map_id":"K01","wof:name":"AML Aviation Museum Gallery 01","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855945,"sfomuseum:id":62,"map_id":"K04","wof:name":"AML Aviation Museum Gallery 04","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855955,"sfomuseum:id":31,"map_id":"K05","wof:name":"AML Aviation Museum Gallery 05a-d","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855959,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855961,"sfomuseum:id":20,"map_id":"G02","wof:name":"G-02 International North Cases","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855951,"sfomuseum:id":29,"map_id":"","wof:name":"K-03 Aviation Museum Gallery 03","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855957,"sfomuseum:id":70,"map_id":"G03","wof:name":"G-03 Video Arts Gallery","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1477855941,"sfomuseum:id":55,"map_id":"K08","wof:name":"AML Aviation Museum Perimeter 08","edtf:inception":"2019-07-23","edtf:cessation":"2020-~05","mz:is_current":0},{"wof:id":1175727175,"sfomuseum:id":65,"map_id":"3B","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2017~","edtf:cessation":"2019-07-23","mz:is_current":0},{"wof:id":1746403233,"sfomuseum:id":86,"map_id":"4A","wof:name":"4A International North Cases","edtf:inception":"","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882463,"sfomuseum:id":77,"map_id":"1D","wof:name":"1D Alley Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882471,"sfomuseum:id":79,"map_id":"1A","wof:name":"1A Student Art South","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882467,"sfomuseum:id":74,"map_id":"HM01","wof:name":"HM01 Central Photo Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882473,"sfomuseum:id":71,"map_id":"1E","wof:name":"1E Mid-Pier Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882483,"sfomuseum:id":3,"map_id":"3E","wof:name":"3E Gate 76","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882465,"sfomuseum:id":72,"map_id":"HM02","wof:name":"HM02 Harvey Milk Temporary Wall Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882485,"sfomuseum:id":37,"map_id":"3D","wof:name":"3D Terminal 3 Hub","edtf:inception":"2021-05-25","edtf:cessation":"2021-04-18","mz:is_current":0},{"wof:id":1745882477,"sfomuseum:id":63,"map_id":"1K","wof:name":"1K Entrance Lobby C Meet and Greet","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882489,"sfomuseum:id":65,"map_id":"E06","wof:name":"3B Kid’s Spot Boarding Area E","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882481,"sfomuseum:id":25,"map_id":"F04","wof:name":"F-04 Gate 87a","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882455,"sfomuseum:id":67,"map_id":"2B","wof:name":"2B Kids’ Spot","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882453,"sfomuseum:id":66,"map_id":"D13","wof:name":"D-13 Kids’ Spot","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882491,"sfomuseum:id":51,"map_id":"3L","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882479,"sfomuseum:id":2,"map_id":"F02","wof:name":"3C North Connector","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882459,"sfomuseum:id":80,"map_id":"2D","wof:name":"2D Sky Terrace Platform","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882497,"sfomuseum:id":60,"map_id":"3J","wof:name":"3J Photographs","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882495,"sfomuseum:id":68,"map_id":"F12","wof:name":"3K Aviation Photographs","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882499,"sfomuseum:id":59,"map_id":"A07","wof:name":"A-07 International Central Case","edtf:inception":"2021-05-25","edtf:cessation":"2021-03-15","mz:is_current":0},{"wof:id":1745882501,"sfomuseum:id":18,"map_id":"A01","wof:name":"A-01 International South Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882457,"sfomuseum:id":58,"map_id":"D12","wof:name":"D-12 Wall Case","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882503,"sfomuseum:id":19,"map_id":"G01","wof:name":"G-01 International North Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882493,"sfomuseum:id":51,"map_id":"F09","wof:name":"3L Terminal 3 Connector Arrival Level","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745885813,"sfomuseum:id":91,"map_id":"B17","wof:name":"1F Kids’ Spot/Tree Town","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887097,"sfomuseum:id":85,"map_id":"A08","wof:name":"4D International South Cases","edtf:inception":"2021-05-29","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887101,"sfomuseum:id":93,"map_id":"B15","wof:name":"HM04 Harvey Milk Temporary Wall 2","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887099,"sfomuseum:id":92,"map_id":"B18","wof:name":"1C Kids’ Spot","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882507,"sfomuseum:id":70,"map_id":"G05","wof:name":"4E Video Arts Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745887111,"sfomuseum:id":55,"map_id":"AML 08","wof:name":"AML 08 Aviation Museum Perimeter 08","edtf:inception":"2021-05-25","edtf:cessation":"..","mz:is_current":0},{"wof:id":1745882475,"sfomuseum:id":40,"map_id":"1J","wof:name":"1J Terminal One Lower Gallery","edtf:inception":"2021-05-25","edtf:cessation":"2021-06-21","mz:is_current":0},{"wof:id":1745882461,"sfomuseum:id":81,"map_id":"2D","wof:name":"2D Sky Terrace Wall","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0},{"wof:id":1745882509,"sfomuseum:id":17,"map_id":"A02","wof:name":"A-02 International South Cases","edtf:inception":"2021-05-25","edtf:cessation":"2021-11-09","mz:is_current":0}] diff --git a/data/gates.json b/data/gates.json index 1b99a39..d873571 100644 --- a/data/gates.json +++ b/data/gates.json @@ -1 +1 @@ -[{"wof:id":1376996231,"wof:name":"B28","mz:is_current":0},{"wof:id":1745882093,"wof:name":"D2","mz:is_current":0},{"wof:id":1745882095,"wof:name":"D3","mz:is_current":0},{"wof:id":1745882097,"wof:name":"D4","mz:is_current":0},{"wof:id":1745882101,"wof:name":"D6","mz:is_current":0},{"wof:id":1745882099,"wof:name":"D5","mz:is_current":0},{"wof:id":1745882105,"wof:name":"D9","mz:is_current":0},{"wof:id":1745882107,"wof:name":"D8","mz:is_current":0},{"wof:id":1745882111,"wof:name":"D11","mz:is_current":0},{"wof:id":1745882121,"wof:name":"D16","mz:is_current":0},{"wof:id":1745882115,"wof:name":"D12","mz:is_current":0},{"wof:id":1745882123,"wof:name":"D17","mz:is_current":0},{"wof:id":1745882117,"wof:name":"D14","mz:is_current":0},{"wof:id":1745882143,"wof:name":"B7","mz:is_current":0},{"wof:id":1745882119,"wof:name":"D15","mz:is_current":0},{"wof:id":1745882147,"wof:name":"B8","mz:is_current":0},{"wof:id":1745882151,"wof:name":"B12","mz:is_current":0},{"wof:id":1745882165,"wof:name":"B25","mz:is_current":0},{"wof:id":1745882153,"wof:name":"B13","mz:is_current":0},{"wof:id":1745882155,"wof:name":"B14","mz:is_current":0},{"wof:id":1745882171,"wof:name":"B26","mz:is_current":0},{"wof:id":1745882167,"wof:name":"B11","mz:is_current":0},{"wof:id":1745882173,"wof:name":"B22","mz:is_current":0},{"wof:id":1745882169,"wof:name":"B24","mz:is_current":0},{"wof:id":1745882157,"wof:name":"B17","mz:is_current":0},{"wof:id":1745882177,"wof:name":"B19","mz:is_current":0},{"wof:id":1745882183,"wof:name":"B4","mz:is_current":0},{"wof:id":1745882159,"wof:name":"B18","mz:is_current":0},{"wof:id":1745882193,"wof:name":"B27","mz:is_current":0},{"wof:id":1745882179,"wof:name":"B20","mz:is_current":0},{"wof:id":1745882185,"wof:name":"B23","mz:is_current":0},{"wof:id":1745882197,"wof:name":"C2","mz:is_current":0},{"wof:id":1745882201,"wof:name":"C4","mz:is_current":0},{"wof:id":1745882189,"wof:name":"B3","mz:is_current":0},{"wof:id":1745882213,"wof:name":"C9","mz:is_current":0},{"wof:id":1745882203,"wof:name":"C3","mz:is_current":0},{"wof:id":1745882215,"wof:name":"C10","mz:is_current":0},{"wof:id":1745882205,"wof:name":"C5","mz:is_current":0},{"wof:id":1745882219,"wof:name":"C11","mz:is_current":0},{"wof:id":1745882207,"wof:name":"C6","mz:is_current":0},{"wof:id":1745882209,"wof:name":"C7","mz:is_current":0},{"wof:id":1745882243,"wof:name":"E2","mz:is_current":0},{"wof:id":1745882239,"wof:name":"F5","mz:is_current":0},{"wof:id":1745882245,"wof:name":"E3","mz:is_current":0},{"wof:id":1745882251,"wof:name":"F3","mz:is_current":0},{"wof:id":1745882247,"wof:name":"F1","mz:is_current":0},{"wof:id":1745882255,"wof:name":"F4","mz:is_current":0},{"wof:id":1745882263,"wof:name":"F8","mz:is_current":0},{"wof:id":1745882257,"wof:name":"F3A","mz:is_current":0},{"wof:id":1745882265,"wof:name":"F7","mz:is_current":0},{"wof:id":1745882259,"wof:name":"F5","mz:is_current":0},{"wof:id":1745882267,"wof:name":"F9","mz:is_current":0},{"wof:id":1745882275,"wof:name":"F13","mz:is_current":0},{"wof:id":1745882279,"wof:name":"F14","mz:is_current":0},{"wof:id":1745882269,"wof:name":"F10","mz:is_current":0},{"wof:id":1745882283,"wof:name":"F16","mz:is_current":0},{"wof:id":1745882285,"wof:name":"F17","mz:is_current":0},{"wof:id":1745882291,"wof:name":"F19","mz:is_current":0},{"wof:id":1745882293,"wof:name":"F20","mz:is_current":0},{"wof:id":1745882287,"wof:name":"F18","mz:is_current":0},{"wof:id":1745882295,"wof:name":"F21","mz:is_current":0},{"wof:id":1745882301,"wof:name":"E4","mz:is_current":0},{"wof:id":1745882303,"wof:name":"E5","mz:is_current":0},{"wof:id":1745882315,"wof:name":"E10","mz:is_current":0},{"wof:id":1745882309,"wof:name":"E7","mz:is_current":0},{"wof:id":1745882317,"wof:name":"E11","mz:is_current":0},{"wof:id":1745882319,"wof:name":"E12","mz:is_current":0},{"wof:id":1745882345,"wof:name":"A5","mz:is_current":0},{"wof:id":1745882339,"wof:name":"A2","mz:is_current":0},{"wof:id":1745882347,"wof:name":"A7","mz:is_current":0},{"wof:id":1745882351,"wof:name":"A10","mz:is_current":0},{"wof:id":1745882349,"wof:name":"A6","mz:is_current":0},{"wof:id":1745882353,"wof:name":"A9","mz:is_current":0},{"wof:id":1745882355,"wof:name":"A8","mz:is_current":0},{"wof:id":1745882363,"wof:name":"A3","mz:is_current":0},{"wof:id":1745882357,"wof:name":"A12","mz:is_current":0},{"wof:id":1745882365,"wof:name":"A1","mz:is_current":0},{"wof:id":1745882359,"wof:name":"A11","mz:is_current":0},{"wof:id":1745882367,"wof:name":"A1","mz:is_current":0},{"wof:id":1745882373,"wof:name":"A4","mz:is_current":0},{"wof:id":1745882369,"wof:name":"A2","mz:is_current":0},{"wof:id":1745882375,"wof:name":"A5","mz:is_current":0},{"wof:id":1745882385,"wof:name":"A9","mz:is_current":0},{"wof:id":1745882391,"wof:name":"A11","mz:is_current":0},{"wof:id":1745882387,"wof:name":"A10","mz:is_current":0},{"wof:id":1745882393,"wof:name":"A13","mz:is_current":0},{"wof:id":1745882389,"wof:name":"A12","mz:is_current":0},{"wof:id":1745882395,"wof:name":"A14","mz:is_current":0},{"wof:id":1745882399,"wof:name":"A15","mz:is_current":0},{"wof:id":1745882411,"wof:name":"G4","mz:is_current":0},{"wof:id":1745882407,"wof:name":"G2","mz:is_current":0},{"wof:id":1745882413,"wof:name":"G5","mz:is_current":0},{"wof:id":1745882409,"wof:name":"G3","mz:is_current":0},{"wof:id":1745882435,"wof:name":"G14","mz:is_current":0},{"wof:id":1763588135,"wof:name":"D4","mz:is_current":1},{"wof:id":1763588137,"wof:name":"D5","mz:is_current":1},{"wof:id":1763588139,"wof:name":"D6","mz:is_current":1},{"wof:id":1745882421,"wof:name":"G10","mz:is_current":0},{"wof:id":1763588127,"wof:name":"D2","mz:is_current":1},{"wof:id":1745882423,"wof:name":"G8","mz:is_current":0},{"wof:id":1763588129,"wof:name":"D1","mz:is_current":1},{"wof:id":1745882425,"wof:name":"G11","mz:is_current":0},{"wof:id":1745882427,"wof:name":"G9","mz:is_current":0},{"wof:id":1745882429,"wof:name":"G12","mz:is_current":0},{"wof:id":1746415337,"wof:name":"C10R","mz:is_current":1},{"wof:id":1763588143,"wof:name":"D9","mz:is_current":1},{"wof:id":1746415345,"wof:name":"G12V","mz:is_current":1},{"wof:id":1746415353,"wof:name":"A1V","mz:is_current":1},{"wof:id":1746415361,"wof:name":"A13V","mz:is_current":1},{"wof:id":1746415347,"wof:name":"F15M","mz:is_current":1},{"wof:id":1763588145,"wof:name":"D8","mz:is_current":1},{"wof:id":1746415355,"wof:name":"E13T","mz:is_current":1},{"wof:id":1746415349,"wof:name":"C4U","mz:is_current":1},{"wof:id":1746415363,"wof:name":"E10V","mz:is_current":1},{"wof:id":1763588147,"wof:name":"D11","mz:is_current":1},{"wof:id":1746415357,"wof:name":"G13R","mz:is_current":1},{"wof:id":1746415367,"wof:name":"G11R","mz:is_current":1},{"wof:id":1746415371,"wof:name":"A7T","mz:is_current":1},{"wof:id":1746415383,"wof:name":"G104","mz:is_current":1},{"wof:id":1763588149,"wof:name":"D10","mz:is_current":1},{"wof:id":1746415369,"wof:name":"B23V","mz:is_current":1},{"wof:id":1746415373,"wof:name":"B27V","mz:is_current":1},{"wof:id":1746415385,"wof:name":"G13S","mz:is_current":1},{"wof:id":1746415393,"wof:name":"G14T","mz:is_current":1},{"wof:id":1746415403,"wof:name":"B20S","mz:is_current":1},{"wof:id":1746415375,"wof:name":"F15L","mz:is_current":1},{"wof:id":1746415387,"wof:name":"G103","mz:is_current":1},{"wof:id":1746415379,"wof:name":"F15N","mz:is_current":1},{"wof:id":1746415397,"wof:name":"G12T","mz:is_current":1},{"wof:id":1746415405,"wof:name":"F15K","mz:is_current":1},{"wof:id":1746415389,"wof:name":"A6S","mz:is_current":1},{"wof:id":1746415409,"wof:name":"E11V","mz:is_current":1},{"wof:id":1746415411,"wof:name":"C4R","mz:is_current":1},{"wof:id":1746415419,"wof:name":"E10U","mz:is_current":1},{"wof:id":1746415421,"wof:name":"E3K","mz:is_current":1},{"wof:id":1763588155,"wof:name":"D14","mz:is_current":1},{"wof:id":1746415423,"wof:name":"A4T","mz:is_current":1},{"wof:id":1763588157,"wof:name":"D16","mz:is_current":1},{"wof:id":1763588163,"wof:name":"D18","mz:is_current":1},{"wof:id":1746415425,"wof:name":"A14T","mz:is_current":1},{"wof:id":1763588159,"wof:name":"D15","mz:is_current":1},{"wof:id":1763588185,"wof:name":"B12","mz:is_current":1},{"wof:id":1763588191,"wof:name":"B13","mz:is_current":1},{"wof:id":1763588195,"wof:name":"B17","mz:is_current":1},{"wof:id":1763588189,"wof:name":"B9","mz:is_current":1},{"wof:id":1763588197,"wof:name":"B18","mz:is_current":1},{"wof:id":1763588179,"wof:name":"B6","mz:is_current":1},{"wof:id":1763588203,"wof:name":"B11","mz:is_current":1},{"wof:id":1763588213,"wof:name":"B22","mz:is_current":1},{"wof:id":1763588221,"wof:name":"B23","mz:is_current":1},{"wof:id":1763588225,"wof:name":"B19","mz:is_current":1},{"wof:id":1763588209,"wof:name":"B26","mz:is_current":1},{"wof:id":1763588227,"wof:name":"B16","mz:is_current":1},{"wof:id":1763588231,"wof:name":"B3","mz:is_current":1},{"wof:id":1763588229,"wof:name":"B20","mz:is_current":1},{"wof:id":1763588245,"wof:name":"C6","mz:is_current":1},{"wof:id":1763588215,"wof:name":"B4","mz:is_current":1},{"wof:id":1763588253,"wof:name":"C10","mz:is_current":1},{"wof:id":1763588235,"wof:name":"C2","mz:is_current":1},{"wof:id":1763588247,"wof:name":"C8","mz:is_current":1},{"wof:id":1763588217,"wof:name":"B27","mz:is_current":1},{"wof:id":1763588255,"wof:name":"C11","mz:is_current":1},{"wof:id":1763588237,"wof:name":"C4","mz:is_current":1},{"wof:id":1763588249,"wof:name":"C7","mz:is_current":1},{"wof:id":1763588219,"wof:name":"B21","mz:is_current":1},{"wof:id":1763588239,"wof:name":"C3","mz:is_current":1},{"wof:id":1763588267,"wof:name":"B2","mz:is_current":1},{"wof:id":1763588281,"wof:name":"E3","mz:is_current":1},{"wof:id":1763588293,"wof:name":"F5","mz:is_current":1},{"wof:id":1763588273,"wof:name":"F5","mz:is_current":0},{"wof:id":1763588283,"wof:name":"F1","mz:is_current":1},{"wof:id":1763588285,"wof:name":"F3","mz:is_current":1},{"wof:id":1763588297,"wof:name":"F6","mz:is_current":1},{"wof:id":1763588287,"wof:name":"F2","mz:is_current":1},{"wof:id":1763588275,"wof:name":"E1","mz:is_current":1},{"wof:id":1763588299,"wof:name":"F8","mz:is_current":1},{"wof:id":1763588289,"wof:name":"F4","mz:is_current":1},{"wof:id":1763588303,"wof:name":"F9","mz:is_current":1},{"wof:id":1763588311,"wof:name":"F12","mz:is_current":1},{"wof:id":1763588307,"wof:name":"F11","mz:is_current":1},{"wof:id":1763588323,"wof:name":"F18","mz:is_current":1},{"wof:id":1763588333,"wof:name":"F22","mz:is_current":1},{"wof:id":1763588315,"wof:name":"F14","mz:is_current":1},{"wof:id":1763588325,"wof:name":"F19","mz:is_current":1},{"wof:id":1763588309,"wof:name":"F13","mz:is_current":1},{"wof:id":1763588337,"wof:name":"E4","mz:is_current":1},{"wof:id":1763588317,"wof:name":"F15","mz:is_current":1},{"wof:id":1763588327,"wof:name":"F20","mz:is_current":1},{"wof:id":1763588343,"wof:name":"E7","mz:is_current":1},{"wof:id":1763588351,"wof:name":"E9","mz:is_current":1},{"wof:id":1763588345,"wof:name":"E8","mz:is_current":1},{"wof:id":1763588329,"wof:name":"F21","mz:is_current":1},{"wof:id":1763588353,"wof:name":"E11","mz:is_current":1},{"wof:id":1763588347,"wof:name":"E10","mz:is_current":1},{"wof:id":1763588357,"wof:name":"E13","mz:is_current":1},{"wof:id":1763588383,"wof:name":"A7","mz:is_current":0},{"wof:id":1763588391,"wof:name":"A8","mz:is_current":0},{"wof:id":1763588373,"wof:name":"A11","mz:is_current":0},{"wof:id":1763588387,"wof:name":"A2","mz:is_current":0},{"wof:id":1763588393,"wof:name":"A3","mz:is_current":1},{"wof:id":1763588375,"wof:name":"A10","mz:is_current":0},{"wof:id":1763588389,"wof:name":"A1","mz:is_current":0},{"wof:id":1763588395,"wof:name":"A5","mz:is_current":0},{"wof:id":1763588399,"wof:name":"A3","mz:is_current":0},{"wof:id":1763588377,"wof:name":"A4","mz:is_current":0},{"wof:id":1763588411,"wof:name":"A6","mz:is_current":1},{"wof:id":1763588401,"wof:name":"A1","mz:is_current":1},{"wof:id":1763588431,"wof:name":"A10","mz:is_current":1},{"wof:id":1763588427,"wof:name":"A15","mz:is_current":1},{"wof:id":1763588413,"wof:name":"A8","mz:is_current":1},{"wof:id":1763588405,"wof:name":"A2","mz:is_current":1},{"wof:id":1763588429,"wof:name":"A11","mz:is_current":1},{"wof:id":1763588415,"wof:name":"A7","mz:is_current":0},{"wof:id":1763588407,"wof:name":"A4","mz:is_current":1},{"wof:id":1763588437,"wof:name":"G1","mz:is_current":1},{"wof:id":1763588443,"wof:name":"G3","mz:is_current":1},{"wof:id":1763588447,"wof:name":"G5","mz:is_current":1},{"wof:id":1763588417,"wof:name":"A9","mz:is_current":1},{"wof:id":1763588451,"wof:name":"G7","mz:is_current":1},{"wof:id":1763588449,"wof:name":"G6","mz:is_current":1},{"wof:id":1763588409,"wof:name":"A5","mz:is_current":1},{"wof:id":1763588419,"wof:name":"A12","mz:is_current":1},{"wof:id":1763588465,"wof:name":"G13","mz:is_current":1},{"wof:id":1763588453,"wof:name":"G10","mz:is_current":1},{"wof:id":1763588455,"wof:name":"G8","mz:is_current":1},{"wof:id":1763588483,"wof:name":"B5","mz:is_current":1},{"wof:id":1763588467,"wof:name":"G14","mz:is_current":1},{"wof:id":1763588459,"wof:name":"G11","mz:is_current":1},{"wof:id":1159157603,"wof:name":"A10A","mz:is_current":0},{"wof:id":1159157605,"wof:name":"A11B","mz:is_current":0},{"wof:id":1159157607,"wof:name":"A12","mz:is_current":0},{"wof:id":1159157611,"wof:name":"A3A","mz:is_current":0},{"wof:id":1159157609,"wof:name":"A2","mz:is_current":0},{"wof:id":1159157613,"wof:name":"A1","mz:is_current":0},{"wof:id":1159157621,"wof:name":"G95","mz:is_current":0},{"wof:id":1159157615,"wof:name":"G101A","mz:is_current":0},{"wof:id":1159157623,"wof:name":"G91","mz:is_current":0},{"wof:id":1159157617,"wof:name":"A1A","mz:is_current":0},{"wof:id":1159157625,"wof:name":"B22","mz:is_current":0},{"wof:id":1159157627,"wof:name":"A11","mz:is_current":0},{"wof:id":1159157629,"wof:name":"A11A","mz:is_current":0},{"wof:id":1159157631,"wof:name":"A8","mz:is_current":0},{"wof:id":1159157633,"wof:name":"A9","mz:is_current":0},{"wof:id":1159157661,"wof:name":"C44","mz:is_current":0},{"wof:id":1159157651,"wof:name":"D58B","mz:is_current":0},{"wof:id":1159157663,"wof:name":"C46","mz:is_current":0},{"wof:id":1159157635,"wof:name":"A6","mz:is_current":0},{"wof:id":1159157653,"wof:name":"E65","mz:is_current":0},{"wof:id":1159157657,"wof:name":"G96","mz:is_current":0},{"wof:id":1159157667,"wof:name":"A1B","mz:is_current":0},{"wof:id":1159157665,"wof:name":"F89","mz:is_current":0},{"wof:id":1159157639,"wof:name":"A7","mz:is_current":0},{"wof:id":1159157669,"wof:name":"F73A","mz:is_current":0},{"wof:id":1159157693,"wof:name":"F84D","mz:is_current":0},{"wof:id":1159157681,"wof:name":"G99B","mz:is_current":0},{"wof:id":1159157659,"wof:name":"F73","mz:is_current":0},{"wof:id":1159157695,"wof:name":"F84C","mz:is_current":0},{"wof:id":1159157671,"wof:name":"F86","mz:is_current":0},{"wof:id":1159157683,"wof:name":"G97","mz:is_current":0},{"wof:id":1159157675,"wof:name":"F87","mz:is_current":0},{"wof:id":1159157697,"wof:name":"F74","mz:is_current":0},{"wof:id":1159157685,"wof:name":"G100","mz:is_current":0},{"wof:id":1159157687,"wof:name":"G98","mz:is_current":0},{"wof:id":1159157677,"wof:name":"G102","mz:is_current":0},{"wof:id":1159157679,"wof:name":"G99A","mz:is_current":0},{"wof:id":1159157699,"wof:name":"E68","mz:is_current":0},{"wof:id":1159157689,"wof:name":"F84B","mz:is_current":0},{"wof:id":1159157701,"wof:name":"D50A","mz:is_current":0},{"wof:id":1159157707,"wof:name":"C45B","mz:is_current":0},{"wof:id":1159157703,"wof:name":"D51A","mz:is_current":0},{"wof:id":1159157705,"wof:name":"D51B","mz:is_current":0},{"wof:id":1159157731,"wof:name":"F70A","mz:is_current":0},{"wof:id":1159157721,"wof:name":"F70","mz:is_current":0},{"wof:id":1159157711,"wof:name":"C42","mz:is_current":0},{"wof:id":1159157733,"wof:name":"E67","mz:is_current":0},{"wof:id":1159157713,"wof:name":"B25","mz:is_current":0},{"wof:id":1159157735,"wof:name":"E65A","mz:is_current":0},{"wof:id":1159157723,"wof:name":"F71A","mz:is_current":0},{"wof:id":1159157737,"wof:name":"E64A","mz:is_current":0},{"wof:id":1159157725,"wof:name":"F71B","mz:is_current":0},{"wof:id":1159157715,"wof:name":"B24","mz:is_current":0},{"wof:id":1159157739,"wof:name":"F77C","mz:is_current":0},{"wof:id":1159157717,"wof:name":"A3","mz:is_current":0},{"wof:id":1159157729,"wof:name":"F76","mz:is_current":0},{"wof:id":1159157741,"wof:name":"F90","mz:is_current":0},{"wof:id":1159157719,"wof:name":"G101B","mz:is_current":0},{"wof:id":1159157743,"wof:name":"C48","mz:is_current":0},{"wof:id":1159157749,"wof:name":"F85","mz:is_current":0},{"wof:id":1159157747,"wof:name":"C41","mz:is_current":0},{"wof:id":1159157751,"wof:name":"F88","mz:is_current":0},{"wof:id":1159157753,"wof:name":"C47","mz:is_current":0},{"wof:id":1159157755,"wof:name":"C45A","mz:is_current":0},{"wof:id":1159157757,"wof:name":"F81","mz:is_current":0},{"wof:id":1159157759,"wof:name":"E69","mz:is_current":0},{"wof:id":1159157761,"wof:name":"F82","mz:is_current":0},{"wof:id":1159157771,"wof:name":"E62","mz:is_current":0},{"wof:id":1159157765,"wof:name":"E60","mz:is_current":0},{"wof:id":1159157773,"wof:name":"D59","mz:is_current":0},{"wof:id":1159157769,"wof:name":"F77B","mz:is_current":0},{"wof:id":1159157767,"wof:name":"E61","mz:is_current":0},{"wof:id":1159157775,"wof:name":"G93","mz:is_current":0},{"wof:id":1159157779,"wof:name":"G92","mz:is_current":0},{"wof:id":1159157777,"wof:name":"G94","mz:is_current":0},{"wof:id":1159157785,"wof:name":"E64","mz:is_current":0},{"wof:id":1159157783,"wof:name":"F75","mz:is_current":0},{"wof:id":1159157787,"wof:name":"E67A","mz:is_current":0},{"wof:id":1159157789,"wof:name":"E66","mz:is_current":0},{"wof:id":1159157791,"wof:name":"D58A","mz:is_current":0},{"wof:id":1159157801,"wof:name":"D57","mz:is_current":0},{"wof:id":1159157793,"wof:name":"D55","mz:is_current":0},{"wof:id":1159157795,"wof:name":"D56B","mz:is_current":0},{"wof:id":1159157803,"wof:name":"C43","mz:is_current":0},{"wof:id":1159157805,"wof:name":"A5","mz:is_current":0},{"wof:id":1159157807,"wof:name":"A3B","mz:is_current":0},{"wof:id":1159157797,"wof:name":"D56A","mz:is_current":0},{"wof:id":1159157811,"wof:name":"B27","mz:is_current":0},{"wof:id":1159157819,"wof:name":"C48A","mz:is_current":0},{"wof:id":1159157809,"wof:name":"B26","mz:is_current":0},{"wof:id":1159157813,"wof:name":"B23","mz:is_current":0},{"wof:id":1159157815,"wof:name":"G99","mz:is_current":0},{"wof:id":1159157821,"wof:name":"F80","mz:is_current":0},{"wof:id":1159157827,"wof:name":"G101","mz:is_current":0},{"wof:id":1159157823,"wof:name":"A10","mz:is_current":0},{"wof:id":1159157825,"wof:name":"F72","mz:is_current":0},{"wof:id":1159157831,"wof:name":"D54B","mz:is_current":0},{"wof:id":1159157829,"wof:name":"D52","mz:is_current":0},{"wof:id":1159157841,"wof:name":"G99X","mz:is_current":0},{"wof:id":1159157833,"wof:name":"D54A","mz:is_current":0},{"wof:id":1159157837,"wof:name":"F84A","mz:is_current":0},{"wof:id":1159157843,"wof:name":"A3X","mz:is_current":0},{"wof:id":1159157847,"wof:name":"F77A","mz:is_current":0},{"wof:id":1159157839,"wof:name":"D50B","mz:is_current":0},{"wof:id":1159157845,"wof:name":"C42A","mz:is_current":0},{"wof:id":1159157851,"wof:name":"E62A","mz:is_current":0},{"wof:id":1159157849,"wof:name":"F87A","mz:is_current":0},{"wof:id":1159157857,"wof:name":"C40","mz:is_current":0},{"wof:id":1159157855,"wof:name":"F78","mz:is_current":0},{"wof:id":1159157859,"wof:name":"B28","mz:is_current":0},{"wof:id":1159157861,"wof:name":"F83","mz:is_current":0},{"wof:id":1477855615,"wof:name":"D52","mz:is_current":0},{"wof:id":1477855617,"wof:name":"D51A","mz:is_current":0},{"wof:id":1477855621,"wof:name":"D50A","mz:is_current":0},{"wof:id":1477855623,"wof:name":"D58B","mz:is_current":0},{"wof:id":1477855619,"wof:name":"D51B","mz:is_current":0},{"wof:id":1477855631,"wof:name":"D57","mz:is_current":0},{"wof:id":1477855633,"wof:name":"D59","mz:is_current":0},{"wof:id":1477855637,"wof:name":"D54A","mz:is_current":0},{"wof:id":1477855635,"wof:name":"D53","mz:is_current":0},{"wof:id":1477855639,"wof:name":"D50B","mz:is_current":0},{"wof:id":1477855641,"wof:name":"D54B","mz:is_current":0},{"wof:id":1477855643,"wof:name":"D55","mz:is_current":0},{"wof:id":1477855645,"wof:name":"D56A","mz:is_current":0},{"wof:id":1477855649,"wof:name":"D56B","mz:is_current":0},{"wof:id":1477855671,"wof:name":"C45","mz:is_current":0},{"wof:id":1477855675,"wof:name":"C45A","mz:is_current":0},{"wof:id":1477855673,"wof:name":"C47","mz:is_current":0},{"wof:id":1477855651,"wof:name":"D58A","mz:is_current":0},{"wof:id":1477855677,"wof:name":"C48","mz:is_current":0},{"wof:id":1477855679,"wof:name":"C41","mz:is_current":0},{"wof:id":1477855681,"wof:name":"C42","mz:is_current":0},{"wof:id":1477855691,"wof:name":"C43","mz:is_current":0},{"wof:id":1477855685,"wof:name":"C45B","mz:is_current":0},{"wof:id":1477855693,"wof:name":"C42A","mz:is_current":0},{"wof:id":1477855687,"wof:name":"C46","mz:is_current":0},{"wof:id":1477855695,"wof:name":"C48A","mz:is_current":0},{"wof:id":1477855697,"wof:name":"C40","mz:is_current":0},{"wof:id":1477855689,"wof:name":"C44","mz:is_current":0},{"wof:id":1477855705,"wof:name":"F77","mz:is_current":0},{"wof:id":1477855707,"wof:name":"F84","mz:is_current":0},{"wof:id":1477855709,"wof:name":"F84D","mz:is_current":0},{"wof:id":1477855713,"wof:name":"F84C","mz:is_current":0},{"wof:id":1477855711,"wof:name":"F74","mz:is_current":0},{"wof:id":1477855715,"wof:name":"F71A","mz:is_current":0},{"wof:id":1477855717,"wof:name":"F76","mz:is_current":0},{"wof:id":1477881719,"wof:name":"B6","mz:is_current":0},{"wof:id":1477855721,"wof:name":"F71B","mz:is_current":0},{"wof:id":1477855723,"wof:name":"F70","mz:is_current":0},{"wof:id":1477855733,"wof:name":"F81","mz:is_current":0},{"wof:id":1477855735,"wof:name":"F88","mz:is_current":0},{"wof:id":1477855739,"wof:name":"F85","mz:is_current":0},{"wof:id":1477855741,"wof:name":"F90","mz:is_current":0},{"wof:id":1477855743,"wof:name":"F77B","mz:is_current":0},{"wof:id":1477855745,"wof:name":"F82","mz:is_current":0},{"wof:id":1477855747,"wof:name":"F72","mz:is_current":0},{"wof:id":1477855749,"wof:name":"F80","mz:is_current":0},{"wof:id":1477855751,"wof:name":"F73A","mz:is_current":0},{"wof:id":1477855753,"wof:name":"F89","mz:is_current":0},{"wof:id":1477855759,"wof:name":"F84B","mz:is_current":0},{"wof:id":1477855757,"wof:name":"F73","mz:is_current":0},{"wof:id":1159157641,"wof:name":"A4","mz:is_current":0},{"wof:id":1159157643,"wof:name":"A5B","mz:is_current":0},{"wof:id":1159157647,"wof:name":"E63","mz:is_current":0},{"wof:id":1159157649,"wof:name":"D53","mz:is_current":0},{"wof:id":1159157645,"wof:name":"F79","mz:is_current":0},{"wof:id":1477855761,"wof:name":"F83","mz:is_current":0},{"wof:id":1477855771,"wof:name":"F78","mz:is_current":0},{"wof:id":1477855763,"wof:name":"F75","mz:is_current":0},{"wof:id":1477855775,"wof:name":"F87","mz:is_current":0},{"wof:id":1477855779,"wof:name":"F77C","mz:is_current":0},{"wof:id":1477855777,"wof:name":"F86","mz:is_current":0},{"wof:id":1477855765,"wof:name":"F79","mz:is_current":0},{"wof:id":1477855767,"wof:name":"F87A","mz:is_current":0},{"wof:id":1477855769,"wof:name":"F77A","mz:is_current":0},{"wof:id":1477855793,"wof:name":"E69","mz:is_current":0},{"wof:id":1477855781,"wof:name":"F70A","mz:is_current":0},{"wof:id":1477855795,"wof:name":"E61","mz:is_current":0},{"wof:id":1477855797,"wof:name":"E60","mz:is_current":0},{"wof:id":1477855783,"wof:name":"F84A","mz:is_current":0},{"wof:id":1477855799,"wof:name":"E65","mz:is_current":0},{"wof:id":1477855789,"wof:name":"E68","mz:is_current":0},{"wof:id":1477881721,"wof:name":"B7","mz:is_current":0},{"wof:id":1477881727,"wof:name":"B12","mz:is_current":0},{"wof:id":1477881725,"wof:name":"B9","mz:is_current":0},{"wof:id":1477881723,"wof:name":"B8","mz:is_current":0},{"wof:id":1477855801,"wof:name":"E66","mz:is_current":0},{"wof:id":1477855803,"wof:name":"E67A","mz:is_current":0},{"wof:id":1477855805,"wof:name":"E64","mz:is_current":0},{"wof:id":1477855807,"wof:name":"E62","mz:is_current":0},{"wof:id":1477881731,"wof:name":"B13","mz:is_current":0},{"wof:id":1477881733,"wof:name":"B14","mz:is_current":0},{"wof:id":1477881737,"wof:name":"B18","mz:is_current":0},{"wof:id":1477881735,"wof:name":"B17","mz:is_current":0},{"wof:id":1477855817,"wof:name":"E64A","mz:is_current":0},{"wof:id":1477855811,"wof:name":"E63","mz:is_current":0},{"wof:id":1477855813,"wof:name":"E62A","mz:is_current":0},{"wof:id":1477855819,"wof:name":"E65A","mz:is_current":0},{"wof:id":1477855815,"wof:name":"E67","mz:is_current":0},{"wof:id":1477855837,"wof:name":"A11A","mz:is_current":0},{"wof:id":1477855841,"wof:name":"A1","mz:is_current":0},{"wof:id":1477855839,"wof:name":"A11","mz:is_current":0},{"wof:id":1477855843,"wof:name":"A1A","mz:is_current":0},{"wof:id":1477855847,"wof:name":"A3A","mz:is_current":0},{"wof:id":1477855849,"wof:name":"A3","mz:is_current":0},{"wof:id":1477855861,"wof:name":"A4","mz:is_current":0},{"wof:id":1477855867,"wof:name":"A2","mz:is_current":0},{"wof:id":1477855865,"wof:name":"A10A","mz:is_current":0},{"wof:id":1477855851,"wof:name":"A10","mz:is_current":0},{"wof:id":1477855869,"wof:name":"A12","mz:is_current":0},{"wof:id":1477855855,"wof:name":"A3B","mz:is_current":0},{"wof:id":1477855853,"wof:name":"A1B","mz:is_current":0},{"wof:id":1477855857,"wof:name":"A5","mz:is_current":0},{"wof:id":1477855871,"wof:name":"A11B","mz:is_current":0},{"wof:id":1477855873,"wof:name":"A3X","mz:is_current":0},{"wof:id":1477855875,"wof:name":"A9","mz:is_current":0},{"wof:id":1477855877,"wof:name":"A7","mz:is_current":0},{"wof:id":1477855879,"wof:name":"A6","mz:is_current":0},{"wof:id":1477855859,"wof:name":"A5B","mz:is_current":0},{"wof:id":1477855883,"wof:name":"A8","mz:is_current":0},{"wof:id":1477855887,"wof:name":"G91","mz:is_current":0},{"wof:id":1477855889,"wof:name":"G95","mz:is_current":0},{"wof:id":1477855901,"wof:name":"G97","mz:is_current":0},{"wof:id":1477855903,"wof:name":"G98","mz:is_current":0},{"wof:id":1477855905,"wof:name":"G100","mz:is_current":0},{"wof:id":1477855907,"wof:name":"G99B","mz:is_current":0},{"wof:id":1477855891,"wof:name":"G101A","mz:is_current":0},{"wof:id":1477855909,"wof:name":"G92","mz:is_current":0},{"wof:id":1477855895,"wof:name":"G101","mz:is_current":0},{"wof:id":1477855893,"wof:name":"G101B","mz:is_current":0},{"wof:id":1477855897,"wof:name":"G96","mz:is_current":0},{"wof:id":1477921765,"wof:name":"D59A","mz:is_current":0},{"wof:id":1477921767,"wof:name":"D59B","mz:is_current":0},{"wof:id":1477921771,"wof:name":"F76A","mz:is_current":0},{"wof:id":1729792403,"wof:name":"D5","mz:is_current":0},{"wof:id":1477921773,"wof:name":"F76B","mz:is_current":0},{"wof:id":1729792401,"wof:name":"D4","mz:is_current":0},{"wof:id":1729792407,"wof:name":"D7","mz:is_current":0},{"wof:id":1729792405,"wof:name":"D6","mz:is_current":0},{"wof:id":1477855911,"wof:name":"G94","mz:is_current":0},{"wof:id":1477921769,"wof:name":"D59C","mz:is_current":0},{"wof:id":1477855913,"wof:name":"G93","mz:is_current":0},{"wof:id":1729792409,"wof:name":"D8","mz:is_current":0},{"wof:id":1477855919,"wof:name":"G99","mz:is_current":0},{"wof:id":1477855915,"wof:name":"G99X","mz:is_current":0},{"wof:id":1477855921,"wof:name":"G99A","mz:is_current":0},{"wof:id":1729792393,"wof:name":"D1","mz:is_current":0},{"wof:id":1729792397,"wof:name":"D2","mz:is_current":0},{"wof:id":1477855923,"wof:name":"G102","mz:is_current":0},{"wof:id":1729792399,"wof:name":"D3","mz:is_current":0},{"wof:id":1729792421,"wof:name":"D14","mz:is_current":0},{"wof:id":1729792427,"wof:name":"D17","mz:is_current":0},{"wof:id":1729792425,"wof:name":"D16","mz:is_current":0},{"wof:id":1729792423,"wof:name":"D15","mz:is_current":0},{"wof:id":1729792429,"wof:name":"D18","mz:is_current":0},{"wof:id":1729792411,"wof:name":"D9","mz:is_current":0},{"wof:id":1729792415,"wof:name":"D11","mz:is_current":0},{"wof:id":1729792417,"wof:name":"D10","mz:is_current":0},{"wof:id":1729792419,"wof:name":"D12","mz:is_current":0},{"wof:id":1729792441,"wof:name":"B7","mz:is_current":0},{"wof:id":1477930281,"wof:name":"A1","mz:is_current":0},{"wof:id":1729792443,"wof:name":"B8","mz:is_current":0},{"wof:id":1729792445,"wof:name":"B9","mz:is_current":0},{"wof:id":1477930283,"wof:name":"A2","mz:is_current":0},{"wof:id":1729792447,"wof:name":"B12","mz:is_current":0},{"wof:id":1477930287,"wof:name":"A3","mz:is_current":0},{"wof:id":1477930289,"wof:name":"A4","mz:is_current":0},{"wof:id":1729792439,"wof:name":"B6","mz:is_current":0},{"wof:id":1729792461,"wof:name":"C2","mz:is_current":0},{"wof:id":1477930291,"wof:name":"A5","mz:is_current":0},{"wof:id":1729792463,"wof:name":"C4","mz:is_current":0},{"wof:id":1729792465,"wof:name":"C3","mz:is_current":0},{"wof:id":1477930295,"wof:name":"A6","mz:is_current":0},{"wof:id":1729792469,"wof:name":"C5","mz:is_current":0},{"wof:id":1477930297,"wof:name":"A7","mz:is_current":0},{"wof:id":1477930301,"wof:name":"A9","mz:is_current":0},{"wof:id":1477930299,"wof:name":"A8","mz:is_current":0},{"wof:id":1729792451,"wof:name":"B13","mz:is_current":0},{"wof:id":1477930303,"wof:name":"A10","mz:is_current":0},{"wof:id":1729792453,"wof:name":"B14","mz:is_current":0},{"wof:id":1477930305,"wof:name":"A11","mz:is_current":0},{"wof:id":1729792455,"wof:name":"B17","mz:is_current":0},{"wof:id":1477930307,"wof:name":"A12","mz:is_current":0},{"wof:id":1729792457,"wof:name":"B18","mz:is_current":0},{"wof:id":1477930309,"wof:name":"A13","mz:is_current":0},{"wof:id":1729792471,"wof:name":"C6","mz:is_current":0},{"wof:id":1477930313,"wof:name":"A14","mz:is_current":0},{"wof:id":1729792473,"wof:name":"C7","mz:is_current":0},{"wof:id":1477930315,"wof:name":"A15","mz:is_current":0},{"wof:id":1729792475,"wof:name":"C8","mz:is_current":0},{"wof:id":1729792477,"wof:name":"C9","mz:is_current":0},{"wof:id":1477930317,"wof:name":"C2","mz:is_current":0},{"wof:id":1729792481,"wof:name":"C11","mz:is_current":0},{"wof:id":1477930319,"wof:name":"C3","mz:is_current":0},{"wof:id":1729792479,"wof:name":"C10","mz:is_current":0},{"wof:id":1729792491,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792493,"wof:name":"E1","mz:is_current":0},{"wof:id":1729792495,"wof:name":"E2","mz:is_current":0},{"wof:id":1729792497,"wof:name":"E3","mz:is_current":0},{"wof:id":1729792499,"wof:name":"F1","mz:is_current":0},{"wof:id":1477930333,"wof:name":"C9","mz:is_current":0},{"wof:id":1477930331,"wof:name":"C8","mz:is_current":0},{"wof:id":1729792501,"wof:name":"F2","mz:is_current":0},{"wof:id":1477930335,"wof:name":"C10","mz:is_current":0},{"wof:id":1477930341,"wof:name":"D2","mz:is_current":0},{"wof:id":1729792505,"wof:name":"F3","mz:is_current":0},{"wof:id":1477930337,"wof:name":"C11","mz:is_current":0},{"wof:id":1477930339,"wof:name":"D1","mz:is_current":0},{"wof:id":1477930343,"wof:name":"D3","mz:is_current":0},{"wof:id":1729792507,"wof:name":"F4","mz:is_current":0},{"wof:id":1729792509,"wof:name":"F3A","mz:is_current":0},{"wof:id":1477930345,"wof:name":"D4","mz:is_current":0},{"wof:id":1477930349,"wof:name":"D5","mz:is_current":0},{"wof:id":1729792511,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792515,"wof:name":"F7","mz:is_current":0},{"wof:id":1729792513,"wof:name":"F6","mz:is_current":0},{"wof:id":1729792517,"wof:name":"F8","mz:is_current":0},{"wof:id":1477930321,"wof:name":"C4","mz:is_current":0},{"wof:id":1729792519,"wof:name":"F9","mz:is_current":0},{"wof:id":1477930327,"wof:name":"C7","mz:is_current":0},{"wof:id":1477930325,"wof:name":"C6","mz:is_current":0},{"wof:id":1477930323,"wof:name":"C5","mz:is_current":0},{"wof:id":1729792523,"wof:name":"F10","mz:is_current":0},{"wof:id":1729792525,"wof:name":"F11","mz:is_current":0},{"wof:id":1729792531,"wof:name":"F14","mz:is_current":0},{"wof:id":1729792535,"wof:name":"F16","mz:is_current":0},{"wof:id":1729792529,"wof:name":"F12","mz:is_current":0},{"wof:id":1729792533,"wof:name":"F15","mz:is_current":0},{"wof:id":1729792527,"wof:name":"F13","mz:is_current":0},{"wof:id":1729792537,"wof:name":"F17","mz:is_current":0},{"wof:id":1477930351,"wof:name":"D6","mz:is_current":0},{"wof:id":1477930353,"wof:name":"D7","mz:is_current":0},{"wof:id":1477930355,"wof:name":"D8","mz:is_current":0},{"wof:id":1477930361,"wof:name":"D11","mz:is_current":0},{"wof:id":1477930363,"wof:name":"D12","mz:is_current":0},{"wof:id":1477930359,"wof:name":"D10","mz:is_current":0},{"wof:id":1477930357,"wof:name":"D9","mz:is_current":0},{"wof:id":1477930367,"wof:name":"D14","mz:is_current":0},{"wof:id":1729792541,"wof:name":"F18","mz:is_current":0},{"wof:id":1477930369,"wof:name":"D15","mz:is_current":0},{"wof:id":1729792543,"wof:name":"F19","mz:is_current":0},{"wof:id":1729792545,"wof:name":"F20","mz:is_current":0},{"wof:id":1729792547,"wof:name":"F21","mz:is_current":0},{"wof:id":1477930371,"wof:name":"D16","mz:is_current":0},{"wof:id":1729792549,"wof:name":"F22","mz:is_current":0},{"wof:id":1477930381,"wof:name":"E3","mz:is_current":0},{"wof:id":1477930373,"wof:name":"D17","mz:is_current":0},{"wof:id":1477930385,"wof:name":"E4","mz:is_current":0},{"wof:id":1729792553,"wof:name":"E4","mz:is_current":0},{"wof:id":1477930375,"wof:name":"D18","mz:is_current":0},{"wof:id":1477930377,"wof:name":"E1","mz:is_current":0},{"wof:id":1477930387,"wof:name":"E5","mz:is_current":0},{"wof:id":1477930379,"wof:name":"E2","mz:is_current":0},{"wof:id":1477930389,"wof:name":"E6","mz:is_current":0},{"wof:id":1729792555,"wof:name":"E5","mz:is_current":0},{"wof:id":1729792559,"wof:name":"E6","mz:is_current":0},{"wof:id":1477930393,"wof:name":"E8","mz:is_current":0},{"wof:id":1477930391,"wof:name":"E7","mz:is_current":0},{"wof:id":1477930395,"wof:name":"E9","mz:is_current":0},{"wof:id":1729792561,"wof:name":"E7","mz:is_current":0},{"wof:id":1477930397,"wof:name":"E10","mz:is_current":0},{"wof:id":1729792571,"wof:name":"E12","mz:is_current":0},{"wof:id":1477930399,"wof:name":"E11","mz:is_current":0},{"wof:id":1729792563,"wof:name":"E8","mz:is_current":0},{"wof:id":1729792573,"wof:name":"E13","mz:is_current":0},{"wof:id":1477930403,"wof:name":"E12","mz:is_current":0},{"wof:id":1729792583,"wof:name":"A2","mz:is_current":0},{"wof:id":1477930405,"wof:name":"E13","mz:is_current":0},{"wof:id":1729792585,"wof:name":"A4","mz:is_current":0},{"wof:id":1729792587,"wof:name":"A5","mz:is_current":0},{"wof:id":1477930407,"wof:name":"F1","mz:is_current":0},{"wof:id":1477930409,"wof:name":"F2","mz:is_current":0},{"wof:id":1729792589,"wof:name":"A7","mz:is_current":0},{"wof:id":1729792591,"wof:name":"A6","mz:is_current":0},{"wof:id":1729792565,"wof:name":"E9","mz:is_current":0},{"wof:id":1729792595,"wof:name":"A10","mz:is_current":0},{"wof:id":1729792599,"wof:name":"A8","mz:is_current":0},{"wof:id":1729792597,"wof:name":"A9","mz:is_current":0},{"wof:id":1729792567,"wof:name":"E10","mz:is_current":0},{"wof:id":1729792601,"wof:name":"A12","mz:is_current":0},{"wof:id":1729792569,"wof:name":"E11","mz:is_current":0},{"wof:id":1729792613,"wof:name":"A2","mz:is_current":0},{"wof:id":1477930411,"wof:name":"F3","mz:is_current":0},{"wof:id":1729792615,"wof:name":"A3","mz:is_current":0},{"wof:id":1729792603,"wof:name":"A11","mz:is_current":0},{"wof:id":1477930413,"wof:name":"F3A","mz:is_current":0},{"wof:id":1729792605,"wof:name":"A3","mz:is_current":0},{"wof:id":1729792617,"wof:name":"A4","mz:is_current":0},{"wof:id":1477930415,"wof:name":"F4","mz:is_current":0},{"wof:id":1729792619,"wof:name":"A5","mz:is_current":0},{"wof:id":1729792607,"wof:name":"A1","mz:is_current":0},{"wof:id":1477930417,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792609,"wof:name":"A1","mz:is_current":0},{"wof:id":1729792631,"wof:name":"A10","mz:is_current":0},{"wof:id":1729792633,"wof:name":"A11","mz:is_current":0},{"wof:id":1477930421,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792635,"wof:name":"A12","mz:is_current":0},{"wof:id":1729792639,"wof:name":"A14","mz:is_current":0},{"wof:id":1729792637,"wof:name":"A13","mz:is_current":0},{"wof:id":1477930425,"wof:name":"F7","mz:is_current":0},{"wof:id":1477930423,"wof:name":"F6","mz:is_current":0},{"wof:id":1729792641,"wof:name":"A15","mz:is_current":0},{"wof:id":1477930427,"wof:name":"F8","mz:is_current":0},{"wof:id":1477930429,"wof:name":"F9","mz:is_current":0},{"wof:id":1729792649,"wof:name":"G1","mz:is_current":0},{"wof:id":1729792651,"wof:name":"G2","mz:is_current":0},{"wof:id":1729792653,"wof:name":"G3","mz:is_current":0},{"wof:id":1729792663,"wof:name":"G10","mz:is_current":0},{"wof:id":1729792661,"wof:name":"G7","mz:is_current":0},{"wof:id":1729792655,"wof:name":"G4","mz:is_current":0},{"wof:id":1729792621,"wof:name":"A6","mz:is_current":0},{"wof:id":1729792667,"wof:name":"G8","mz:is_current":0},{"wof:id":1729792657,"wof:name":"G5","mz:is_current":0},{"wof:id":1729792659,"wof:name":"G6","mz:is_current":0},{"wof:id":1477930431,"wof:name":"F10","mz:is_current":0},{"wof:id":1729792669,"wof:name":"G11","mz:is_current":0},{"wof:id":1477930433,"wof:name":"F11","mz:is_current":0},{"wof:id":1477930441,"wof:name":"F14","mz:is_current":0},{"wof:id":1477930435,"wof:name":"F12","mz:is_current":0},{"wof:id":1729792671,"wof:name":"G9","mz:is_current":0},{"wof:id":1477930439,"wof:name":"F13","mz:is_current":0},{"wof:id":1477930443,"wof:name":"F15","mz:is_current":0},{"wof:id":1729792675,"wof:name":"G13","mz:is_current":0},{"wof:id":1729792673,"wof:name":"G12","mz:is_current":0},{"wof:id":1477930445,"wof:name":"F16","mz:is_current":0},{"wof:id":1729792677,"wof:name":"G14","mz:is_current":0},{"wof:id":1477930447,"wof:name":"F17","mz:is_current":0},{"wof:id":1477930449,"wof:name":"F18","mz:is_current":0},{"wof:id":1477930451,"wof:name":"F19","mz:is_current":0},{"wof:id":1477930453,"wof:name":"F20","mz:is_current":0},{"wof:id":1477930457,"wof:name":"F21","mz:is_current":0},{"wof:id":1477930459,"wof:name":"F22","mz:is_current":0},{"wof:id":1729792623,"wof:name":"A8","mz:is_current":0},{"wof:id":1477930461,"wof:name":"G1","mz:is_current":0},{"wof:id":1477930463,"wof:name":"G2","mz:is_current":0},{"wof:id":1729792625,"wof:name":"A7","mz:is_current":0},{"wof:id":1477930465,"wof:name":"G3","mz:is_current":0},{"wof:id":1729792627,"wof:name":"A9","mz:is_current":0},{"wof:id":1477930467,"wof:name":"G4","mz:is_current":0},{"wof:id":1477930469,"wof:name":"G5","mz:is_current":0},{"wof:id":1477930475,"wof:name":"G7","mz:is_current":0},{"wof:id":1477930471,"wof:name":"G6","mz:is_current":0},{"wof:id":1477930477,"wof:name":"G8","mz:is_current":0},{"wof:id":1477930479,"wof:name":"G9","mz:is_current":0},{"wof:id":1477930481,"wof:name":"G10","mz:is_current":0},{"wof:id":1477930485,"wof:name":"G12","mz:is_current":0},{"wof:id":1477930483,"wof:name":"G11","mz:is_current":0},{"wof:id":1477930487,"wof:name":"G13","mz:is_current":0},{"wof:id":1477930489,"wof:name":"G14","mz:is_current":0},{"wof:id":1729792723,"wof:name":"B10","mz:is_current":0},{"wof:id":1729792725,"wof:name":"B25","mz:is_current":0},{"wof:id":1729792727,"wof:name":"B11","mz:is_current":0},{"wof:id":1729792729,"wof:name":"B24","mz:is_current":0},{"wof:id":1729792733,"wof:name":"B26","mz:is_current":0},{"wof:id":1729792731,"wof:name":"C1","mz:is_current":0},{"wof:id":1729792741,"wof:name":"B21","mz:is_current":0},{"wof:id":1729792743,"wof:name":"B19","mz:is_current":0},{"wof:id":1729792745,"wof:name":"B20","mz:is_current":0},{"wof:id":1729792747,"wof:name":"B5","mz:is_current":0},{"wof:id":1729792735,"wof:name":"B1","mz:is_current":0},{"wof:id":1729792749,"wof:name":"B4","mz:is_current":0},{"wof:id":1729792739,"wof:name":"B22","mz:is_current":0},{"wof:id":1729792751,"wof:name":"B23","mz:is_current":0},{"wof:id":1729792753,"wof:name":"B16","mz:is_current":0},{"wof:id":1729792757,"wof:name":"B2","mz:is_current":0},{"wof:id":1729792759,"wof:name":"B3","mz:is_current":0},{"wof:id":1729792761,"wof:name":"B15","mz:is_current":0},{"wof:id":1729792763,"wof:name":"B27","mz:is_current":0},{"wof:id":1360832519,"wof:name":"C45","mz:is_current":0},{"wof:id":1360832521,"wof:name":"F84","mz:is_current":0},{"wof:id":1360832523,"wof:name":"F77","mz:is_current":0},{"wof:id":1745882089,"wof:name":"D1","mz:is_current":0},{"wof:id":1745882125,"wof:name":"D18","mz:is_current":0},{"wof:id":1745882113,"wof:name":"D10","mz:is_current":0},{"wof:id":1745882103,"wof:name":"D7","mz:is_current":0},{"wof:id":1745882141,"wof:name":"B6","mz:is_current":0},{"wof:id":1745882149,"wof:name":"B9","mz:is_current":0},{"wof:id":1745882175,"wof:name":"B21","mz:is_current":0},{"wof:id":1745882161,"wof:name":"B10","mz:is_current":0},{"wof:id":1745882191,"wof:name":"B15","mz:is_current":0},{"wof:id":1745882211,"wof:name":"C8","mz:is_current":0},{"wof:id":1745882187,"wof:name":"B16","mz:is_current":0},{"wof:id":1745882231,"wof:name":"B2","mz:is_current":0},{"wof:id":1745882229,"wof:name":"B1","mz:is_current":1},{"wof:id":1745882241,"wof:name":"E1","mz:is_current":0},{"wof:id":1745882249,"wof:name":"F2","mz:is_current":0},{"wof:id":1745882261,"wof:name":"F6","mz:is_current":0},{"wof:id":1745882273,"wof:name":"F11","mz:is_current":0},{"wof:id":1745882277,"wof:name":"F12","mz:is_current":0},{"wof:id":1745882281,"wof:name":"F15","mz:is_current":0},{"wof:id":1745882311,"wof:name":"E8","mz:is_current":0},{"wof:id":1745882297,"wof:name":"F22","mz:is_current":0},{"wof:id":1745882305,"wof:name":"E6","mz:is_current":0},{"wof:id":1745882321,"wof:name":"E13","mz:is_current":0},{"wof:id":1745882313,"wof:name":"E9","mz:is_current":0},{"wof:id":1745882341,"wof:name":"A4","mz:is_current":0},{"wof:id":1745882377,"wof:name":"A6","mz:is_current":0},{"wof:id":1745882371,"wof:name":"A3","mz:is_current":0},{"wof:id":1745882383,"wof:name":"A7","mz:is_current":0},{"wof:id":1745882381,"wof:name":"A8","mz:is_current":0},{"wof:id":1745882405,"wof:name":"G1","mz:is_current":0},{"wof:id":1745882419,"wof:name":"G7","mz:is_current":0},{"wof:id":1745882417,"wof:name":"G6","mz:is_current":0},{"wof:id":1745882431,"wof:name":"G13","mz:is_current":0},{"wof:id":1763588131,"wof:name":"D3","mz:is_current":1},{"wof:id":1763588141,"wof:name":"D7","mz:is_current":1},{"wof:id":1746415351,"wof:name":"C10T","mz:is_current":1},{"wof:id":1746415343,"wof:name":"G12S","mz:is_current":1},{"wof:id":1746415339,"wof:name":"A13R","mz:is_current":1},{"wof:id":1746415381,"wof:name":"A13S","mz:is_current":1},{"wof:id":1746415391,"wof:name":"A4R","mz:is_current":1},{"wof:id":1746415365,"wof:name":"A1T","mz:is_current":1},{"wof:id":1746415399,"wof:name":"A6R","mz:is_current":1},{"wof:id":1746415415,"wof:name":"E11U","mz:is_current":1},{"wof:id":1746415407,"wof:name":"G105","mz:is_current":1},{"wof:id":1746415417,"wof:name":"E13K","mz:is_current":1},{"wof:id":1763588153,"wof:name":"D12","mz:is_current":1},{"wof:id":1763588181,"wof:name":"B7","mz:is_current":1},{"wof:id":1763588161,"wof:name":"D17","mz:is_current":1},{"wof:id":1763588193,"wof:name":"B14","mz:is_current":1},{"wof:id":1763588183,"wof:name":"B8","mz:is_current":1},{"wof:id":1763588201,"wof:name":"B25","mz:is_current":1},{"wof:id":1763588211,"wof:name":"B15","mz:is_current":1},{"wof:id":1763588199,"wof:name":"B10","mz:is_current":1},{"wof:id":1746415401,"wof:name":"E3T","mz:is_current":1},{"wof:id":1763588243,"wof:name":"C5","mz:is_current":1},{"wof:id":1763588207,"wof:name":"B24","mz:is_current":1},{"wof:id":1763588251,"wof:name":"C9","mz:is_current":1},{"wof:id":1763588291,"wof:name":"F3A","mz:is_current":1},{"wof:id":1763588321,"wof:name":"F17","mz:is_current":1},{"wof:id":1763588301,"wof:name":"F7","mz:is_current":1},{"wof:id":1763588305,"wof:name":"F10","mz:is_current":1},{"wof:id":1763588339,"wof:name":"E5","mz:is_current":1},{"wof:id":1763588279,"wof:name":"E2","mz:is_current":1},{"wof:id":1763588319,"wof:name":"F16","mz:is_current":1},{"wof:id":1763588355,"wof:name":"E12","mz:is_current":1},{"wof:id":1763588341,"wof:name":"E6","mz:is_current":1},{"wof:id":1763588381,"wof:name":"A6","mz:is_current":0},{"wof:id":1763588397,"wof:name":"A12","mz:is_current":0},{"wof:id":1763588379,"wof:name":"A9","mz:is_current":0},{"wof:id":1763588423,"wof:name":"A13","mz:is_current":1},{"wof:id":1763588425,"wof:name":"A14","mz:is_current":1},{"wof:id":1763588445,"wof:name":"G4","mz:is_current":1},{"wof:id":1763588441,"wof:name":"G2","mz:is_current":1},{"wof:id":1763588461,"wof:name":"G9","mz:is_current":1},{"wof:id":1763588463,"wof:name":"G12","mz:is_current":1}] +[{"wof:id":1729792547,"wof:name":"F21","mz:is_current":0},{"wof:id":1729792553,"wof:name":"E4","mz:is_current":0},{"wof:id":1729792571,"wof:name":"E12","mz:is_current":0},{"wof:id":1729792565,"wof:name":"E9","mz:is_current":0},{"wof:id":1729792591,"wof:name":"A6","mz:is_current":0},{"wof:id":1729792567,"wof:name":"E10","mz:is_current":0},{"wof:id":1729792597,"wof:name":"A9","mz:is_current":0},{"wof:id":1729792549,"wof:name":"F22","mz:is_current":0},{"wof:id":1729792569,"wof:name":"E11","mz:is_current":0},{"wof:id":1729792555,"wof:name":"E5","mz:is_current":0},{"wof:id":1729792559,"wof:name":"E6","mz:is_current":0},{"wof:id":1729792601,"wof:name":"A12","mz:is_current":0},{"wof:id":1729792573,"wof:name":"E13","mz:is_current":0},{"wof:id":1729792603,"wof:name":"A11","mz:is_current":0},{"wof:id":1729792613,"wof:name":"A2","mz:is_current":0},{"wof:id":1729792615,"wof:name":"A3","mz:is_current":0},{"wof:id":1729792621,"wof:name":"A6","mz:is_current":0},{"wof:id":1729792631,"wof:name":"A10","mz:is_current":0},{"wof:id":1745882089,"wof:name":"D1","mz:is_current":0},{"wof:id":1729792623,"wof:name":"A8","mz:is_current":0},{"wof:id":1729792633,"wof:name":"A11","mz:is_current":0},{"wof:id":1729792617,"wof:name":"A4","mz:is_current":0},{"wof:id":1729792635,"wof:name":"A12","mz:is_current":0},{"wof:id":1729792619,"wof:name":"A5","mz:is_current":0},{"wof:id":1745882093,"wof:name":"D2","mz:is_current":0},{"wof:id":1729792627,"wof:name":"A9","mz:is_current":0},{"wof:id":1729792637,"wof:name":"A13","mz:is_current":0},{"wof:id":1729792649,"wof:name":"G1","mz:is_current":0},{"wof:id":1763588131,"wof:name":"D3","mz:is_current":0},{"wof:id":1763588141,"wof:name":"D7","mz:is_current":0},{"wof:id":1763588153,"wof:name":"D12","mz:is_current":0},{"wof:id":1745882095,"wof:name":"D3","mz:is_current":0},{"wof:id":1763588183,"wof:name":"B8","mz:is_current":0},{"wof:id":1763588143,"wof:name":"D9","mz:is_current":0},{"wof:id":1763588163,"wof:name":"D18","mz:is_current":0},{"wof:id":1763588135,"wof:name":"D4","mz:is_current":0},{"wof:id":1745882097,"wof:name":"D4","mz:is_current":0},{"wof:id":1763588155,"wof:name":"D14","mz:is_current":0},{"wof:id":1763588195,"wof:name":"B17","mz:is_current":0},{"wof:id":1763588145,"wof:name":"D8","mz:is_current":0},{"wof:id":1763588127,"wof:name":"D2","mz:is_current":0},{"wof:id":1763588137,"wof:name":"D5","mz:is_current":0},{"wof:id":1763588157,"wof:name":"D16","mz:is_current":0},{"wof:id":1763588147,"wof:name":"D11","mz:is_current":0},{"wof:id":1763588185,"wof:name":"B12","mz:is_current":0},{"wof:id":1763588129,"wof:name":"D1","mz:is_current":0},{"wof:id":1745882099,"wof:name":"D5","mz:is_current":0},{"wof:id":1763588197,"wof:name":"B18","mz:is_current":0},{"wof:id":1763588139,"wof:name":"D6","mz:is_current":0},{"wof:id":1763588149,"wof:name":"D10","mz:is_current":0},{"wof:id":1763588159,"wof:name":"D15","mz:is_current":0},{"wof:id":1763588199,"wof:name":"B10","mz:is_current":0},{"wof:id":1763588189,"wof:name":"B9","mz:is_current":0},{"wof:id":1763588201,"wof:name":"B25","mz:is_current":0},{"wof:id":1763588211,"wof:name":"B15","mz:is_current":0},{"wof:id":1763588227,"wof:name":"B16","mz:is_current":0},{"wof:id":1763588203,"wof:name":"B11","mz:is_current":0},{"wof:id":1763588253,"wof:name":"C10","mz:is_current":0},{"wof:id":1745882111,"wof:name":"D11","mz:is_current":0},{"wof:id":1763588235,"wof:name":"C2","mz:is_current":1},{"wof:id":1763588229,"wof:name":"B20","mz:is_current":0},{"wof:id":1763588243,"wof:name":"C5","mz:is_current":0},{"wof:id":1763588255,"wof:name":"C11","mz:is_current":0},{"wof:id":1745882113,"wof:name":"D10","mz:is_current":0},{"wof:id":1763588207,"wof:name":"B24","mz:is_current":0},{"wof:id":1763588213,"wof:name":"B22","mz:is_current":0},{"wof:id":1763588247,"wof:name":"C8","mz:is_current":0},{"wof:id":1763588237,"wof:name":"C4","mz:is_current":0},{"wof:id":1763588209,"wof:name":"B26","mz:is_current":0},{"wof:id":1763588249,"wof:name":"C7","mz:is_current":0},{"wof:id":1763588239,"wof:name":"C3","mz:is_current":0},{"wof:id":1763588215,"wof:name":"B4","mz:is_current":0},{"wof:id":1745882115,"wof:name":"D12","mz:is_current":0},{"wof:id":1745882119,"wof:name":"D15","mz:is_current":0},{"wof:id":1745882123,"wof:name":"D17","mz:is_current":0},{"wof:id":1729792653,"wof:name":"G3","mz:is_current":0},{"wof:id":1763588273,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792661,"wof:name":"G7","mz:is_current":0},{"wof:id":1763588281,"wof:name":"E3","mz:is_current":0},{"wof:id":1745882125,"wof:name":"D18","mz:is_current":0},{"wof:id":1763588291,"wof:name":"F3A","mz:is_current":0},{"wof:id":1763588279,"wof:name":"E2","mz:is_current":0},{"wof:id":1729792655,"wof:name":"G4","mz:is_current":0},{"wof:id":1763588283,"wof:name":"F1","mz:is_current":0},{"wof:id":1763588315,"wof:name":"F14","mz:is_current":0},{"wof:id":1763588297,"wof:name":"F6","mz:is_current":0},{"wof:id":1763588301,"wof:name":"F7","mz:is_current":0},{"wof:id":1729792663,"wof:name":"G10","mz:is_current":0},{"wof:id":1729792671,"wof:name":"G9","mz:is_current":0},{"wof:id":1763588317,"wof:name":"F15","mz:is_current":0},{"wof:id":1729792667,"wof:name":"G8","mz:is_current":0},{"wof:id":1763588303,"wof:name":"F9","mz:is_current":0},{"wof:id":1763588285,"wof:name":"F3","mz:is_current":0},{"wof:id":1729792659,"wof:name":"G6","mz:is_current":0},{"wof:id":1763588299,"wof:name":"F8","mz:is_current":0},{"wof:id":1763588323,"wof:name":"F18","mz:is_current":0},{"wof:id":1763588333,"wof:name":"F22","mz:is_current":0},{"wof:id":1729792669,"wof:name":"G11","mz:is_current":0},{"wof:id":1729792673,"wof:name":"G12","mz:is_current":0},{"wof:id":1763588319,"wof:name":"F16","mz:is_current":0},{"wof:id":1763588287,"wof:name":"F2","mz:is_current":0},{"wof:id":1763588325,"wof:name":"F19","mz:is_current":0},{"wof:id":1763588339,"wof:name":"E5","mz:is_current":0},{"wof:id":1729792677,"wof:name":"G14","mz:is_current":0},{"wof:id":1763588305,"wof:name":"F10","mz:is_current":0},{"wof:id":1763588329,"wof:name":"F21","mz:is_current":0},{"wof:id":1763588353,"wof:name":"E11","mz:is_current":0},{"wof:id":1763588341,"wof:name":"E6","mz:is_current":0},{"wof:id":1763588309,"wof:name":"F13","mz:is_current":0},{"wof:id":1763588355,"wof:name":"E12","mz:is_current":0},{"wof:id":1763588343,"wof:name":"E7","mz:is_current":0},{"wof:id":1763588401,"wof:name":"A1","mz:is_current":0},{"wof:id":1763588345,"wof:name":"E8","mz:is_current":0},{"wof:id":1763588381,"wof:name":"A6","mz:is_current":0},{"wof:id":1763588357,"wof:name":"E13","mz:is_current":0},{"wof:id":1763588405,"wof:name":"A2","mz:is_current":0},{"wof:id":1763588411,"wof:name":"A6","mz:is_current":0},{"wof:id":1763588395,"wof:name":"A5","mz:is_current":0},{"wof:id":1763588407,"wof:name":"A4","mz:is_current":0},{"wof:id":1763588413,"wof:name":"A8","mz:is_current":0},{"wof:id":1763588347,"wof:name":"E10","mz:is_current":0},{"wof:id":1763588409,"wof:name":"A5","mz:is_current":0},{"wof:id":1763588373,"wof:name":"A11","mz:is_current":0},{"wof:id":1763588415,"wof:name":"A7","mz:is_current":0},{"wof:id":1763588375,"wof:name":"A10","mz:is_current":0},{"wof:id":1763588397,"wof:name":"A12","mz:is_current":0},{"wof:id":1763588377,"wof:name":"A4","mz:is_current":0},{"wof:id":1729792723,"wof:name":"B10","mz:is_current":0},{"wof:id":1729792725,"wof:name":"B25","mz:is_current":0},{"wof:id":1763588417,"wof:name":"A9","mz:is_current":0},{"wof:id":1763588399,"wof:name":"A3","mz:is_current":0},{"wof:id":1763588383,"wof:name":"A7","mz:is_current":0},{"wof:id":1729792729,"wof:name":"B24","mz:is_current":0},{"wof:id":1763588389,"wof:name":"A1","mz:is_current":0},{"wof:id":1729792731,"wof:name":"C1","mz:is_current":0},{"wof:id":1763588379,"wof:name":"A9","mz:is_current":0},{"wof:id":1729792739,"wof:name":"B22","mz:is_current":0},{"wof:id":1729792763,"wof:name":"B27","mz:is_current":0},{"wof:id":1729792757,"wof:name":"B2","mz:is_current":0},{"wof:id":1729792759,"wof:name":"B3","mz:is_current":0},{"wof:id":1729792741,"wof:name":"B21","mz:is_current":0},{"wof:id":1763588441,"wof:name":"G2","mz:is_current":0},{"wof:id":1729792747,"wof:name":"B5","mz:is_current":0},{"wof:id":1763588451,"wof:name":"G7","mz:is_current":0},{"wof:id":1729792749,"wof:name":"B4","mz:is_current":0},{"wof:id":1763588423,"wof:name":"A13","mz:is_current":0},{"wof:id":1763588443,"wof:name":"G3","mz:is_current":0},{"wof:id":1763588461,"wof:name":"G9","mz:is_current":0},{"wof:id":1745882171,"wof:name":"B26","mz:is_current":0},{"wof:id":1763588431,"wof:name":"A10","mz:is_current":0},{"wof:id":1763588453,"wof:name":"G10","mz:is_current":0},{"wof:id":1763588427,"wof:name":"A15","mz:is_current":0},{"wof:id":1763588463,"wof:name":"G12","mz:is_current":0},{"wof:id":1763588445,"wof:name":"G4","mz:is_current":0},{"wof:id":1745882173,"wof:name":"B22","mz:is_current":0},{"wof:id":1763588459,"wof:name":"G11","mz:is_current":0},{"wof:id":1763588429,"wof:name":"A11","mz:is_current":0},{"wof:id":1763588437,"wof:name":"G1","mz:is_current":0},{"wof:id":1763588465,"wof:name":"G13","mz:is_current":0},{"wof:id":1763588447,"wof:name":"G5","mz:is_current":0},{"wof:id":1745882175,"wof:name":"B21","mz:is_current":0},{"wof:id":1763588449,"wof:name":"G6","mz:is_current":0},{"wof:id":1376996231,"wof:name":"B28","mz:is_current":0},{"wof:id":1745882179,"wof:name":"B20","mz:is_current":0},{"wof:id":1745882183,"wof:name":"B4","mz:is_current":0},{"wof:id":1745882185,"wof:name":"B23","mz:is_current":0},{"wof:id":1745882187,"wof:name":"B16","mz:is_current":0},{"wof:id":1745882189,"wof:name":"B3","mz:is_current":0},{"wof:id":1745882213,"wof:name":"C9","mz:is_current":0},{"wof:id":1745882215,"wof:name":"C10","mz:is_current":0},{"wof:id":1745882231,"wof:name":"B2","mz:is_current":0},{"wof:id":1159157631,"wof:name":"A8","mz:is_current":0},{"wof:id":1159157633,"wof:name":"A9","mz:is_current":0},{"wof:id":1159157613,"wof:name":"A1","mz:is_current":0},{"wof:id":1745882241,"wof:name":"E1","mz:is_current":0},{"wof:id":1159157635,"wof:name":"A6","mz:is_current":0},{"wof:id":1159157611,"wof:name":"A3A","mz:is_current":0},{"wof:id":1159157615,"wof:name":"G101A","mz:is_current":0},{"wof:id":1159157617,"wof:name":"A1A","mz:is_current":0},{"wof:id":1159157603,"wof:name":"A10A","mz:is_current":0},{"wof:id":1159157605,"wof:name":"A11B","mz:is_current":0},{"wof:id":1159157629,"wof:name":"A11A","mz:is_current":0},{"wof:id":1159157609,"wof:name":"A2","mz:is_current":0},{"wof:id":1159157625,"wof:name":"B22","mz:is_current":0},{"wof:id":1159157607,"wof:name":"A12","mz:is_current":0},{"wof:id":1159157639,"wof:name":"A7","mz:is_current":0},{"wof:id":1159157627,"wof:name":"A11","mz:is_current":0},{"wof:id":1159157623,"wof:name":"G91","mz:is_current":0},{"wof:id":1159157621,"wof:name":"G95","mz:is_current":0},{"wof:id":1159157641,"wof:name":"A4","mz:is_current":0},{"wof:id":1159157681,"wof:name":"G99B","mz:is_current":0},{"wof:id":1159157643,"wof:name":"A5B","mz:is_current":0},{"wof:id":1159157661,"wof:name":"C44","mz:is_current":0},{"wof:id":1159157665,"wof:name":"F89","mz:is_current":0},{"wof:id":1159157667,"wof:name":"A1B","mz:is_current":0},{"wof:id":1159157649,"wof:name":"D53","mz:is_current":0},{"wof:id":1159157647,"wof:name":"E63","mz:is_current":0},{"wof:id":1159157663,"wof:name":"C46","mz:is_current":0},{"wof:id":1159157669,"wof:name":"F73A","mz:is_current":0},{"wof:id":1159157683,"wof:name":"G97","mz:is_current":0},{"wof:id":1159157645,"wof:name":"F79","mz:is_current":0},{"wof:id":1159157671,"wof:name":"F86","mz:is_current":0},{"wof:id":1745882407,"wof:name":"G2","mz:is_current":0},{"wof:id":1159157685,"wof:name":"G100","mz:is_current":0},{"wof:id":1159157651,"wof:name":"D58B","mz:is_current":0},{"wof:id":1159157689,"wof:name":"F84B","mz:is_current":0},{"wof:id":1159157675,"wof:name":"F87","mz:is_current":0},{"wof:id":1159157653,"wof:name":"E65","mz:is_current":0},{"wof:id":1159157677,"wof:name":"G102","mz:is_current":0},{"wof:id":1159157687,"wof:name":"G98","mz:is_current":0},{"wof:id":1159157679,"wof:name":"G99A","mz:is_current":0},{"wof:id":1159157657,"wof:name":"G96","mz:is_current":0},{"wof:id":1159157707,"wof:name":"C45B","mz:is_current":0},{"wof:id":1159157659,"wof:name":"F73","mz:is_current":0},{"wof:id":1159157693,"wof:name":"F84D","mz:is_current":0},{"wof:id":1159157703,"wof:name":"D51A","mz:is_current":0},{"wof:id":1159157701,"wof:name":"D50A","mz:is_current":0},{"wof:id":1159157731,"wof:name":"F70A","mz:is_current":0},{"wof:id":1159157713,"wof:name":"B25","mz:is_current":0},{"wof:id":1159157735,"wof:name":"E65A","mz:is_current":0},{"wof:id":1159157705,"wof:name":"D51B","mz:is_current":0},{"wof:id":1159157715,"wof:name":"B24","mz:is_current":0},{"wof:id":1159157719,"wof:name":"G101B","mz:is_current":0},{"wof:id":1159157711,"wof:name":"C42","mz:is_current":0},{"wof:id":1159157717,"wof:name":"A3","mz:is_current":0},{"wof:id":1159157737,"wof:name":"E64A","mz:is_current":0},{"wof:id":1159157733,"wof:name":"E67","mz:is_current":0},{"wof:id":1159157739,"wof:name":"F77C","mz:is_current":0},{"wof:id":1159157741,"wof:name":"F90","mz:is_current":0},{"wof:id":1159157721,"wof:name":"F70","mz:is_current":0},{"wof:id":1159157743,"wof:name":"C48","mz:is_current":0},{"wof:id":1159157729,"wof:name":"F76","mz:is_current":0},{"wof:id":1159157697,"wof:name":"F74","mz:is_current":0},{"wof:id":1159157761,"wof:name":"F82","mz:is_current":0},{"wof:id":1159157695,"wof:name":"F84C","mz:is_current":0},{"wof:id":1159157723,"wof:name":"F71A","mz:is_current":0},{"wof:id":1159157747,"wof:name":"C41","mz:is_current":0},{"wof:id":1159157767,"wof:name":"E61","mz:is_current":0},{"wof:id":1159157699,"wof:name":"E68","mz:is_current":0},{"wof:id":1159157769,"wof:name":"F77B","mz:is_current":0},{"wof:id":1159157725,"wof:name":"F71B","mz:is_current":0},{"wof:id":1159157765,"wof:name":"E60","mz:is_current":0},{"wof:id":1159157773,"wof:name":"D59","mz:is_current":0},{"wof:id":1159157749,"wof:name":"F85","mz:is_current":0},{"wof:id":1159157771,"wof:name":"E62","mz:is_current":0},{"wof:id":1159157775,"wof:name":"G93","mz:is_current":0},{"wof:id":1159157777,"wof:name":"G94","mz:is_current":0},{"wof:id":1159157755,"wof:name":"C45A","mz:is_current":0},{"wof:id":1159157779,"wof:name":"G92","mz:is_current":0},{"wof:id":1159157757,"wof:name":"F81","mz:is_current":0},{"wof:id":1159157751,"wof:name":"F88","mz:is_current":0},{"wof:id":1159157787,"wof:name":"E67A","mz:is_current":0},{"wof:id":1159157759,"wof:name":"E69","mz:is_current":0},{"wof:id":1159157783,"wof:name":"F75","mz:is_current":0},{"wof:id":1159157789,"wof:name":"E66","mz:is_current":0},{"wof:id":1159157785,"wof:name":"E64","mz:is_current":0},{"wof:id":1159157753,"wof:name":"C47","mz:is_current":0},{"wof:id":1914564389,"wof:name":"B18","mz:is_current":1},{"wof:id":1914564395,"wof:name":"B24","mz:is_current":1},{"wof:id":1914564403,"wof:name":"B10","mz:is_current":1},{"wof:id":1914564433,"wof:name":"B21","mz:is_current":1},{"wof:id":1914564443,"wof:name":"B23","mz:is_current":1},{"wof:id":1914564423,"wof:name":"B4","mz:is_current":1},{"wof:id":1914564415,"wof:name":"B8","mz:is_current":1},{"wof:id":1914564461,"wof:name":"B5","mz:is_current":1},{"wof:id":1914564473,"wof:name":"B2","mz:is_current":1},{"wof:id":1914564399,"wof:name":"B26","mz:is_current":1},{"wof:id":1914564453,"wof:name":"B3","mz:is_current":1},{"wof:id":1914564437,"wof:name":"B20","mz:is_current":1},{"wof:id":1914564407,"wof:name":"B19","mz:is_current":1},{"wof:id":1914564545,"wof:name":"D5","mz:is_current":1},{"wof:id":1914564561,"wof:name":"D15","mz:is_current":1},{"wof:id":1914564557,"wof:name":"D6","mz:is_current":1},{"wof:id":1914564513,"wof:name":"D2","mz:is_current":1},{"wof:id":1914564523,"wof:name":"D9","mz:is_current":1},{"wof:id":1914564569,"wof:name":"D17","mz:is_current":1},{"wof:id":1914564587,"wof:name":"C8","mz:is_current":1},{"wof:id":1914564517,"wof:name":"D7","mz:is_current":1},{"wof:id":1914564611,"wof:name":"C11","mz:is_current":1},{"wof:id":1914564603,"wof:name":"C3","mz:is_current":1},{"wof:id":1914564595,"wof:name":"C7","mz:is_current":1},{"wof:id":1914564497,"wof:name":"D4","mz:is_current":1},{"wof:id":1914564527,"wof:name":"D8","mz:is_current":1},{"wof:id":1914564599,"wof:name":"C4","mz:is_current":1},{"wof:id":1159157811,"wof:name":"B27","mz:is_current":0},{"wof:id":1159157791,"wof:name":"D58A","mz:is_current":0},{"wof:id":1159157843,"wof:name":"A3X","mz:is_current":0},{"wof:id":1159157831,"wof:name":"D54B","mz:is_current":0},{"wof:id":1159157841,"wof:name":"G99X","mz:is_current":0},{"wof:id":1159157793,"wof:name":"D55","mz:is_current":0},{"wof:id":1159157813,"wof:name":"B23","mz:is_current":0},{"wof:id":1159157845,"wof:name":"C42A","mz:is_current":0},{"wof:id":1159157833,"wof:name":"D54A","mz:is_current":0},{"wof:id":1159157837,"wof:name":"F84A","mz:is_current":0},{"wof:id":1159157795,"wof:name":"D56B","mz:is_current":0},{"wof:id":1159157849,"wof:name":"F87A","mz:is_current":0},{"wof:id":1159157847,"wof:name":"F77A","mz:is_current":0},{"wof:id":1159157819,"wof:name":"C48A","mz:is_current":0},{"wof:id":1159157815,"wof:name":"G99","mz:is_current":0},{"wof:id":1159157797,"wof:name":"D56A","mz:is_current":0},{"wof:id":1159157839,"wof:name":"D50B","mz:is_current":0},{"wof:id":1159157823,"wof:name":"A10","mz:is_current":0},{"wof:id":1159157827,"wof:name":"G101","mz:is_current":0},{"wof:id":1159157821,"wof:name":"F80","mz:is_current":0},{"wof:id":1159157825,"wof:name":"F72","mz:is_current":0},{"wof:id":1159157829,"wof:name":"D52","mz:is_current":0},{"wof:id":1159157807,"wof:name":"A3B","mz:is_current":0},{"wof:id":1159157803,"wof:name":"C43","mz:is_current":0},{"wof:id":1159157809,"wof:name":"B26","mz:is_current":0},{"wof:id":1159157801,"wof:name":"D57","mz:is_current":0},{"wof:id":1159157851,"wof:name":"E62A","mz:is_current":0},{"wof:id":1159157805,"wof:name":"A5","mz:is_current":0},{"wof:id":1159157855,"wof:name":"F78","mz:is_current":0},{"wof:id":1159157859,"wof:name":"B28","mz:is_current":0},{"wof:id":1159157857,"wof:name":"C40","mz:is_current":0},{"wof:id":1159157861,"wof:name":"F83","mz:is_current":0},{"wof:id":1477855615,"wof:name":"D52","mz:is_current":0},{"wof:id":1477855617,"wof:name":"D51A","mz:is_current":0},{"wof:id":1477855619,"wof:name":"D51B","mz:is_current":0},{"wof:id":1477855631,"wof:name":"D57","mz:is_current":0},{"wof:id":1477855639,"wof:name":"D50B","mz:is_current":0},{"wof:id":1477855637,"wof:name":"D54A","mz:is_current":0},{"wof:id":1477855635,"wof:name":"D53","mz:is_current":0},{"wof:id":1477855623,"wof:name":"D58B","mz:is_current":0},{"wof:id":1477855621,"wof:name":"D50A","mz:is_current":0},{"wof:id":1477855633,"wof:name":"D59","mz:is_current":0},{"wof:id":1477855641,"wof:name":"D54B","mz:is_current":0},{"wof:id":1477881719,"wof:name":"B6","mz:is_current":0},{"wof:id":1477855651,"wof:name":"D58A","mz:is_current":0},{"wof:id":1477855643,"wof:name":"D55","mz:is_current":0},{"wof:id":1477855645,"wof:name":"D56A","mz:is_current":0},{"wof:id":1477881731,"wof:name":"B13","mz:is_current":0},{"wof:id":1477855649,"wof:name":"D56B","mz:is_current":0},{"wof:id":1477881723,"wof:name":"B8","mz:is_current":0},{"wof:id":1477881737,"wof:name":"B18","mz:is_current":0},{"wof:id":1477881735,"wof:name":"B17","mz:is_current":0},{"wof:id":1477881721,"wof:name":"B7","mz:is_current":0},{"wof:id":1477881733,"wof:name":"B14","mz:is_current":0},{"wof:id":1477881727,"wof:name":"B12","mz:is_current":0},{"wof:id":1477881725,"wof:name":"B9","mz:is_current":0},{"wof:id":1477855707,"wof:name":"F84","mz:is_current":0},{"wof:id":1477855673,"wof:name":"C47","mz:is_current":0},{"wof:id":1477855675,"wof:name":"C45A","mz:is_current":0},{"wof:id":1477855705,"wof:name":"F77","mz:is_current":0},{"wof:id":1477855709,"wof:name":"F84D","mz:is_current":0},{"wof:id":1477855677,"wof:name":"C48","mz:is_current":0},{"wof:id":1477855671,"wof:name":"C45","mz:is_current":0},{"wof:id":1477855697,"wof:name":"C40","mz:is_current":0},{"wof:id":1477855691,"wof:name":"C43","mz:is_current":0},{"wof:id":1477855693,"wof:name":"C42A","mz:is_current":0},{"wof:id":1477855679,"wof:name":"C41","mz:is_current":0},{"wof:id":1477855695,"wof:name":"C48A","mz:is_current":0},{"wof:id":1477855685,"wof:name":"C45B","mz:is_current":0},{"wof:id":1477855681,"wof:name":"C42","mz:is_current":0},{"wof:id":1477855723,"wof:name":"F70","mz:is_current":0},{"wof:id":1477855687,"wof:name":"C46","mz:is_current":0},{"wof:id":1477855721,"wof:name":"F71B","mz:is_current":0},{"wof:id":1477855689,"wof:name":"C44","mz:is_current":0},{"wof:id":1477855711,"wof:name":"F74","mz:is_current":0},{"wof:id":1477855715,"wof:name":"F71A","mz:is_current":0},{"wof:id":1477855713,"wof:name":"F84C","mz:is_current":0},{"wof:id":1477855761,"wof:name":"F83","mz:is_current":0},{"wof:id":1477855757,"wof:name":"F73","mz:is_current":0},{"wof:id":1477855753,"wof:name":"F89","mz:is_current":0},{"wof:id":1477855751,"wof:name":"F73A","mz:is_current":0},{"wof:id":1477855735,"wof:name":"F88","mz:is_current":0},{"wof:id":1477855771,"wof:name":"F78","mz:is_current":0},{"wof:id":1477855775,"wof:name":"F87","mz:is_current":0},{"wof:id":1477855763,"wof:name":"F75","mz:is_current":0},{"wof:id":1477855759,"wof:name":"F84B","mz:is_current":0},{"wof:id":1477855733,"wof:name":"F81","mz:is_current":0},{"wof:id":1477855717,"wof:name":"F76","mz:is_current":0},{"wof:id":1477855769,"wof:name":"F77A","mz:is_current":0},{"wof:id":1477855765,"wof:name":"F79","mz:is_current":0},{"wof:id":1477855739,"wof:name":"F85","mz:is_current":0},{"wof:id":1477855741,"wof:name":"F90","mz:is_current":0},{"wof:id":1477855767,"wof:name":"F87A","mz:is_current":0},{"wof:id":1477855743,"wof:name":"F77B","mz:is_current":0},{"wof:id":1477855777,"wof:name":"F86","mz:is_current":0},{"wof:id":1477855747,"wof:name":"F72","mz:is_current":0},{"wof:id":1477855779,"wof:name":"F77C","mz:is_current":0},{"wof:id":1477855745,"wof:name":"F82","mz:is_current":0},{"wof:id":1477855749,"wof:name":"F80","mz:is_current":0},{"wof:id":1477855783,"wof:name":"F84A","mz:is_current":0},{"wof:id":1477855781,"wof:name":"F70A","mz:is_current":0},{"wof:id":1477855793,"wof:name":"E69","mz:is_current":0},{"wof:id":1477855797,"wof:name":"E60","mz:is_current":0},{"wof:id":1477855795,"wof:name":"E61","mz:is_current":0},{"wof:id":1477855799,"wof:name":"E65","mz:is_current":0},{"wof:id":1477855801,"wof:name":"E66","mz:is_current":0},{"wof:id":1477855803,"wof:name":"E67A","mz:is_current":0},{"wof:id":1477855789,"wof:name":"E68","mz:is_current":0},{"wof:id":1477855807,"wof:name":"E62","mz:is_current":0},{"wof:id":1477855805,"wof:name":"E64","mz:is_current":0},{"wof:id":1477921767,"wof:name":"D59B","mz:is_current":0},{"wof:id":1477921769,"wof:name":"D59C","mz:is_current":0},{"wof:id":1477921773,"wof:name":"F76B","mz:is_current":0},{"wof:id":1477921771,"wof:name":"F76A","mz:is_current":0},{"wof:id":1477855811,"wof:name":"E63","mz:is_current":0},{"wof:id":1477921765,"wof:name":"D59A","mz:is_current":0},{"wof:id":1477855815,"wof:name":"E67","mz:is_current":0},{"wof:id":1477855841,"wof:name":"A1","mz:is_current":0},{"wof:id":1477855813,"wof:name":"E62A","mz:is_current":0},{"wof:id":1477855843,"wof:name":"A1A","mz:is_current":0},{"wof:id":1477855819,"wof:name":"E65A","mz:is_current":0},{"wof:id":1477855817,"wof:name":"E64A","mz:is_current":0},{"wof:id":1477855847,"wof:name":"A3A","mz:is_current":0},{"wof:id":1477855849,"wof:name":"A3","mz:is_current":0},{"wof:id":1477855837,"wof:name":"A11A","mz:is_current":0},{"wof:id":1477855839,"wof:name":"A11","mz:is_current":0},{"wof:id":1477855853,"wof:name":"A1B","mz:is_current":0},{"wof:id":1477855851,"wof:name":"A10","mz:is_current":0},{"wof:id":1477855859,"wof:name":"A5B","mz:is_current":0},{"wof:id":1477930321,"wof:name":"C4","mz:is_current":0},{"wof:id":1477855857,"wof:name":"A5","mz:is_current":0},{"wof:id":1477930331,"wof:name":"C8","mz:is_current":0},{"wof:id":1477930323,"wof:name":"C5","mz:is_current":0},{"wof:id":1477855855,"wof:name":"A3B","mz:is_current":0},{"wof:id":1477930327,"wof:name":"C7","mz:is_current":0},{"wof:id":1477930325,"wof:name":"C6","mz:is_current":0},{"wof:id":1477930335,"wof:name":"C10","mz:is_current":0},{"wof:id":1477930337,"wof:name":"C11","mz:is_current":0},{"wof:id":1477930339,"wof:name":"D1","mz:is_current":0},{"wof:id":1477930333,"wof:name":"C9","mz:is_current":0},{"wof:id":1477930341,"wof:name":"D2","mz:is_current":0},{"wof:id":1477930291,"wof:name":"A5","mz:is_current":0},{"wof:id":1477855865,"wof:name":"A10A","mz:is_current":0},{"wof:id":1477855861,"wof:name":"A4","mz:is_current":0},{"wof:id":1477930295,"wof:name":"A6","mz:is_current":0},{"wof:id":1477855869,"wof:name":"A12","mz:is_current":0},{"wof:id":1477930297,"wof:name":"A7","mz:is_current":0},{"wof:id":1477855873,"wof:name":"A3X","mz:is_current":0},{"wof:id":1477930299,"wof:name":"A8","mz:is_current":0},{"wof:id":1477855867,"wof:name":"A2","mz:is_current":0},{"wof:id":1477930301,"wof:name":"A9","mz:is_current":0},{"wof:id":1477930349,"wof:name":"D5","mz:is_current":0},{"wof:id":1477855871,"wof:name":"A11B","mz:is_current":0},{"wof:id":1477930307,"wof:name":"A12","mz:is_current":0},{"wof:id":1477855877,"wof:name":"A7","mz:is_current":0},{"wof:id":1477855875,"wof:name":"A9","mz:is_current":0},{"wof:id":1477930345,"wof:name":"D4","mz:is_current":0},{"wof:id":1477930343,"wof:name":"D3","mz:is_current":0},{"wof:id":1477930309,"wof:name":"A13","mz:is_current":0},{"wof:id":1477930351,"wof:name":"D6","mz:is_current":0},{"wof:id":1477930305,"wof:name":"A11","mz:is_current":0},{"wof:id":1477930357,"wof:name":"D9","mz:is_current":0},{"wof:id":1477930355,"wof:name":"D8","mz:is_current":0},{"wof:id":1477930281,"wof:name":"A1","mz:is_current":0},{"wof:id":1477930303,"wof:name":"A10","mz:is_current":0},{"wof:id":1477855879,"wof:name":"A6","mz:is_current":0},{"wof:id":1477855883,"wof:name":"A8","mz:is_current":0},{"wof:id":1477930359,"wof:name":"D10","mz:is_current":0},{"wof:id":1477930289,"wof:name":"A4","mz:is_current":0},{"wof:id":1477930283,"wof:name":"A2","mz:is_current":0},{"wof:id":1477930287,"wof:name":"A3","mz:is_current":0},{"wof:id":1477930353,"wof:name":"D7","mz:is_current":0},{"wof:id":1477855887,"wof:name":"G91","mz:is_current":0},{"wof:id":1477855891,"wof:name":"G101A","mz:is_current":0},{"wof:id":1477855889,"wof:name":"G95","mz:is_current":0},{"wof:id":1477930315,"wof:name":"A15","mz:is_current":0},{"wof:id":1477930319,"wof:name":"C3","mz:is_current":0},{"wof:id":1477930317,"wof:name":"C2","mz:is_current":0},{"wof:id":1477855893,"wof:name":"G101B","mz:is_current":0},{"wof:id":1477930313,"wof:name":"A14","mz:is_current":0},{"wof:id":1477855895,"wof:name":"G101","mz:is_current":0},{"wof:id":1360832519,"wof:name":"C45","mz:is_current":0},{"wof:id":1477930361,"wof:name":"D11","mz:is_current":0},{"wof:id":1477855921,"wof:name":"G99A","mz:is_current":0},{"wof:id":1477930367,"wof:name":"D14","mz:is_current":0},{"wof:id":1477930363,"wof:name":"D12","mz:is_current":0},{"wof:id":1477855923,"wof:name":"G102","mz:is_current":0},{"wof:id":1477855897,"wof:name":"G96","mz:is_current":0},{"wof:id":1477930369,"wof:name":"D15","mz:is_current":0},{"wof:id":1477855901,"wof:name":"G97","mz:is_current":0},{"wof:id":1360832521,"wof:name":"F84","mz:is_current":0},{"wof:id":1477855903,"wof:name":"G98","mz:is_current":0},{"wof:id":1477855905,"wof:name":"G100","mz:is_current":0},{"wof:id":1477855909,"wof:name":"G92","mz:is_current":0},{"wof:id":1477855907,"wof:name":"G99B","mz:is_current":0},{"wof:id":1477930371,"wof:name":"D16","mz:is_current":0},{"wof:id":1477930373,"wof:name":"D17","mz:is_current":0},{"wof:id":1360832523,"wof:name":"F77","mz:is_current":0},{"wof:id":1477855913,"wof:name":"G93","mz:is_current":0},{"wof:id":1477855911,"wof:name":"G94","mz:is_current":0},{"wof:id":1477855915,"wof:name":"G99X","mz:is_current":0},{"wof:id":1477855919,"wof:name":"G99","mz:is_current":0},{"wof:id":1477930375,"wof:name":"D18","mz:is_current":0},{"wof:id":1477930379,"wof:name":"E2","mz:is_current":0},{"wof:id":1477930377,"wof:name":"E1","mz:is_current":0},{"wof:id":1477930411,"wof:name":"F3","mz:is_current":0},{"wof:id":1477930413,"wof:name":"F3A","mz:is_current":0},{"wof:id":1477930403,"wof:name":"E12","mz:is_current":0},{"wof:id":1477930421,"wof:name":"F5","mz:is_current":0},{"wof:id":1477930431,"wof:name":"F10","mz:is_current":0},{"wof:id":1477930423,"wof:name":"F6","mz:is_current":0},{"wof:id":1477930405,"wof:name":"E13","mz:is_current":0},{"wof:id":1477930415,"wof:name":"F4","mz:is_current":0},{"wof:id":1477930427,"wof:name":"F8","mz:is_current":0},{"wof:id":1477930417,"wof:name":"F5","mz:is_current":0},{"wof:id":1477930407,"wof:name":"F1","mz:is_current":0},{"wof:id":1477930381,"wof:name":"E3","mz:is_current":0},{"wof:id":1477930391,"wof:name":"E7","mz:is_current":0},{"wof:id":1477930429,"wof:name":"F9","mz:is_current":0},{"wof:id":1477930397,"wof:name":"E10","mz:is_current":0},{"wof:id":1477930425,"wof:name":"F7","mz:is_current":0},{"wof:id":1477930393,"wof:name":"E8","mz:is_current":0},{"wof:id":1477930395,"wof:name":"E9","mz:is_current":0},{"wof:id":1477930387,"wof:name":"E5","mz:is_current":0},{"wof:id":1477930409,"wof:name":"F2","mz:is_current":0},{"wof:id":1477930389,"wof:name":"E6","mz:is_current":0},{"wof:id":1477930385,"wof:name":"E4","mz:is_current":0},{"wof:id":1477930457,"wof:name":"F21","mz:is_current":0},{"wof:id":1477930443,"wof:name":"F15","mz:is_current":0},{"wof:id":1477930441,"wof:name":"F14","mz:is_current":0},{"wof:id":1477930451,"wof:name":"F19","mz:is_current":0},{"wof:id":1477930447,"wof:name":"F17","mz:is_current":0},{"wof:id":1477930453,"wof:name":"F20","mz:is_current":0},{"wof:id":1477930399,"wof:name":"E11","mz:is_current":0},{"wof:id":1477930445,"wof:name":"F16","mz:is_current":0},{"wof:id":1477930449,"wof:name":"F18","mz:is_current":0},{"wof:id":1477930439,"wof:name":"F13","mz:is_current":0},{"wof:id":1477930435,"wof:name":"F12","mz:is_current":0},{"wof:id":1477930461,"wof:name":"G1","mz:is_current":0},{"wof:id":1477930459,"wof:name":"F22","mz:is_current":0},{"wof:id":1477930483,"wof:name":"G11","mz:is_current":0},{"wof:id":1477930467,"wof:name":"G4","mz:is_current":0},{"wof:id":1477930481,"wof:name":"G10","mz:is_current":0},{"wof:id":1477930433,"wof:name":"F11","mz:is_current":0},{"wof:id":1477930463,"wof:name":"G2","mz:is_current":0},{"wof:id":1477930469,"wof:name":"G5","mz:is_current":0},{"wof:id":1477930465,"wof:name":"G3","mz:is_current":0},{"wof:id":1477930485,"wof:name":"G12","mz:is_current":0},{"wof:id":1477930487,"wof:name":"G13","mz:is_current":0},{"wof:id":1477930489,"wof:name":"G14","mz:is_current":0},{"wof:id":1477930471,"wof:name":"G6","mz:is_current":0},{"wof:id":1477930475,"wof:name":"G7","mz:is_current":0},{"wof:id":1477930479,"wof:name":"G9","mz:is_current":0},{"wof:id":1477930477,"wof:name":"G8","mz:is_current":0},{"wof:id":1729792399,"wof:name":"D3","mz:is_current":0},{"wof:id":1729792393,"wof:name":"D1","mz:is_current":0},{"wof:id":1729792397,"wof:name":"D2","mz:is_current":0},{"wof:id":1729792401,"wof:name":"D4","mz:is_current":0},{"wof:id":1729792403,"wof:name":"D5","mz:is_current":0},{"wof:id":1729792405,"wof:name":"D6","mz:is_current":0},{"wof:id":1729792409,"wof:name":"D8","mz:is_current":0},{"wof:id":1729792407,"wof:name":"D7","mz:is_current":0},{"wof:id":1729792411,"wof:name":"D9","mz:is_current":0},{"wof:id":1729792415,"wof:name":"D11","mz:is_current":0},{"wof:id":1729792419,"wof:name":"D12","mz:is_current":0},{"wof:id":1729792417,"wof:name":"D10","mz:is_current":0},{"wof:id":1729792421,"wof:name":"D14","mz:is_current":0},{"wof:id":1729792423,"wof:name":"D15","mz:is_current":0},{"wof:id":1729792441,"wof:name":"B7","mz:is_current":0},{"wof:id":1729792443,"wof:name":"B8","mz:is_current":0},{"wof:id":1729792447,"wof:name":"B12","mz:is_current":0},{"wof:id":1729792425,"wof:name":"D16","mz:is_current":0},{"wof:id":1729792429,"wof:name":"D18","mz:is_current":0},{"wof:id":1729792439,"wof:name":"B6","mz:is_current":0},{"wof:id":1729792453,"wof:name":"B14","mz:is_current":0},{"wof:id":1729792427,"wof:name":"D17","mz:is_current":0},{"wof:id":1729792451,"wof:name":"B13","mz:is_current":0},{"wof:id":1729792445,"wof:name":"B9","mz:is_current":0},{"wof:id":1729792471,"wof:name":"C6","mz:is_current":0},{"wof:id":1729792455,"wof:name":"B17","mz:is_current":0},{"wof:id":1729792457,"wof:name":"B18","mz:is_current":0},{"wof:id":1729792473,"wof:name":"C7","mz:is_current":0},{"wof:id":1729792461,"wof:name":"C2","mz:is_current":0},{"wof:id":1729792491,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792463,"wof:name":"C4","mz:is_current":0},{"wof:id":1729792465,"wof:name":"C3","mz:is_current":0},{"wof:id":1729792481,"wof:name":"C11","mz:is_current":0},{"wof:id":1729792477,"wof:name":"C9","mz:is_current":0},{"wof:id":1729792475,"wof:name":"C8","mz:is_current":0},{"wof:id":1729792493,"wof:name":"E1","mz:is_current":0},{"wof:id":1729792479,"wof:name":"C10","mz:is_current":0},{"wof:id":1729792469,"wof:name":"C5","mz:is_current":0},{"wof:id":1729792499,"wof:name":"F1","mz:is_current":0},{"wof:id":1729792497,"wof:name":"E3","mz:is_current":0},{"wof:id":1729792501,"wof:name":"F2","mz:is_current":0},{"wof:id":1729792511,"wof:name":"F5","mz:is_current":0},{"wof:id":1729792513,"wof:name":"F6","mz:is_current":0},{"wof:id":1729792495,"wof:name":"E2","mz:is_current":0},{"wof:id":1729792505,"wof:name":"F3","mz:is_current":0},{"wof:id":1729792515,"wof:name":"F7","mz:is_current":0},{"wof:id":1729792519,"wof:name":"F9","mz:is_current":0},{"wof:id":1729792517,"wof:name":"F8","mz:is_current":0},{"wof:id":1729792507,"wof:name":"F4","mz:is_current":0},{"wof:id":1729792509,"wof:name":"F3A","mz:is_current":0},{"wof:id":1729792525,"wof:name":"F11","mz:is_current":0},{"wof:id":1729792523,"wof:name":"F10","mz:is_current":0},{"wof:id":1729792531,"wof:name":"F14","mz:is_current":0},{"wof:id":1729792533,"wof:name":"F15","mz:is_current":0},{"wof:id":1729792527,"wof:name":"F13","mz:is_current":0},{"wof:id":1729792529,"wof:name":"F12","mz:is_current":0},{"wof:id":1729792535,"wof:name":"F16","mz:is_current":0},{"wof:id":1729792537,"wof:name":"F17","mz:is_current":0},{"wof:id":1729792583,"wof:name":"A2","mz:is_current":0},{"wof:id":1729792561,"wof:name":"E7","mz:is_current":0},{"wof:id":1729792585,"wof:name":"A4","mz:is_current":0},{"wof:id":1729792563,"wof:name":"E8","mz:is_current":0},{"wof:id":1729792541,"wof:name":"F18","mz:is_current":0},{"wof:id":1729792545,"wof:name":"F20","mz:is_current":0},{"wof:id":1729792587,"wof:name":"A5","mz:is_current":0},{"wof:id":1729792543,"wof:name":"F19","mz:is_current":0},{"wof:id":1729792599,"wof:name":"A8","mz:is_current":0},{"wof:id":1729792589,"wof:name":"A7","mz:is_current":0},{"wof:id":1729792595,"wof:name":"A10","mz:is_current":0},{"wof:id":1729792605,"wof:name":"A3","mz:is_current":0},{"wof:id":1729792607,"wof:name":"A1","mz:is_current":0},{"wof:id":1729792625,"wof:name":"A7","mz:is_current":0},{"wof:id":1729792641,"wof:name":"A15","mz:is_current":0},{"wof:id":1729792639,"wof:name":"A14","mz:is_current":0},{"wof:id":1729792609,"wof:name":"A1","mz:is_current":0},{"wof:id":1763588191,"wof:name":"B13","mz:is_current":0},{"wof:id":1763588161,"wof:name":"D17","mz:is_current":0},{"wof:id":1763588179,"wof:name":"B6","mz:is_current":0},{"wof:id":1763588193,"wof:name":"B14","mz:is_current":0},{"wof:id":1763588181,"wof:name":"B7","mz:is_current":0},{"wof:id":1763588221,"wof:name":"B23","mz:is_current":0},{"wof:id":1763588225,"wof:name":"B19","mz:is_current":0},{"wof:id":1763588219,"wof:name":"B21","mz:is_current":0},{"wof:id":1763588231,"wof:name":"B3","mz:is_current":0},{"wof:id":1763588217,"wof:name":"B27","mz:is_current":0},{"wof:id":1763588245,"wof:name":"C6","mz:is_current":0},{"wof:id":1763588251,"wof:name":"C9","mz:is_current":1},{"wof:id":1729792651,"wof:name":"G2","mz:is_current":0},{"wof:id":1763588275,"wof:name":"E1","mz:is_current":0},{"wof:id":1763588321,"wof:name":"F17","mz:is_current":0},{"wof:id":1745882117,"wof:name":"D14","mz:is_current":0},{"wof:id":1763588311,"wof:name":"F12","mz:is_current":0},{"wof:id":1763588267,"wof:name":"B2","mz:is_current":0},{"wof:id":1763588293,"wof:name":"F5","mz:is_current":1},{"wof:id":1763588337,"wof:name":"E4","mz:is_current":1},{"wof:id":1763588327,"wof:name":"F20","mz:is_current":0},{"wof:id":1763588351,"wof:name":"E9","mz:is_current":0},{"wof:id":1729792657,"wof:name":"G5","mz:is_current":0},{"wof:id":1763588289,"wof:name":"F4","mz:is_current":0},{"wof:id":1763588307,"wof:name":"F11","mz:is_current":0},{"wof:id":1745882121,"wof:name":"D16","mz:is_current":0},{"wof:id":1763588393,"wof:name":"A3","mz:is_current":1},{"wof:id":1729792675,"wof:name":"G13","mz:is_current":0},{"wof:id":1763588391,"wof:name":"A8","mz:is_current":0},{"wof:id":1729792753,"wof:name":"B16","mz:is_current":0},{"wof:id":1729792735,"wof:name":"B1","mz:is_current":0},{"wof:id":1729792751,"wof:name":"B23","mz:is_current":0},{"wof:id":1729792727,"wof:name":"B11","mz:is_current":0},{"wof:id":1763588387,"wof:name":"A2","mz:is_current":0},{"wof:id":1729792761,"wof:name":"B15","mz:is_current":0},{"wof:id":1729792733,"wof:name":"B26","mz:is_current":0},{"wof:id":1763588419,"wof:name":"A12","mz:is_current":0},{"wof:id":1729792743,"wof:name":"B19","mz:is_current":0},{"wof:id":1763588467,"wof:name":"G14","mz:is_current":0},{"wof:id":1763588455,"wof:name":"G8","mz:is_current":0},{"wof:id":1763588425,"wof:name":"A14","mz:is_current":0},{"wof:id":1763588483,"wof:name":"B5","mz:is_current":0},{"wof:id":1729792745,"wof:name":"B20","mz:is_current":0},{"wof:id":1745882177,"wof:name":"B19","mz:is_current":0},{"wof:id":1745882211,"wof:name":"C8","mz:is_current":0},{"wof:id":1745882219,"wof:name":"C11","mz:is_current":0},{"wof:id":1745882239,"wof:name":"F5","mz:is_current":0},{"wof:id":1745882247,"wof:name":"F1","mz:is_current":0},{"wof:id":1745882311,"wof:name":"E8","mz:is_current":0},{"wof:id":1745882245,"wof:name":"E3","mz:is_current":0},{"wof:id":1745882243,"wof:name":"E2","mz:is_current":0},{"wof:id":1745882313,"wof:name":"E9","mz:is_current":0},{"wof:id":1745882249,"wof:name":"F2","mz:is_current":0},{"wof:id":1745882315,"wof:name":"E10","mz:is_current":0},{"wof:id":1745882317,"wof:name":"E11","mz:is_current":0},{"wof:id":1745882319,"wof:name":"E12","mz:is_current":0},{"wof:id":1745882381,"wof:name":"A8","mz:is_current":0},{"wof:id":1745882339,"wof:name":"A2","mz:is_current":0},{"wof:id":1745882387,"wof:name":"A10","mz:is_current":0},{"wof:id":1745882383,"wof:name":"A7","mz:is_current":0},{"wof:id":1745882389,"wof:name":"A12","mz:is_current":0},{"wof:id":1745882385,"wof:name":"A9","mz:is_current":0},{"wof:id":1745882409,"wof:name":"G3","mz:is_current":0},{"wof:id":1745882405,"wof:name":"G1","mz:is_current":0},{"wof:id":1914564003,"wof:name":"A14","mz:is_current":1},{"wof:id":1914564019,"wof:name":"A9","mz:is_current":1},{"wof:id":1914564007,"wof:name":"A8","mz:is_current":1},{"wof:id":1914564027,"wof:name":"A2","mz:is_current":1},{"wof:id":1914564009,"wof:name":"A15","mz:is_current":1},{"wof:id":1914564031,"wof:name":"A4","mz:is_current":1},{"wof:id":1914564023,"wof:name":"A12","mz:is_current":1},{"wof:id":1914564013,"wof:name":"A11","mz:is_current":1},{"wof:id":1914564085,"wof:name":"G12","mz:is_current":1},{"wof:id":1914564081,"wof:name":"G8","mz:is_current":1},{"wof:id":1914564053,"wof:name":"A1","mz:is_current":1},{"wof:id":1914564041,"wof:name":"A13","mz:is_current":1},{"wof:id":1914564049,"wof:name":"A10","mz:is_current":1},{"wof:id":1914564045,"wof:name":"A6","mz:is_current":1},{"wof:id":1914564037,"wof:name":"A5","mz:is_current":1},{"wof:id":1914564077,"wof:name":"G10","mz:is_current":1},{"wof:id":1914564073,"wof:name":"G1","mz:is_current":1},{"wof:id":1914564095,"wof:name":"G13","mz:is_current":1},{"wof:id":1914564103,"wof:name":"G3","mz:is_current":1},{"wof:id":1914564113,"wof:name":"G5","mz:is_current":1},{"wof:id":1914564091,"wof:name":"G11","mz:is_current":1},{"wof:id":1914564117,"wof:name":"G6","mz:is_current":1},{"wof:id":1914564109,"wof:name":"G4","mz:is_current":1},{"wof:id":1914564099,"wof:name":"G14","mz:is_current":1},{"wof:id":1914564119,"wof:name":"G2","mz:is_current":1},{"wof:id":1914564127,"wof:name":"G7","mz:is_current":1},{"wof:id":1914564131,"wof:name":"G9","mz:is_current":1},{"wof:id":1914564171,"wof:name":"F15","mz:is_current":1},{"wof:id":1914564167,"wof:name":"F14","mz:is_current":1},{"wof:id":1914564179,"wof:name":"F16","mz:is_current":1},{"wof:id":1914564183,"wof:name":"F13","mz:is_current":1},{"wof:id":1914564201,"wof:name":"F12","mz:is_current":1},{"wof:id":1914564197,"wof:name":"E1","mz:is_current":1},{"wof:id":1914564187,"wof:name":"F9","mz:is_current":1},{"wof:id":1914564205,"wof:name":"E2","mz:is_current":1},{"wof:id":1914564209,"wof:name":"F17","mz:is_current":1},{"wof:id":1914564229,"wof:name":"F21","mz:is_current":1},{"wof:id":1914564239,"wof:name":"F3","mz:is_current":1},{"wof:id":1914564235,"wof:name":"F1","mz:is_current":1},{"wof:id":1914564217,"wof:name":"F18","mz:is_current":1},{"wof:id":1914564225,"wof:name":"F20","mz:is_current":1},{"wof:id":1914564191,"wof:name":"F11","mz:is_current":1},{"wof:id":1914564221,"wof:name":"F19","mz:is_current":1},{"wof:id":1914564253,"wof:name":"F6","mz:is_current":1},{"wof:id":1914564247,"wof:name":"F4","mz:is_current":1},{"wof:id":1914564273,"wof:name":"F22","mz:is_current":1},{"wof:id":1914564243,"wof:name":"F2","mz:is_current":1},{"wof:id":1914564257,"wof:name":"F8","mz:is_current":1},{"wof:id":1914564261,"wof:name":"E3","mz:is_current":1},{"wof:id":1914564263,"wof:name":"F7","mz:is_current":1},{"wof:id":1914564289,"wof:name":"E6","mz:is_current":1},{"wof:id":1914564269,"wof:name":"F10","mz:is_current":1},{"wof:id":1914564277,"wof:name":"F3A","mz:is_current":1},{"wof:id":1914564291,"wof:name":"E11","mz:is_current":1},{"wof:id":1914564297,"wof:name":"E12","mz:is_current":1},{"wof:id":1914564301,"wof:name":"E13","mz:is_current":1},{"wof:id":1914564317,"wof:name":"E5","mz:is_current":1},{"wof:id":1914564325,"wof:name":"E9","mz:is_current":1},{"wof:id":1914564313,"wof:name":"E10","mz:is_current":1},{"wof:id":1914564353,"wof:name":"B12","mz:is_current":1},{"wof:id":1914564305,"wof:name":"E7","mz:is_current":1},{"wof:id":1914564311,"wof:name":"E8","mz:is_current":1},{"wof:id":1914564361,"wof:name":"B16","mz:is_current":1},{"wof:id":1914564371,"wof:name":"B14","mz:is_current":1},{"wof:id":1914564377,"wof:name":"B6","mz:is_current":1},{"wof:id":1914564381,"wof:name":"B17","mz:is_current":1},{"wof:id":1914564369,"wof:name":"B15","mz:is_current":1},{"wof:id":1914564419,"wof:name":"B22","mz:is_current":1},{"wof:id":1914564441,"wof:name":"B25","mz:is_current":1},{"wof:id":1914564385,"wof:name":"B11","mz:is_current":1},{"wof:id":1914564451,"wof:name":"B7","mz:is_current":1},{"wof:id":1914564365,"wof:name":"B13","mz:is_current":1},{"wof:id":1914564427,"wof:name":"B27","mz:is_current":1},{"wof:id":1914564457,"wof:name":"B9","mz:is_current":1},{"wof:id":1914564531,"wof:name":"D11","mz:is_current":1},{"wof:id":1914564535,"wof:name":"D10","mz:is_current":1},{"wof:id":1914564505,"wof:name":"D3","mz:is_current":1},{"wof:id":1914564567,"wof:name":"D18","mz:is_current":1},{"wof:id":1914564635,"wof:name":"C1","mz:is_current":1},{"wof:id":1914564549,"wof:name":"D16","mz:is_current":1},{"wof:id":1914564563,"wof:name":"D12","mz:is_current":1},{"wof:id":1914564579,"wof:name":"C5","mz:is_current":1},{"wof:id":1914564541,"wof:name":"D14","mz:is_current":1},{"wof:id":1914564651,"wof:name":"A3","mz:is_current":1},{"wof:id":1914564639,"wof:name":"B1","mz:is_current":1},{"wof:id":1914564643,"wof:name":"A7","mz:is_current":1},{"wof:id":1914564507,"wof:name":"D1","mz:is_current":1},{"wof:id":1914564583,"wof:name":"C6","mz:is_current":1},{"wof:id":1745882101,"wof:name":"D6","mz:is_current":0},{"wof:id":1745882103,"wof:name":"D7","mz:is_current":0},{"wof:id":1914564607,"wof:name":"C10","mz:is_current":1},{"wof:id":1745882157,"wof:name":"B17","mz:is_current":0},{"wof:id":1745882105,"wof:name":"D9","mz:is_current":0},{"wof:id":1745882107,"wof:name":"D8","mz:is_current":0},{"wof:id":1745882151,"wof:name":"B12","mz:is_current":0},{"wof:id":1745882155,"wof:name":"B14","mz:is_current":0},{"wof:id":1745882143,"wof:name":"B7","mz:is_current":0},{"wof:id":1745882153,"wof:name":"B13","mz:is_current":0},{"wof:id":1745882159,"wof:name":"B18","mz:is_current":0},{"wof:id":1745882161,"wof:name":"B10","mz:is_current":0},{"wof:id":1745882141,"wof:name":"B6","mz:is_current":0},{"wof:id":1745882147,"wof:name":"B8","mz:is_current":0},{"wof:id":1745882149,"wof:name":"B9","mz:is_current":0},{"wof:id":1745882165,"wof:name":"B25","mz:is_current":0},{"wof:id":1745882191,"wof:name":"B15","mz:is_current":0},{"wof:id":1745882169,"wof:name":"B24","mz:is_current":0},{"wof:id":1745882193,"wof:name":"B27","mz:is_current":0},{"wof:id":1745882197,"wof:name":"C2","mz:is_current":0},{"wof:id":1745882167,"wof:name":"B11","mz:is_current":0},{"wof:id":1745882205,"wof:name":"C5","mz:is_current":0},{"wof:id":1745882201,"wof:name":"C4","mz:is_current":0},{"wof:id":1745882203,"wof:name":"C3","mz:is_current":0},{"wof:id":1745882209,"wof:name":"C7","mz:is_current":0},{"wof:id":1745882207,"wof:name":"C6","mz:is_current":0},{"wof:id":1745882229,"wof:name":"B1","mz:is_current":1},{"wof:id":1745882301,"wof:name":"E4","mz:is_current":0},{"wof:id":1745882257,"wof:name":"F3A","mz:is_current":0},{"wof:id":1745882251,"wof:name":"F3","mz:is_current":0},{"wof:id":1745882255,"wof:name":"F4","mz:is_current":0},{"wof:id":1745882309,"wof:name":"E7","mz:is_current":0},{"wof:id":1745882259,"wof:name":"F5","mz:is_current":0},{"wof:id":1745882303,"wof:name":"E5","mz:is_current":0},{"wof:id":1745882321,"wof:name":"E13","mz:is_current":0},{"wof:id":1745882261,"wof:name":"F6","mz:is_current":0},{"wof:id":1745882305,"wof:name":"E6","mz:is_current":0},{"wof:id":1745882293,"wof:name":"F20","mz:is_current":0},{"wof:id":1745882291,"wof:name":"F19","mz:is_current":0},{"wof:id":1745882281,"wof:name":"F15","mz:is_current":0},{"wof:id":1745882283,"wof:name":"F16","mz:is_current":0},{"wof:id":1745882267,"wof:name":"F9","mz:is_current":0},{"wof:id":1745882273,"wof:name":"F11","mz:is_current":0},{"wof:id":1745882265,"wof:name":"F7","mz:is_current":0},{"wof:id":1745882295,"wof:name":"F21","mz:is_current":0},{"wof:id":1745882269,"wof:name":"F10","mz:is_current":0},{"wof:id":1745882279,"wof:name":"F14","mz:is_current":0},{"wof:id":1745882285,"wof:name":"F17","mz:is_current":0},{"wof:id":1745882297,"wof:name":"F22","mz:is_current":0},{"wof:id":1745882351,"wof:name":"A10","mz:is_current":0},{"wof:id":1745882277,"wof:name":"F12","mz:is_current":0},{"wof:id":1745882287,"wof:name":"F18","mz:is_current":0},{"wof:id":1745882275,"wof:name":"F13","mz:is_current":0},{"wof:id":1745882349,"wof:name":"A6","mz:is_current":0},{"wof:id":1745882357,"wof:name":"A12","mz:is_current":0},{"wof:id":1745882359,"wof:name":"A11","mz:is_current":0},{"wof:id":1745882341,"wof:name":"A4","mz:is_current":0},{"wof:id":1745882347,"wof:name":"A7","mz:is_current":0},{"wof:id":1745882355,"wof:name":"A8","mz:is_current":0},{"wof:id":1745882367,"wof:name":"A1","mz:is_current":0},{"wof:id":1745882263,"wof:name":"F8","mz:is_current":0},{"wof:id":1745882363,"wof:name":"A3","mz:is_current":0},{"wof:id":1745882391,"wof:name":"A11","mz:is_current":0},{"wof:id":1745882371,"wof:name":"A3","mz:is_current":0},{"wof:id":1745882373,"wof:name":"A4","mz:is_current":0},{"wof:id":1745882375,"wof:name":"A5","mz:is_current":0},{"wof:id":1745882377,"wof:name":"A6","mz:is_current":0},{"wof:id":1745882365,"wof:name":"A1","mz:is_current":0},{"wof:id":1745882353,"wof:name":"A9","mz:is_current":0},{"wof:id":1745882369,"wof:name":"A2","mz:is_current":0},{"wof:id":1745882395,"wof:name":"A14","mz:is_current":0},{"wof:id":1745882413,"wof:name":"G5","mz:is_current":0},{"wof:id":1745882393,"wof:name":"A13","mz:is_current":0},{"wof:id":1745882411,"wof:name":"G4","mz:is_current":0},{"wof:id":1745882419,"wof:name":"G7","mz:is_current":0},{"wof:id":1745882345,"wof:name":"A5","mz:is_current":0},{"wof:id":1745882421,"wof:name":"G10","mz:is_current":0},{"wof:id":1745882431,"wof:name":"G13","mz:is_current":0},{"wof:id":1745882399,"wof:name":"A15","mz:is_current":0},{"wof:id":1745882435,"wof:name":"G14","mz:is_current":0},{"wof:id":1745882417,"wof:name":"G6","mz:is_current":0},{"wof:id":1745882423,"wof:name":"G8","mz:is_current":0},{"wof:id":1745882425,"wof:name":"G11","mz:is_current":0},{"wof:id":1745882427,"wof:name":"G9","mz:is_current":0},{"wof:id":1745882429,"wof:name":"G12","mz:is_current":0},{"wof:id":1746415337,"wof:name":"C10R","mz:is_current":1},{"wof:id":1746415343,"wof:name":"G12S","mz:is_current":1},{"wof:id":1746415347,"wof:name":"F15M","mz:is_current":1},{"wof:id":1746415339,"wof:name":"A13R","mz:is_current":1},{"wof:id":1746415349,"wof:name":"C4U","mz:is_current":1},{"wof:id":1746415351,"wof:name":"C10T","mz:is_current":1},{"wof:id":1746415345,"wof:name":"G12V","mz:is_current":1},{"wof:id":1746415353,"wof:name":"A1V","mz:is_current":1},{"wof:id":1746415361,"wof:name":"A13V","mz:is_current":1},{"wof:id":1746415357,"wof:name":"G13R","mz:is_current":1},{"wof:id":1746415373,"wof:name":"B27V","mz:is_current":1},{"wof:id":1746415371,"wof:name":"A7T","mz:is_current":1},{"wof:id":1746415367,"wof:name":"G11R","mz:is_current":1},{"wof:id":1746415363,"wof:name":"E10V","mz:is_current":1},{"wof:id":1746415381,"wof:name":"A13S","mz:is_current":1},{"wof:id":1746415365,"wof:name":"A1T","mz:is_current":1},{"wof:id":1746415355,"wof:name":"E13T","mz:is_current":1},{"wof:id":1746415391,"wof:name":"A4R","mz:is_current":1},{"wof:id":1746415421,"wof:name":"E3K","mz:is_current":1},{"wof:id":1746415397,"wof:name":"G12T","mz:is_current":1},{"wof:id":1746415379,"wof:name":"F15N","mz:is_current":1},{"wof:id":1746415383,"wof:name":"G104","mz:is_current":1},{"wof:id":1746415385,"wof:name":"G13S","mz:is_current":1},{"wof:id":1746415369,"wof:name":"B23V","mz:is_current":1},{"wof:id":1746415375,"wof:name":"F15L","mz:is_current":1},{"wof:id":1746415393,"wof:name":"G14T","mz:is_current":1},{"wof:id":1746415405,"wof:name":"F15K","mz:is_current":1},{"wof:id":1746415401,"wof:name":"E3T","mz:is_current":1},{"wof:id":1746415399,"wof:name":"A6R","mz:is_current":1},{"wof:id":1746415403,"wof:name":"B20S","mz:is_current":1},{"wof:id":1746415411,"wof:name":"C4R","mz:is_current":1},{"wof:id":1746415387,"wof:name":"G103","mz:is_current":1},{"wof:id":1746415407,"wof:name":"G105","mz:is_current":1},{"wof:id":1746415419,"wof:name":"E10U","mz:is_current":1},{"wof:id":1746415415,"wof:name":"E11U","mz:is_current":1},{"wof:id":1746415409,"wof:name":"E11V","mz:is_current":1},{"wof:id":1746415389,"wof:name":"A6S","mz:is_current":1},{"wof:id":1746415425,"wof:name":"A14T","mz:is_current":1},{"wof:id":1746415423,"wof:name":"A4T","mz:is_current":1},{"wof:id":1746415417,"wof:name":"E13K","mz:is_current":1}] diff --git a/data/terminals.json b/data/terminals.json index 406de40..0341f50 100644 --- a/data/terminals.json +++ b/data/terminals.json @@ -1 +1 @@ -[{"wof:id":1745882085,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1745882137,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1745882233,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1763588175,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":1,"name:preferred":["T1"]},{"wof:id":1763588269,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":1,"name:preferred":["T3"]},{"wof:id":1745882335,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1763588369,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":1,"name:preferred":["International Terminal Building","ITB","ITM"]},{"wof:id":1159396109,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0},{"wof:id":1159396115,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396107,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396127,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396123,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396129,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159554815,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396121,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1159554817,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159554819,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159396131,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396133,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396135,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159554821,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159554827,"sfomuseum:terminal_id":"INTL","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396139,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159554829,"sfomuseum:terminal_id":"INTL","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396141,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396143,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396145,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159396149,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396151,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396147,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396153,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396159,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396157,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396165,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159157307,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1159396169,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396163,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396167,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396171,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159157317,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1159157325,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1159157333,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1360521543,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1360521545,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1477855607,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1477855657,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1477855699,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1729792389,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1729792435,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1729792487,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1477855833,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1729792579,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1763588123,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":1,"name:preferred":["Terminal 2"],"name:variant":["T2"]}] +[{"wof:id":1763588123,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1763588175,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1763588269,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1763588369,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB","ITM"]},{"wof:id":1914563993,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":1,"name:preferred":["International Terminal Building","ITB","ITM"]},{"wof:id":1914564157,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":1,"name:preferred":["T3"]},{"wof:id":1914564345,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":1,"name:preferred":["T1"]},{"wof:id":1477855607,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1914564489,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":1,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1477855657,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1477855699,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1477855833,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1729792389,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1729792435,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1729792487,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1729792579,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1159554815,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159554817,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159554829,"sfomuseum:terminal_id":"INTL","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159554827,"sfomuseum:terminal_id":"INTL","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159554821,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159554819,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159157307,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1159157325,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1159157333,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]},{"wof:id":1159157317,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1159396115,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396107,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396127,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396129,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159396109,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0},{"wof:id":1159396143,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396133,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396145,"sfomuseum:terminal_id":"NORTH","wof:name":"North Terminal","mz:is_current":0},{"wof:id":1159396135,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396139,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396121,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1159396149,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396123,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396131,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396151,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396165,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1159396169,"sfomuseum:terminal_id":"SOUTH","wof:name":"South Terminal","mz:is_current":0},{"wof:id":1159396163,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0},{"wof:id":1159396157,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396167,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396153,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396147,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396141,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0},{"wof:id":1159396159,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0},{"wof:id":1159396171,"sfomuseum:terminal_id":"CENTRAL","wof:name":"Central Terminal","mz:is_current":0},{"wof:id":1360521543,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1360521545,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1745882085,"sfomuseum:terminal_id":"T2","wof:name":"Terminal 2","mz:is_current":0,"name:preferred":["Terminal 2"],"name:variant":["T2"]},{"wof:id":1745882137,"sfomuseum:terminal_id":"T1","wof:name":"Terminal 1","mz:is_current":0,"name:preferred":["T1"]},{"wof:id":1745882233,"sfomuseum:terminal_id":"T3","wof:name":"Terminal 3","mz:is_current":0,"name:preferred":["T3"]},{"wof:id":1745882335,"sfomuseum:terminal_id":"ITB","wof:name":"International Terminal","mz:is_current":0,"name:preferred":["International Terminal Building","ITB"]}] diff --git a/go.mod b/go.mod index 303e261..49bffdc 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( github.com/aaronland/go-roster v1.0.0 github.com/aaronland/go-sqlite v0.2.2 github.com/paulmach/orb v0.11.1 + github.com/sfomuseum/go-edtf v1.1.1 github.com/sfomuseum/go-sfomuseum-writer/v3 v3.0.3 github.com/tidwall/gjson v1.17.1 github.com/whosonfirst/go-reader v1.0.2 @@ -39,7 +40,6 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/mattn/go-sqlite3 v1.14.16 // indirect github.com/natefinch/atomic v1.0.1 // indirect - github.com/sfomuseum/go-edtf v1.1.1 // indirect github.com/sfomuseum/go-sfomuseum-export/v2 v2.3.11 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect