diff --git a/.gitignore b/.gitignore
index fc5c3f9d..42d344df 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,5 @@ integration
.idea
validators.pubs
+node_modules
+*.temp.*
diff --git a/beacon/config/config.go b/beacon/config/config.go
index e8b3fb36..96a0856b 100644
--- a/beacon/config/config.go
+++ b/beacon/config/config.go
@@ -1,5 +1,10 @@
package config
+import (
+ "crypto/sha256"
+ "encoding/json"
+)
+
// Options are bare options passed to the beacon app.
type Options struct {
RPCListen string `yaml:"rpc_listen_addr" cli:"rpclisten"`
@@ -189,3 +194,15 @@ var NetworkIDs = map[string]Config{
"regtest": RegtestConfig,
"testnet": MainNetConfig,
}
+
+// HashConfig computes the hash of the config
+func HashConfig(config *Config) []byte {
+ // Use JSON marshal instead of ssz.HashTreeRoot because ssz doesn't support type 'int'.
+ b, err := json.Marshal(config)
+ if err != nil {
+ // We should allow failed hash here, let's panic and exit
+ panic(err)
+ }
+ h := sha256.Sum256(b)
+ return h[:]
+}
diff --git a/beacon/module/app.go b/beacon/module/app.go
index dbc9898b..34e1dfbb 100644
--- a/beacon/module/app.go
+++ b/beacon/module/app.go
@@ -253,6 +253,16 @@ func (app *BeaconApp) GetHostNode() *p2p.HostNode {
return app.hostNode
}
+// GetBlockchain gets the block chain
+func (app *BeaconApp) GetBlockchain() *beacon.Blockchain {
+ return app.blockchain
+}
+
+// GetSyncManager gets the syncManager
+func (app *BeaconApp) GetSyncManager() *beacon.SyncManager {
+ return &app.syncManager
+}
+
// Load user config from configure file
func (app *BeaconApp) loadConfig() error {
return nil
diff --git a/beacon/rpc/rpc.go b/beacon/rpc/rpc.go
index 136274d3..5f651959 100644
--- a/beacon/rpc/rpc.go
+++ b/beacon/rpc/rpc.go
@@ -2,9 +2,10 @@ package rpc
import (
"fmt"
- "github.com/prysmaticlabs/go-ssz"
"net"
+ "github.com/prysmaticlabs/go-ssz"
+
"github.com/phoreproject/synapse/p2p"
"github.com/phoreproject/synapse/utils"
@@ -12,6 +13,7 @@ import (
"github.com/golang/protobuf/ptypes/empty"
"github.com/phoreproject/synapse/beacon"
+ "github.com/phoreproject/synapse/beacon/config"
"github.com/phoreproject/synapse/chainhash"
"github.com/phoreproject/synapse/primitives"
@@ -176,6 +178,13 @@ func (s *server) GetEpochInformation(ctx context.Context, in *pb.EpochInformatio
state := s.chain.GetState()
config := s.chain.GetConfig()
+ if in.EpochIndex > s.chain.GetCurrentSlot()/s.chain.GetConfig().EpochLength-3 {
+ return &pb.EpochInformationResponse{
+ HasEpochInformation: false,
+ Information: nil,
+ }, nil
+ }
+
requestedEpochSlot := uint64(in.EpochIndex) * s.chain.GetConfig().EpochLength
if requestedEpochSlot > state.Slot {
@@ -334,6 +343,13 @@ func (s *server) GetValidatorInformation(ctx context.Context, in *pb.GetValidato
return validator.ToProto(), nil
}
+// GetConfigHash gets the config hash
+func (s *server) GetConfigHash(ctx context.Context, in *empty.Empty) (*pb.GetConfigHashResponse, error) {
+ return &pb.GetConfigHashResponse{
+ Hash: config.HashConfig(s.chain.GetConfig()),
+ }, nil
+}
+
// Serve serves the RPC server
func Serve(proto string, listenAddr string, b *beacon.Blockchain, hostNode *p2p.HostNode, mempool *beacon.Mempool) error {
lis, err := net.Listen(proto, listenAddr)
diff --git a/beacon/state.go b/beacon/state.go
index d538e9bc..55e55d28 100644
--- a/beacon/state.go
+++ b/beacon/state.go
@@ -76,6 +76,11 @@ func (b *Blockchain) ProcessBlock(block *primitives.Block, checkTime bool, verif
initialJustifiedEpoch := initialState.JustifiedEpoch
initialFinalizedEpoch := initialState.FinalizedEpoch
+ if (block.BlockHeader.SlotNumber+(b.config.EpochLength-1))/b.config.EpochLength >= initialState.EpochIndex+3 {
+ logger.Debugf("block epoch is too far from parent")
+ return nil, nil, errors.New("block epoch is too far from parent")
+ }
+
receipts, newState, err := b.AddBlockToStateMap(block, verifySignature)
if err != nil {
return nil, nil, err
diff --git a/beacon/statemanager.go b/beacon/statemanager.go
index 560c8e76..87b36e98 100644
--- a/beacon/statemanager.go
+++ b/beacon/statemanager.go
@@ -11,6 +11,7 @@ import (
"github.com/phoreproject/synapse/chainhash"
"github.com/phoreproject/synapse/primitives"
"github.com/prysmaticlabs/go-ssz"
+ logger "github.com/sirupsen/logrus"
)
type stateDerivedFromBlock struct {
@@ -125,7 +126,11 @@ func (sm *StateManager) GetStateForHashAtSlot(blockHash chainhash.Hash, slot uin
return nil, nil, fmt.Errorf("could not find state for block %s", blockHash)
}
- return derivedState.deriveState(slot, view, c)
+ receipts, state, err := derivedState.deriveState(slot, view, c)
+
+ logger.Debugf("derivedState.lastSlotReceipts length: %d for block: %s\n", len(derivedState.lastSlotReceipts), blockHash.String())
+
+ return receipts, state, err
}
// SetBlockState sets the state for a certain block. This SHOULD ONLY
diff --git a/cfg/config.go b/cfg/config.go
index df58b674..7219b242 100644
--- a/cfg/config.go
+++ b/cfg/config.go
@@ -3,10 +3,11 @@ package cfg
import (
"flag"
"fmt"
- "gopkg.in/yaml.v2"
"io/ioutil"
"reflect"
"strings"
+
+ "gopkg.in/yaml.v2"
)
type argInfo struct {
diff --git a/cmd/beacon/synapsebeacon.go b/cmd/beacon/synapsebeacon.go
index dfee52a8..3e2d558f 100644
--- a/cmd/beacon/synapsebeacon.go
+++ b/cmd/beacon/synapsebeacon.go
@@ -6,9 +6,20 @@ import (
"github.com/phoreproject/synapse/cfg"
"github.com/phoreproject/synapse/utils"
logger "github.com/sirupsen/logrus"
+ /*
+ Uncomment to enable memory profiling. To use it, run synapsebeacon, then
+ curl -sK -v http://localhost:9000/debug/pprof/heap > heap
+ go tool pprof heap
+ or to see all allocated memory
+ go tool pprof --alloc_space heap
+ in go pprof, use 'top' command to see the top memory usage
+ *///"net/http"
+ //_ "net/http/pprof"
)
func main() {
+ //go http.ListenAndServe("localhost:9000", nil)
+
beaconConfig := config.Options{}
globalConfig := cfg.GlobalOptions{}
err := cfg.LoadFlags(&beaconConfig, &globalConfig)
diff --git a/explorer/assets/style.css b/explorer/assets/style.css
deleted file mode 100644
index 208d16d4..00000000
--- a/explorer/assets/style.css
+++ /dev/null
@@ -1 +0,0 @@
-body {}
diff --git a/explorer/block.go b/explorer/block.go
deleted file mode 100644
index d57ced5e..00000000
--- a/explorer/block.go
+++ /dev/null
@@ -1,110 +0,0 @@
-package explorer
-
-import (
- "encoding/hex"
- "fmt"
- "net/http"
-
- "github.com/labstack/echo"
- "github.com/phoreproject/synapse/chainhash"
-)
-
-// BlockData is the data of a block that gets passed to templates.
-type BlockData struct {
- Slot uint64
- BlockHash string
- ProposerHash string
- ParentBlock string
- StateRoot string
- RandaoReveal string
- Signature string
- Attestations []AttestationData
-}
-
-// AttestationData is the data of an attestation that gets passed to templates.
-type AttestationData struct {
- ParticipantHashes []string
- Signature string
- Slot uint64
- Shard uint64
- BeaconBlockHash string
- EpochBoundaryHash string
- ShardBlockHash string
- LatestCrosslinkHash string
- JustifiedSlot uint64
- JustifiedBlockHash string
-}
-
-func (ex *Explorer) renderBlock(c echo.Context) error {
- var b Block
-
- blockHashStr := c.Param("blockHash")
-
- blockHashHex, err := hex.DecodeString(blockHashStr)
- if err != nil {
- return echo.NewHTTPError(http.StatusBadRequest, "Block hash is not valid hex")
- }
-
- if len(blockHashHex) != 32 {
- return echo.NewHTTPError(http.StatusBadRequest, "Please provide a valid block hash.")
- }
-
- ex.database.database.Order("slot desc").Limit(30).Where(&Block{Hash: blockHashHex}).First(&b)
-
- var attestations []Attestation
- ex.database.database.Where(&Attestation{BlockID: b.ID}).Find(&attestations)
-
- attestationsData := make([]AttestationData, len(attestations))
- for i := range attestations {
- participantHashesSeparate := splitHashes(attestations[i].ParticipantHashes)
-
- participantHashes := make([]string, len(participantHashesSeparate[i]))
-
- for j := range participantHashesSeparate {
- participantHashes[j] = chainhash.Hash(participantHashesSeparate[j]).String()
- }
-
- attestationsData[i] = AttestationData{
- ParticipantHashes: participantHashes,
- Signature: hex.EncodeToString(attestations[i].Signature),
- Slot: attestations[i].Slot,
- Shard: attestations[i].Shard,
- BeaconBlockHash: hex.EncodeToString(attestations[i].BeaconBlockHash),
- EpochBoundaryHash: hex.EncodeToString(attestations[i].EpochBoundaryHash),
- ShardBlockHash: hex.EncodeToString(attestations[i].ShardBlockHash),
- LatestCrosslinkHash: hex.EncodeToString(attestations[i].LatestCrosslinkHash),
- JustifiedBlockHash: hex.EncodeToString(attestations[i].JustifiedBlockHash),
- JustifiedSlot: attestations[i].JustifiedSlot,
- }
- }
-
- var blockHash chainhash.Hash
- copy(blockHash[:], blockHashHex)
-
- var proposerHash chainhash.Hash
- copy(proposerHash[:], b.Proposer)
-
- var parentBlockHash chainhash.Hash
- copy(parentBlockHash[:], b.ParentBlockHash)
-
- var stateRoot chainhash.Hash
- copy(stateRoot[:], b.StateRoot)
-
- block := BlockData{
- Slot: b.Slot,
- BlockHash: blockHash.String(),
- ProposerHash: proposerHash.String(),
- ParentBlock: parentBlockHash.String(),
- StateRoot: stateRoot.String(),
- RandaoReveal: fmt.Sprintf("%x", b.RandaoReveal),
- Signature: fmt.Sprintf("%x", b.Signature),
- Attestations: attestationsData,
- }
-
- err = c.Render(http.StatusOK, "block.html", block)
-
- if err != nil {
- return err
- }
- return err
-}
diff --git a/explorer/cmd/synapseexplorer.go b/explorer/cmd/synapseexplorer.go
index 804848aa..6c159d47 100644
--- a/explorer/cmd/synapseexplorer.go
+++ b/explorer/cmd/synapseexplorer.go
@@ -1,81 +1,27 @@
package main
import (
- "flag"
- "os"
- "strings"
-
- "github.com/phoreproject/synapse/p2p"
"github.com/phoreproject/synapse/utils"
- "github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
"github.com/phoreproject/synapse/explorer"
- "github.com/sirupsen/logrus"
+ logger "github.com/sirupsen/logrus"
)
func main() {
- chainconfig := flag.String("chainconfig", "testnet.json", "file of chain config")
- resync := flag.Bool("resync", false, "resyncs the blockchain if this is set")
- datadir := flag.String("datadir", "", "location to store blockchain data")
- initialConnections := flag.String("connect", "", "comma separated multiaddrs")
- listen := flag.String("listen", "/ip4/0.0.0.0/tcp/11781", "specifies the address to listen on")
-
- // Logging
- level := flag.String("level", "info", "log level")
- flag.Parse()
-
utils.CheckNTP()
+ config := explorer.LoadConfig()
changed, newLimit, err := utils.ManageFdLimit()
if err != nil {
panic(err)
}
if changed {
- logrus.Infof("changed ulimit to: %d", newLimit)
- }
-
- lvl, err := logrus.ParseLevel(*level)
- if err != nil {
- panic(err)
- }
- logrus.SetLevel(lvl)
-
- db, err := gorm.Open("sqlite3", "/tmp/gorm.db")
- if err != nil {
- panic(err)
- }
- defer db.Close()
-
- // we should load the keys from the validator keystore
- f, err := os.Open(*chainconfig)
- if err != nil {
- panic(err)
+ logger.Infof("changed ulimit to: %d", newLimit)
}
- explorerConfig, err := explorer.ReadChainFileToConfig(f)
- if err != nil {
- panic(err)
- }
-
- err = f.Close()
- if err != nil {
- panic(err)
- }
-
- initialPeers, err := p2p.ParseInitialConnections(strings.Split(*initialConnections, ","))
- if err != nil {
- panic(err)
- }
-
- explorerConfig.DiscoveryOptions.PeerAddresses = append(explorerConfig.DiscoveryOptions.PeerAddresses, initialPeers...)
-
- explorerConfig.DataDirectory = *datadir
- explorerConfig.Resync = *resync
- explorerConfig.ListeningAddress = *listen
-
- ex, err := explorer.NewExplorer(*explorerConfig, db)
+ ex, err := explorer.NewExplorer(config)
if err != nil {
panic(err)
}
diff --git a/explorer/config.go b/explorer/config.go
index 25b3f59f..216cdd06 100644
--- a/explorer/config.go
+++ b/explorer/config.go
@@ -1,109 +1,194 @@
package explorer
import (
- "encoding/hex"
"encoding/json"
- "fmt"
- "io"
+ "flag"
+ "os"
+ "strings"
- "github.com/phoreproject/synapse/primitives"
-
- peerstore "github.com/libp2p/go-libp2p-peerstore"
- multiaddr "github.com/multiformats/go-multiaddr"
- "github.com/phoreproject/synapse/beacon/config"
+ beaconModule "github.com/phoreproject/synapse/beacon/module"
"github.com/phoreproject/synapse/p2p"
-
- beaconapp "github.com/phoreproject/synapse/beacon/module"
+ shardConfig "github.com/phoreproject/synapse/shard/config"
)
-// Config is the explorer app config.
+// Config is the explorer config
type Config struct {
- GenesisTime uint64
- DataDirectory string
- InitialValidatorList []primitives.InitialValidatorEntry
- NetworkConfig *config.Config
- Resync bool
- ListeningAddress string
- DiscoveryOptions p2p.DiscoveryOptions
+ ConfigFileName string `json:"config,omitempty"`
+ DbDriver string `json:"dbdriver,omitempty"`
+ DbHost string `json:"dbhost,omitempty"`
+ DbDatabase string `json:"dbdatabase,omitempty"`
+ DbUser string `json:"dbuser,omitempty"`
+ DbPassword string `json:"dbpassword,omitempty"`
+
+ ChainConfig string `json:"chainconfig,omitempty"`
+ Resync bool `json:"resync,omitempty"`
+ DataDir string `json:"datadir,omitempty"`
+ Connect string `json:"connect,omitempty"`
+ Listen string `json:"listen,omitempty"`
+ RPCListen string `json:"rpclisten,omitempty"`
+
+ ShardListen string `json:"shardlisten,omitempty"`
+
+ Level string `json:"level,omitempty"`
+
+ beaconConfig *beaconModule.Config
+ shardConfig *shardConfig.Options
}
-// GenerateConfigFromChainConfig generates a new config from the passed in network config
-// which should be loaded from a JSON file.
-func GenerateConfigFromChainConfig(chainConfig beaconapp.ChainConfig) (*Config, error) {
- c := Config{
- GenesisTime: chainConfig.GenesisTime,
+func newConfig() *Config {
+ return &Config{}
+}
+
+func loadConfigFromFile(fileName string, config *Config) error {
+ if _, err := os.Stat(fileName); os.IsNotExist(err) {
+ return err
}
- c.InitialValidatorList = make([]primitives.InitialValidatorEntry, chainConfig.InitialValidators.NumValidators)
- for i := range c.InitialValidatorList {
- validator := chainConfig.InitialValidators.Validators[i]
+ f, err := os.Open(fileName)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
- pubKeyBytes, err := hex.DecodeString(validator.PubKey)
- if err != nil {
- return nil, err
- }
- var pubKey [96]byte
- copy(pubKey[:], pubKeyBytes)
+ d := json.NewDecoder(f)
+ return d.Decode(&config)
+}
- sigBytes, err := hex.DecodeString(validator.ProofOfPossession)
- if err != nil {
- return nil, err
- }
- var signature [48]byte
- copy(signature[:], sigBytes)
+func loadConfigFromCommandLine(config *Config) {
+ configFile := flag.String("config", "synapseexplorer.cfg", "Config file name")
+ dbdriver := flag.String("dbdriver", "sqlite", "Database driver, the value can be sqlite, mysql")
+ dbhost := flag.String("dbhost", "synapseexplorer.sqlite", "Database host")
+ dbdatabase := flag.String("dbdatabase", "synapseexplorer.sqlite", "Database name")
+ dbuser := flag.String("dbuser", "synapseexplorer.sqlite", "Database user name")
+ dbpassword := flag.String("dbpassword", "synapseexplorer.sqlite", "Database password")
+
+ chainconfig := flag.String("chainconfig", "testnet.json", "file of chain config")
+ resync := flag.Bool("resync", false, "resyncs the blockchain if this is set")
+ datadir := flag.String("datadir", "", "location to store blockchain data")
+ connect := flag.String("connect", "", "comma separated multiaddrs")
+ listen := flag.String("listen", "/ip4/0.0.0.0/tcp/11781", "specifies the address to listen on")
+ rpcListen := flag.String("rpclisten", "/ip4/0.0.0.0/tcp/11781", "specifies the address to RPC listen on")
+ shardListen := flag.String("shardlisten", "/ip4/0.0.0.0/tcp/11781", "specifies the address to listen on")
+
+ level := flag.String("level", "info", "log level")
+ flag.Parse()
+
+ config.ConfigFileName = *configFile
+ config.DbDriver = *dbdriver
+ config.DbHost = *dbhost
+ config.DbDatabase = *dbdatabase
+ config.DbUser = *dbuser
+ config.DbPassword = *dbpassword
+
+ config.ChainConfig = *chainconfig
+ config.Resync = *resync
+ config.DataDir = *datadir
+ config.Connect = *connect
+ config.Listen = *listen
+ config.RPCListen = *rpcListen
+ config.Level = *level
+
+ config.ShardListen = *shardListen
+}
- withdrawalCredentialsBytes, err := hex.DecodeString(validator.WithdrawalCredentials)
- if err != nil {
- return nil, err
- }
- var withdrawalCredentials [32]byte
- copy(withdrawalCredentials[:], withdrawalCredentialsBytes)
-
- c.InitialValidatorList[i] = primitives.InitialValidatorEntry{
- PubKey: pubKey,
- ProofOfPossession: signature,
- WithdrawalCredentials: withdrawalCredentials,
- WithdrawalShard: validator.WithdrawalShard,
- DepositSize: validator.DepositSize,
+func isFlagPassed(name string) bool {
+ found := false
+ flag.Visit(func(f *flag.Flag) {
+ if f.Name == name {
+ found = true
}
+ })
+ return found
+}
+
+func mergeConfigFromConfigFile(config *Config) {
+ if config.ConfigFileName == "" {
+ return
+ }
+
+ configFromFile := newConfig()
+ err := loadConfigFromFile(config.ConfigFileName, configFromFile)
+ if err != nil {
+ return
+ }
+
+ if !isFlagPassed("dbdriver") {
+ config.DbDriver = configFromFile.DbDriver
+ }
+ if !isFlagPassed("dbhost") {
+ config.DbHost = configFromFile.DbHost
+ }
+ if !isFlagPassed("dbdatabase") {
+ config.DbDatabase = configFromFile.DbDatabase
}
+ if !isFlagPassed("dbuser") {
+ config.DbUser = configFromFile.DbUser
+ }
+ if !isFlagPassed("dbpassword") {
+ config.DbPassword = configFromFile.DbPassword
+ }
+ if !isFlagPassed("chainconfig") {
+ config.ChainConfig = configFromFile.ChainConfig
+ }
+ if !isFlagPassed("resync") {
+ config.Resync = configFromFile.Resync
+ }
+ if !isFlagPassed("datadir") {
+ config.DataDir = configFromFile.DataDir
+ }
+ if !isFlagPassed("connect") {
+ config.Connect = configFromFile.Connect
+ }
+ if !isFlagPassed("listen") {
+ config.Listen = configFromFile.Listen
+ }
+ if !isFlagPassed("level") {
+ config.Level = configFromFile.Level
+ }
+}
+
+// LoadConfig loads the config
+func LoadConfig() *Config {
+ config := newConfig()
- c.GenesisTime = chainConfig.GenesisTime
+ loadConfigFromCommandLine(config)
+ mergeConfigFromConfigFile(config)
- c.DiscoveryOptions = p2p.NewDiscoveryOptions()
+ prepareConfig(config)
- c.DiscoveryOptions.PeerAddresses = make([]peerstore.PeerInfo, len(chainConfig.BootstrapPeers))
+ return config
+}
- networkConfig, found := config.NetworkIDs[chainConfig.NetworkID]
- if !found {
- return nil, fmt.Errorf("error getting network config for ID: %s", chainConfig.NetworkID)
+func prepareConfig(config *Config) {
+ f, err := os.Open(config.ChainConfig)
+ if err != nil {
+ panic(err)
}
- c.NetworkConfig = &networkConfig
- for i := range c.DiscoveryOptions.PeerAddresses {
- a, err := multiaddr.NewMultiaddr(chainConfig.BootstrapPeers[i])
- if err != nil {
- return nil, err
- }
- peerInfo, err := peerstore.InfoFromP2pAddr(a)
- if err != nil {
- return nil, err
- }
- c.DiscoveryOptions.PeerAddresses[i] = *peerInfo
+ beaconConfig, err := beaconModule.ReadChainFileToConfig(f)
+ if err != nil {
+ panic(err)
}
- return &c, nil
-}
+ err = f.Close()
+ if err != nil {
+ panic(err)
+ }
-// ReadChainFileToConfig reads a network config from the reader.
-func ReadChainFileToConfig(r io.Reader) (*Config, error) {
- var networkConfig beaconapp.ChainConfig
+ beaconConfig.DataDirectory = config.DataDir
+ beaconConfig.Resync = config.Resync
+ beaconConfig.ListeningAddress = config.Listen
- d := json.NewDecoder(r)
- err := d.Decode(&networkConfig)
+ initialPeers, err := p2p.ParseInitialConnections(strings.Split(config.Connect, ","))
if err != nil {
- return nil, err
+ panic(err)
}
+ beaconConfig.DiscoveryOptions.PeerAddresses = append(beaconConfig.DiscoveryOptions.PeerAddresses, initialPeers...)
- return GenerateConfigFromChainConfig(networkConfig)
+ config.beaconConfig = beaconConfig
+
+ config.shardConfig = &shardConfig.Options{
+ RPCListen: config.ShardListen,
+ BeaconRPC: config.RPCListen,
+ }
}
diff --git a/explorer/db.go b/explorer/db.go
index 6d030506..385ab3ce 100644
--- a/explorer/db.go
+++ b/explorer/db.go
@@ -29,7 +29,7 @@ type Validator struct {
type Attestation struct {
gorm.Model
- ParticipantHashes []byte
+ ParticipantHashes []byte `gorm:"size:16384"`
Signature []byte `gorm:"size:48"`
Slot uint64
Shard uint64
@@ -48,14 +48,20 @@ type Attestation struct {
type Block struct {
gorm.Model
- Proposer []byte `gorm:"size:32"`
- ParentBlockHash []byte `gorm:"size:32"`
- StateRoot []byte `gorm:"size:32"`
- RandaoReveal []byte `gorm:"size:48"`
- Signature []byte `gorm:"size:48"`
- Hash []byte `gorm:"size:32"`
- Height uint64
- Slot uint64
+ Proposer []byte `gorm:"size:32"`
+ ParentBlockHash []byte `gorm:"size:32"`
+ StateRoot []byte `gorm:"size:32"`
+ RandaoReveal []byte `gorm:"size:48"`
+ Signature []byte `gorm:"size:48"`
+ Hash []byte `gorm:"size:32"`
+ Height uint64
+ Slot uint64
+ Attestations uint32
+ ProposerSlashings uint32
+ CasperSlashings uint32
+ Deposits uint32
+ Exits uint32
+ Votes uint32
}
// Transaction is a slashing or reward on the beacon chain.
@@ -73,7 +79,7 @@ type Assignment struct {
gorm.Model
Shard uint64
- CommitteeHashes []byte
+ CommitteeHashes []byte `gorm:"size:16384"`
Slot uint64
}
@@ -85,6 +91,27 @@ type Epoch struct {
Committees []Assignment
}
+// Shard is the shard information
+type Shard struct {
+ gorm.Model
+
+ ShardID uint64
+ RootBlockHash []byte `gorm:"size:32"`
+ RootSlot uint64
+ GenesisTime uint64
+}
+
+// ShardBlock is the shard block information
+type ShardBlock struct {
+ gorm.Model
+
+ ShardID uint64
+ BlockHash []byte `gorm:"size:32"`
+ StateRootHash []byte `gorm:"size:32"`
+ Slot uint64
+ Height uint64
+}
+
// Database is the database used to store information about the blockchain.
type Database struct {
database *gorm.DB
@@ -119,5 +146,13 @@ func NewDatabase(db *gorm.DB) *Database {
panic(err)
}
+ if err := db.AutoMigrate(&Shard{}).Error; err != nil {
+ panic(err)
+ }
+
+ if err := db.AutoMigrate(&ShardBlock{}).Error; err != nil {
+ panic(err)
+ }
+
return &Database{db}
}
diff --git a/explorer/explorer.go b/explorer/explorer.go
index 1cca12de..b1f3de1d 100644
--- a/explorer/explorer.go
+++ b/explorer/explorer.go
@@ -1,31 +1,30 @@
package explorer
import (
- "crypto/rand"
"encoding/binary"
- "io"
+ "fmt"
"os"
"os/signal"
+ "strconv"
+ "strings"
"syscall"
- "text/template"
"time"
- "github.com/libp2p/go-libp2p-core/crypto"
"github.com/phoreproject/synapse/chainhash"
"github.com/phoreproject/synapse/primitives"
"github.com/prysmaticlabs/go-ssz"
"github.com/jinzhu/gorm"
- homedir "github.com/mitchellh/go-homedir"
- ma "github.com/multiformats/go-multiaddr"
- "github.com/phoreproject/synapse/beacon"
- "github.com/phoreproject/synapse/beacon/config"
- "github.com/phoreproject/synapse/beacon/db"
- "github.com/phoreproject/synapse/p2p"
+ // blank import
+ _ "github.com/jinzhu/gorm/dialects/mysql"
+ _ "github.com/jinzhu/gorm/dialects/postgres"
+ _ "github.com/jinzhu/gorm/dialects/sqlite"
+ "github.com/phoreproject/synapse/beacon/config"
+ beaconModule "github.com/phoreproject/synapse/beacon/module"
+ shardChain "github.com/phoreproject/synapse/shard/chain"
+ shardModule "github.com/phoreproject/synapse/shard/module"
logger "github.com/sirupsen/logrus"
-
- "github.com/labstack/echo"
)
// Explorer is a blockchain explorer.
@@ -33,130 +32,96 @@ import (
// and then keeps track of its own blockchain so that it can access more
// info like forking.
type Explorer struct {
- blockchain *beacon.Blockchain
+ beaconApp *beaconModule.BeaconApp
+ shardApp *shardModule.ShardApp
- // P2P
- hostNode *p2p.HostNode
- syncManager beacon.SyncManager
+ config *Config
- config Config
+ db *gorm.DB
database *Database
- chainDB db.Database
-}
-
-// NewExplorer creates a new block explorer
-func NewExplorer(c Config, gormDB *gorm.DB) (*Explorer, error) {
- return &Explorer{
- database: NewDatabase(gormDB),
- config: c,
- }, nil
}
-func (ex *Explorer) loadDatabase() error {
- var dir string
- if ex.config.DataDirectory == "" {
- dataDir, err := config.GetBaseDirectory(true)
- if err != nil {
- panic(err)
- }
- dir = dataDir
- } else {
- d, err := homedir.Expand(ex.config.DataDirectory)
- if err != nil {
- panic(err)
+func createDb(c *Config) *gorm.DB {
+ var db *gorm.DB
+ var err error
+ switch c.DbDriver {
+ case "sqlite":
+ db, err = gorm.Open("sqlite3", c.DbDatabase)
+ break
+
+ case "mysql":
+ passwordText := ""
+ if c.DbPassword != "" {
+ passwordText = fmt.Sprintf(":%s", c.DbPassword)
}
- dir = d
+ dbText := fmt.Sprintf(
+ "%s%s@(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
+ c.DbUser,
+ passwordText,
+ c.DbHost,
+ c.DbDatabase)
+ db, err = gorm.Open("mysql", dbText)
+ break
+
+ case "postgres":
+ db, err = gorm.Open(
+ "postgres",
+ fmt.Sprintf(
+ "host=%s port=5432 user=%s dbname=%s password=%s sslmode=disable",
+ c.DbHost,
+ c.DbUser,
+ c.DbDatabase,
+ c.DbPassword))
+ break
}
-
- err := os.MkdirAll(dir, 0777)
if err != nil {
panic(err)
}
-
- logger.Info("initializing client")
-
- logger.Info("initializing database")
- database := db.NewBadgerDB(dir)
-
- if ex.config.Resync {
- logger.Info("dropping all keys in database to resync")
- err := database.Flush()
- if err != nil {
- return err
- }
- }
-
- ex.chainDB = database
-
- return nil
+ return db
}
-func (ex *Explorer) loadP2P() error {
- logger.Info("loading P2P")
- addr, err := ma.NewMultiaddr(ex.config.ListeningAddress)
- if err != nil {
- panic(err)
- }
-
- priv, pub, err := crypto.GenerateEd25519Key(rand.Reader)
+// NewExplorer creates a new block explorer
+func NewExplorer(c *Config) (*Explorer, error) {
+ db := createDb(c)
+
+ beaconConfig := config.Options{}
+ beaconConfig.Resync = c.Resync
+ beaconConfig.ChainCFG = c.ChainConfig
+ beaconConfig.DataDir = c.DataDir
+ beaconConfig.GenesisTime = strconv.FormatUint(c.beaconConfig.GenesisTime, 10)
+ beaconConfig.InitialConnections = strings.Split(c.Connect, ",")
+ beaconConfig.P2PListen = c.Listen
+ beaconConfig.RPCListen = c.Listen
+ beaconApp, err := beaconModule.NewBeaconApp(beaconConfig)
if err != nil {
panic(err)
}
- hostNode, err := p2p.NewHostNode(addr, pub, priv, ex.config.DiscoveryOptions, 16*time.Second, 16, 8*time.Second, ex.blockchain)
+ shardApp, err := shardModule.NewShardApp(*c.shardConfig)
if err != nil {
panic(err)
}
- ex.hostNode = hostNode
- logger.Debug("starting peer discovery")
- err = ex.hostNode.StartDiscovery()
- if err != nil {
- panic(err)
+ ex := &Explorer{
+ beaconApp: beaconApp,
+ shardApp: shardApp,
+ db: db,
+ database: NewDatabase(db),
+ config: c,
}
-
- return nil
-}
-
-func (ex *Explorer) loadBlockchain() error {
- var genesisTime uint64
- if t, err := ex.chainDB.GetGenesisTime(); err == nil {
- logger.WithField("genesisTime", t).Info("using time from database")
- genesisTime = t
- } else {
- logger.WithField("genesisTime", ex.config.GenesisTime).Info("using time from config")
- err := ex.chainDB.SetGenesisTime(ex.config.GenesisTime)
- if err != nil {
- return err
- }
- genesisTime = ex.config.GenesisTime
- }
-
- blockchain, err := beacon.NewBlockchainWithInitialValidators(ex.chainDB, ex.config.NetworkConfig, ex.config.InitialValidatorList, true, genesisTime)
+ lvl, err := logger.ParseLevel(c.Level)
if err != nil {
panic(err)
}
-
- ex.blockchain = blockchain
-
- return nil
-}
-
-// Template is the template engine used by the explorer.
-type Template struct {
- templates *template.Template
-}
-
-// Render renders the template.
-func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
- return t.templates.ExecuteTemplate(w, name, data)
+ logger.SetLevel(lvl)
+ return ex, nil
}
// WaitForConnections waits until beacon app is connected
func (ex *Explorer) WaitForConnections(numConnections int) {
for {
- if ex.hostNode.PeersConnected() >= numConnections {
+ if ex.beaconApp.GetHostNode().PeersConnected() >= numConnections {
break
}
time.Sleep(100 * time.Millisecond)
@@ -229,17 +194,20 @@ func (ex *Explorer) postProcessHook(block *primitives.Block, state *primitives.S
var epochCount int
- epochStart := state.Slot - (state.Slot % ex.config.NetworkConfig.EpochLength)
+ epochLength := ex.config.beaconConfig.NetworkConfig.EpochLength
+ //epochStart := state.Slot - (state.Slot % epochLength)
+ epochStart := state.EpochIndex * epochLength
ex.database.database.Model(&Epoch{}).Where(&Epoch{StartSlot: epochStart}).Count(&epochCount)
if epochCount == 0 {
var assignments []Assignment
- for i := epochStart; i < epochStart+ex.config.NetworkConfig.EpochLength; i++ {
- assignmentForSlot, err := state.GetShardCommitteesAtSlot(i, ex.config.NetworkConfig)
+ for i := epochStart; i < epochStart+epochLength; i++ {
+ assignmentForSlot, err := state.GetShardCommitteesAtSlot(i, ex.config.beaconConfig.NetworkConfig)
if err != nil {
- panic(err)
+ logger.Errorf("%v epochStart=%d", err, epochStart)
+ continue
}
for _, as := range assignmentForSlot {
@@ -271,12 +239,12 @@ func (ex *Explorer) postProcessHook(block *primitives.Block, state *primitives.S
blockHash, err := ssz.HashTreeRoot(block)
if err != nil {
- panic(err)
+ logger.Errorf("%v", err)
}
- proposerIdx, err := state.GetBeaconProposerIndex(block.BlockHeader.SlotNumber, ex.blockchain.GetConfig())
+ proposerIdx, err := state.GetBeaconProposerIndex(block.BlockHeader.SlotNumber-1, ex.config.beaconConfig.NetworkConfig)
if err != nil {
- panic(err)
+ logger.Errorf("%v", err)
}
var idBytes [4]byte
@@ -285,22 +253,29 @@ func (ex *Explorer) postProcessHook(block *primitives.Block, state *primitives.S
proposerHash := chainhash.HashH(pubAndID)
blockDB := &Block{
- ParentBlockHash: block.BlockHeader.ParentRoot[:],
- StateRoot: block.BlockHeader.StateRoot[:],
- RandaoReveal: block.BlockHeader.RandaoReveal[:],
- Signature: block.BlockHeader.Signature[:],
- Hash: blockHash[:],
- Slot: block.BlockHeader.SlotNumber,
- Proposer: proposerHash[:],
+ ParentBlockHash: block.BlockHeader.ParentRoot[:],
+ StateRoot: block.BlockHeader.StateRoot[:],
+ RandaoReveal: block.BlockHeader.RandaoReveal[:],
+ Signature: block.BlockHeader.Signature[:],
+ Hash: blockHash[:],
+ Slot: block.BlockHeader.SlotNumber,
+ Proposer: proposerHash[:],
+ Attestations: uint32(len(block.BlockBody.Attestations)),
+ ProposerSlashings: uint32(len(block.BlockBody.ProposerSlashings)),
+ CasperSlashings: uint32(len(block.BlockBody.CasperSlashings)),
+ Deposits: uint32(len(block.BlockBody.Deposits)),
+ Exits: uint32(len(block.BlockBody.Exits)),
+ Votes: uint32(len(block.BlockBody.Votes)),
}
ex.database.database.Create(blockDB)
// Update attestations
for _, att := range block.BlockBody.Attestations {
- participants, err := state.GetAttestationParticipants(att.Data, att.ParticipationBitfield, ex.config.NetworkConfig)
+ participants, err := state.GetAttestationParticipants(att.Data, att.ParticipationBitfield, ex.config.beaconConfig.NetworkConfig)
if err != nil {
- panic(err)
+ logger.Errorf("%v", err)
+ continue
}
participantHashes := make([][32]byte, len(participants))
@@ -331,75 +306,109 @@ func (ex *Explorer) postProcessHook(block *primitives.Block, state *primitives.S
}
}
-func (ex *Explorer) exit() {
- err := ex.chainDB.Close()
- if err != nil {
- panic(err)
+func (ex *Explorer) doProcessShardBlocks(shardManager *shardChain.ShardManager) {
+ chain := shardManager.Chain
+ tip, _ := chain.Tip()
+ if tip == nil {
+ return
}
+ currentSlot := tip.Slot
+ for {
+ var foundSlotCount int
+ ex.database.database.Model(&ShardBlock{}).Where(&ShardBlock{ShardID: shardManager.ShardID, Slot: currentSlot}).Count(&foundSlotCount)
+ if foundSlotCount != 0 {
+ break
+ }
- for _, p := range ex.hostNode.GetPeerList() {
- p.Disconnect()
- }
+ block, _ := chain.GetNodeBySlot(currentSlot)
+ if block == nil {
+ break
+ }
+ ex.database.database.Create(&ShardBlock{
+ ShardID: shardManager.ShardID,
+ BlockHash: block.BlockHash[:],
+ StateRootHash: block.StateRoot[:],
+ Slot: block.Slot,
+ Height: block.Height,
+ })
- os.Exit(0)
+ currentSlot--
+ }
}
-// StartExplorer starts the block explorer
-func (ex *Explorer) StartExplorer() error {
- err := ex.loadDatabase()
- if err != nil {
- return err
+func (ex *Explorer) doProcessSingleShard(shardManager *shardChain.ShardManager) {
+ var shardCount int
+ ex.database.database.Model(&Shard{}).Where(&Shard{ShardID: shardManager.ShardID}).Count(&shardCount)
+ if shardCount == 0 {
+ ex.database.database.Create(&Shard{
+ ShardID: shardManager.ShardID,
+ RootBlockHash: shardManager.InitializationParameters.RootBlockHash.CloneBytes(),
+ RootSlot: shardManager.InitializationParameters.RootSlot,
+ GenesisTime: shardManager.InitializationParameters.GenesisTime,
+ })
}
- signalHandler := make(chan os.Signal, 1)
- signal.Notify(signalHandler, os.Interrupt, syscall.SIGTERM)
-
- go func() {
- <-signalHandler
-
- ex.exit()
- }()
+ ex.doProcessShardBlocks(shardManager)
+}
- err = ex.loadBlockchain()
- if err != nil {
- return err
+func (ex *Explorer) doProcessShards() {
+ mux := ex.shardApp.Mux
+ if mux == nil {
+ return
}
- err = ex.loadP2P()
- if err != nil {
- return err
+ shardIDList := mux.GetShardIDList()
+ for _, shardID := range shardIDList {
+ shardManager, _ := mux.GetManager(shardID)
+ if shardManager == nil {
+ continue
+ }
+ ex.doProcessSingleShard(shardManager)
}
+}
- ex.syncManager = beacon.NewSyncManager(ex.hostNode, ex.blockchain, nil)
+func (ex *Explorer) processShards() {
+ for {
+ ex.doProcessShards()
+ time.Sleep(5)
+ }
+}
- ex.syncManager.RegisterPostProcessHook(ex.postProcessHook)
+func (ex *Explorer) exit() {
+ ex.beaconApp.Exit()
- ex.syncManager.Start()
+ os.Exit(0)
+}
- ex.WaitForConnections(1)
+// StartExplorer starts the block explorer
+func (ex *Explorer) StartExplorer() error {
+ logger.Info("StartExplorer 1")
- go ex.syncManager.TryInitialSync()
+ signalHandler := make(chan os.Signal, 1)
+ signal.Notify(signalHandler, os.Interrupt, syscall.SIGTERM)
go func() {
- err := ex.syncManager.ListenForBlocks()
- if err != nil {
- logger.Errorf("error listening for blocks: %s", err)
- }
+ <-signalHandler
+
+ ex.exit()
}()
- t := &Template{
- templates: template.Must(template.ParseGlob("explorer/templates/*.html")),
- }
+ ex.beaconApp.GetSyncManager().RegisterPostProcessHook(ex.postProcessHook)
+
+ go ex.processShards()
- e := echo.New()
- e.Renderer = t
+ logger.Info("Start shard chains.")
+ ex.shardApp.Run()
- e.Static("/static", "assets")
- e.GET("/", ex.renderIndex)
- e.GET("/b/:blockHash", ex.renderBlock)
- e.GET("/v/:validatorHash", ex.renderValidator)
+ // temp
+ rootHash, _ := chainhash.NewHashFromStr("4b511a3448fd23a25f81eecfde8d0ef9747e3f4d183cba6a16ec4bd893930d60")
+ ex.shardApp.Mux.StartManaging(1, shardChain.ShardChainInitializationParameters{
+ RootBlockHash: *rootHash,
+ RootSlot: 1,
+ })
- e.Logger.Fatal(e.Start(":1323"))
+ logger.Info("Start Beacon chain.")
+ ex.beaconApp.Run()
return nil
}
diff --git a/explorer/index.go b/explorer/index.go
deleted file mode 100644
index b315a91e..00000000
--- a/explorer/index.go
+++ /dev/null
@@ -1,87 +0,0 @@
-package explorer
-
-import (
- "fmt"
- "net/http"
-
- "github.com/labstack/echo"
- "github.com/phoreproject/synapse/chainhash"
-)
-
-// TransactionData is the data of a transaction that gets passed to templates.
-type TransactionData struct {
- Recipient string
- Amount int64
- Slot uint64
-}
-
-// ProposerData is the data of a proposer that gets passed to templates.
-type ProposerData struct {
- Slot uint64
- Validator string
-}
-
-// IndexData is the data that gets sent to the index page.
-type IndexData struct {
- Blocks []BlockData
- Transactions []TransactionData
-}
-
-func (ex *Explorer) renderIndex(c echo.Context) error {
- blocks := make([]BlockData, 0)
-
- var dbBlocks []Block
-
- ex.database.database.Order("slot desc").Limit(30).Find(&dbBlocks)
-
- for _, b := range dbBlocks {
- var blockHash chainhash.Hash
- copy(blockHash[:], b.Hash)
-
- var proposerHash chainhash.Hash
- copy(proposerHash[:], b.Proposer)
-
- var parentBlockHash chainhash.Hash
- copy(parentBlockHash[:], b.ParentBlockHash)
-
- var stateRoot chainhash.Hash
- copy(stateRoot[:], b.StateRoot)
-
- blocks = append(blocks, BlockData{
- Slot: b.Slot,
- BlockHash: blockHash.String(),
- ProposerHash: proposerHash.String(),
- ParentBlock: parentBlockHash.String(),
- StateRoot: stateRoot.String(),
- RandaoReveal: fmt.Sprintf("%x", b.RandaoReveal),
- Signature: fmt.Sprintf("%x", b.Signature),
- })
- }
-
- transactions := make([]TransactionData, 0)
-
- var dbTransactions []Transaction
-
- ex.database.database.Select("recipient_hash, amount, slot").Order("slot desc").Limit(30).Find(&dbTransactions)
-
- for _, t := range dbTransactions {
- var recipientHash chainhash.Hash
- copy(recipientHash[:], t.RecipientHash)
-
- transactions = append(transactions, TransactionData{
- Slot: t.Slot,
- Amount: t.Amount,
- Recipient: recipientHash.String(),
- })
- }
-
- err := c.Render(http.StatusOK, "index.html", IndexData{
- Blocks: blocks,
- Transactions: transactions,
- })
-
- if err != nil {
- return err
- }
- return err
-}
diff --git a/explorer/layout.txt b/explorer/layout.txt
deleted file mode 100644
index 1f5c43d9..00000000
--- a/explorer/layout.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Front page
-- shows latest blocks
-- shows latest transactions
-- active validators
-- most recent proposers
-
-Block page
-- Attestations
-- Parent block
-- State root
-- Randao Reveal
-- Hash
-- Slot
-- Epoch
-- Proposer
-
-Epoch
-- Transactions
-- Start Slot
-- Committees
-
-Transaction
-- Amount
-- Recipient validator
-- Type
-- Slot
-
-Attestation
-- Participant validators
-- Signature
-- Slot
-- Shard
-- Beacon block hash
-- Epoch boundary hash
-- Shard block hash
-- Latest crosslink hash
-- Justified slot
-- Justified block hash
-
-Validator
-- pubkey
-- withdrawal credentials
-- status
-- latest status change slot
-- exit count
-- validator ID
-- validator hash
diff --git a/explorer/readme.md b/explorer/readme.md
new file mode 100644
index 00000000..33f8676c
--- /dev/null
+++ b/explorer/readme.md
@@ -0,0 +1,67 @@
+## Environment
+
+* Postgres
+* NodeJs
+
+## Modules
+
+### Synapse Go backend
+
+#### Build
+
+The Go backend requires all 4 components: Beacon, Shard, Validator, and Explorer.
+
+#### Run
+
+Below are example commands to run the 4 component
+
+```
+synapsebeacon -level trace -listen /ip4/0.0.0.0/tcp/11781 -rpclisten /ip4/127.0.0.1/tcp/11782 -chaincfg testnet.json -datadir=DATADIR
+
+synapseshard.exe -level trace -beacon /ip4/127.0.0.1/tcp/11782 -listen /ip4/127.0.0.1/tcp/11783
+
+synapsevalidator -beacon /ip4/127.0.0.1/tcp/11782 -shard /ip4/127.0.0.1/tcp/11783 -rootkey testnet -networkid testnet -validators 0-255
+
+synapseexplorer -dbdriver postgres -dbhost localhost -dbdatabase synapse -dbuser test -dbpassword "test" -level trace -listen /ip4/0.0.0.0/tcp/21781 -rpclisten /ip4/0.0.0.0/tcp/11782 -shardlisten /ip4/127.0.0.1/tcp/11783 -chainconfig regtest.temp.json -datadir=DATADIR -connect /ip4/0.0.0.0/tcp/11781/ipfs/BEACON_IPFS_ADDRESS
+```
+
+### Website backend
+
+The website backend is in folder explorer/website/backend
+
+#### Install dependencies
+
+Go to the backend folder, run,
+
+`npm install`
+
+#### Config the backend
+
+Go to backend_folder/config, edit default.json. The file is self documented.
+
+#### Run the backend (web server)
+
+Go to the backend folder, run,
+
+`node index.js`
+
+### Website frontend
+
+The website backend is in folder explorer/website/frontend
+
+#### Install dependencies
+
+Go to the frontend folder, run,
+
+`npm install`
+
+#### Build the frontend
+
+Go to the frontend folder, run,
+
+`npm run prod`
+
+To build development version, run,
+
+`npm run dev`
+
diff --git a/explorer/templates/block.html b/explorer/templates/block.html
deleted file mode 100644
index a1475581..00000000
--- a/explorer/templates/block.html
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-
-
- Block {{.BlockHash}}
-
-
-
-Block {{.BlockHash}}
-
-
-
-
- | Name |
- Value |
-
-
-
-
- | Slot |
- {{.Slot}} |
-
-
- | Hash |
- {{.BlockHash}} |
-
-
- | Proposer |
- {{.ProposerHash}} |
-
-
- | State Root |
- {{.StateRoot}} |
-
-
- | Randao Reveal |
- {{.RandaoReveal}} |
-
-
- | Signature |
- {{.Signature}} |
-
-
-
-
-Attestations
-
-
-
- | Slot |
- Shard |
- Justified Slot |
- Justified Hash |
- Shard Hash |
- Participants |
-
-
-
- {{range .Attestations}}
-
- | {{.Slot}} |
- {{.Shard}} |
- {{.JustifiedSlot}} |
- {{.JustifiedBlockHash}} |
- {{.ShardBlockHash}} |
-
- {{range .ParticipantHashes}}
- {{.}}
- {{end}}
- |
-
- {{end}}
-
-
-
-
diff --git a/explorer/templates/index.html b/explorer/templates/index.html
deleted file mode 100644
index 2613269d..00000000
--- a/explorer/templates/index.html
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
-
- Block Explorer
-
-
-
-
- Block Explorer
-
- Blocks
-
-
- Transactions
-
-
-
- | Recipient |
- Amount |
- Slot |
-
-
-
- {{range .Transactions}}
-
- | {{.Recipient}} |
- {{.Amount}} |
- {{.Slot}} |
-
- {{end}}
-
-
-
-
diff --git a/explorer/templates/validator.html b/explorer/templates/validator.html
deleted file mode 100644
index 61d2d4eb..00000000
--- a/explorer/templates/validator.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
- Validator {{.ValidatorHash}}
-
-
-Validator #{{.ValidatorID}} - {{.ValidatorHash}}
-
-
-
-
- | Name |
- Value |
-
-
-
-
- | Pubkey |
- {{.Pubkey}} |
-
-
- | Withdrawal Credentials |
- {{.WithdrawalCredentials}} |
-
-
- | Status |
- {{.Status}} |
-
-
- | Latest Status Change Slot |
- {{.LatestStatusChangeSlot}} |
-
-
- | Exit Count |
- {{.ExitCount}} |
-
-
- | Validator ID |
- {{.ValidatorID}} |
-
-
-
-
-
diff --git a/explorer/validator.go b/explorer/validator.go
deleted file mode 100644
index 62d667ef..00000000
--- a/explorer/validator.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package explorer
-
-import (
- "encoding/hex"
- "net/http"
-
- "github.com/labstack/echo"
-)
-
-// ValidatorData is the data of a validator passed to explorer templates.
-type ValidatorData struct {
- Pubkey string
- WithdrawalCredentials string
- Status uint64
- LatestStatusChangeSlot uint64
- ExitCount uint64
- ValidatorID uint64
- ValidatorHash string
- Attestations []AttestationData
-}
-
-func (ex *Explorer) renderValidator(c echo.Context) error {
- var v Validator
-
- validatorHashStr := c.Param("validatorHash")
-
- validatorHashHex, err := hex.DecodeString(validatorHashStr)
- if err != nil {
- return echo.NewHTTPError(http.StatusBadRequest, "Block hash is not valid hex")
- }
-
- if len(validatorHashHex) != 32 {
- return echo.NewHTTPError(http.StatusBadRequest, "Please provide a valid block hash.")
- }
-
- ex.database.database.Where(&Validator{ValidatorHash: validatorHashHex}).First(&v)
-
- //var attestations []Attestation
- //ex.database.database.Where("participant_hashes LIKE ?", validatorHashHex).Find(&attestations)
- //
- //attestationsData := make([]AttestationData, len(attestations))
- //for i := range attestations {
- // participantHashesSeparate := splitHashes(attestations[i].ParticipantHashes)
- //
- // participantHashes := make([]string, len(participantHashesSeparate[i]))
- //
- // for j := range participantHashesSeparate {
- // participantHashes[j] = chainhash.Hash(participantHashesSeparate[j]).String()
- // }
- //
- // attestationsData[i] = AttestationData{
- // ParticipantHashes: participantHashes,
- // Signature: hex.EncodeToString(attestations[i].Signature),
- // Slot: attestations[i].Slot,
- // Shard: attestations[i].Shard,
- // BeaconBlockHash: hex.EncodeToString(attestations[i].BeaconBlockHash),
- // EpochBoundaryHash: hex.EncodeToString(attestations[i].EpochBoundaryHash),
- // ShardBlockHash: hex.EncodeToString(attestations[i].ShardBlockHash),
- // LatestCrosslinkHash: hex.EncodeToString(attestations[i].LatestCrosslinkHash),
- // JustifiedBlockHash: hex.EncodeToString(attestations[i].JustifiedBlockHash),
- // JustifiedSlot: attestations[i].JustifiedSlot,
- // }
- //}
-
- validator := ValidatorData{
- Pubkey: hex.EncodeToString(v.Pubkey),
- WithdrawalCredentials: hex.EncodeToString(v.WithdrawalCredentials),
- Status: v.Status,
- LatestStatusChangeSlot: v.LatestStatusChangeSlot,
- ExitCount: v.ExitCount,
- ValidatorID: v.ValidatorID,
- ValidatorHash: hex.EncodeToString(validatorHashHex),
- //Attestations: attestationsData,
- }
-
- err = c.Render(http.StatusOK, "validator.html", validator)
-
- if err != nil {
- return err
- }
- return err
-}
diff --git a/explorer/website/.gitignore b/explorer/website/.gitignore
new file mode 100644
index 00000000..3c3629e6
--- /dev/null
+++ b/explorer/website/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/explorer/website/backend/config/default.json b/explorer/website/backend/config/default.json
new file mode 100644
index 00000000..fd9ec6bd
--- /dev/null
+++ b/explorer/website/backend/config/default.json
@@ -0,0 +1,26 @@
+{
+ "databaseMysql" : {
+ "comment" : "This is the MySQL driver, it's useful for test if there is no postgres installed. To make it work, rename the postgres driver key name to 'databasePostgres', and rename 'databaseMysql' to 'database'",
+ "driver" : "mysql2",
+ "host" : "localhost",
+ "port" : 3306,
+ "user" : "root",
+ "password" : "",
+ "database" : "synapse"
+ },
+
+ "database" : {
+ "driver" : "postgres",
+ "host" : "localhost",
+ "port" : 5432,
+ "user" : "test",
+ "password" : "test",
+ "database" : "synapse"
+ },
+
+ "server" : {
+ "comment" : "The port the web server listens on",
+ "port" : 3000
+ }
+}
+
diff --git a/explorer/website/backend/index.js b/explorer/website/backend/index.js
new file mode 100644
index 00000000..f35be68e
--- /dev/null
+++ b/explorer/website/backend/index.js
@@ -0,0 +1,4 @@
+const Application = require('./src/application').Application;
+
+var app = new Application()
+app.run()
diff --git a/explorer/website/backend/package-lock.json b/explorer/website/backend/package-lock.json
new file mode 100644
index 00000000..3baddaa3
--- /dev/null
+++ b/explorer/website/backend/package-lock.json
@@ -0,0 +1,2369 @@
+{
+ "name": "website",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "ambi": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz",
+ "integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=",
+ "requires": {
+ "editions": "^1.1.1",
+ "typechecker": "^4.3.0"
+ },
+ "dependencies": {
+ "typechecker": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.7.0.tgz",
+ "integrity": "sha512-4LHc1KMNJ6NDGO+dSM/yNfZQRtp8NN7psYrPHUblD62Dvkwsp3VShsbM78kOgpcmMkRTgvwdKOTjctS+uMllgQ==",
+ "requires": {
+ "editions": "^2.1.0"
+ },
+ "dependencies": {
+ "editions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-2.2.0.tgz",
+ "integrity": "sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw==",
+ "requires": {
+ "errlop": "^1.1.2",
+ "semver": "^6.3.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
+ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "array-slice": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
+ "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "bluebird": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
+ "integrity": "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8="
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "buffer-writer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
+ "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY="
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "colorette": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz",
+ "integrity": "sha1-H5Q+WjV/rBC04PWq7zsUzcGvbsc="
+ },
+ "commander": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.1.tgz",
+ "integrity": "sha1-RZWuw1MFJeZx+2+F+xc9+P+L9Xo="
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "config": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/config/-/config-3.2.2.tgz",
+ "integrity": "sha1-x9MbsqnTABOpBf9CAQHjsbpY7q0=",
+ "requires": {
+ "json5": "^1.0.1"
+ }
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo="
+ },
+ "cookie-parser": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
+ "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
+ "requires": {
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ }
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ },
+ "csextends": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/csextends/-/csextends-1.2.0.tgz",
+ "integrity": "sha512-S/8k1bDTJIwuGgQYmsRoE+8P+ohV32WhQ0l4zqrc0XDdxOhjQQD7/wTZwCzoZX53jSX3V/qwjT+OkPTxWQcmjg=="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "denque": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
+ "integrity": "sha1-Z0T/dkHBSMP4ppwwflEjXB9KN88="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
+ },
+ "eachr": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz",
+ "integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=",
+ "requires": {
+ "typechecker": "^2.0.8"
+ }
+ },
+ "editions": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz",
+ "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg=="
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "errlop": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.2.tgz",
+ "integrity": "sha512-djkRp+urJ+SmqDBd7F6LUgm4Be1TTYBxia2bhjNdFBuBDQtJDHExD2VbxR6eyst3h1TZy3qPRCdqb6FBoFttTA==",
+ "requires": {
+ "editions": "^2.1.3"
+ },
+ "dependencies": {
+ "editions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-2.2.0.tgz",
+ "integrity": "sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw==",
+ "requires": {
+ "errlop": "^1.1.2",
+ "semver": "^6.3.0"
+ }
+ }
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "express-handlebars": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.1.0.tgz",
+ "integrity": "sha512-7QlaXnSREMmN5P2o4gmpUZDfJlLtfBka9d6r7/ccXaU7rPp76odw9YYtwZYdIiha2JqwiaG6o2Wu6NZJQ0u7Fg==",
+ "requires": {
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.1.2",
+ "handlebars": "^4.1.2",
+ "object.assign": "^4.1.0",
+ "promise": "^8.0.2"
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "extendr": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/extendr/-/extendr-2.1.0.tgz",
+ "integrity": "sha1-MBqgu+pWX00tyPVw8qImEahSe1Y=",
+ "requires": {
+ "typechecker": "~2.0.1"
+ },
+ "dependencies": {
+ "typechecker": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz",
+ "integrity": "sha1-6D2oS7ZMWEzLNFg4V2xAsDN9uC4="
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extract-opts": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz",
+ "integrity": "sha1-H6KOunNSxttID4hc63GkaBC+bX0=",
+ "requires": {
+ "typechecker": "~2.0.1"
+ },
+ "dependencies": {
+ "typechecker": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz",
+ "integrity": "sha1-6D2oS7ZMWEzLNFg4V2xAsDN9uC4="
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+ "integrity": "sha1-F7EI+e5RLft6XH88iyfqnhqcCNE=",
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ }
+ },
+ "fined": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
+ "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=",
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "is-plain-object": "^2.0.3",
+ "object.defaults": "^1.1.0",
+ "object.pick": "^1.2.0",
+ "parse-filepath": "^1.0.1"
+ }
+ },
+ "flagged-respawn": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+ "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E="
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "generate-function": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
+ "integrity": "sha1-8GlhdpDBDIaOc7hGV0Z2T5fDR58=",
+ "requires": {
+ "is-property": "^1.0.2"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ },
+ "getopts": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz",
+ "integrity": "sha1-Z6D+RxysucaH2BfKtkULlt3oMTs="
+ },
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=",
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "handlebars": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.3.3.tgz",
+ "integrity": "sha512-VupOxR91xcGojfINrzMqrvlyYbBs39sXIrWa7YdaQWeBudOlvKEGvCczMfJPgnuwHE/zyH1M6J+IUP6cgDVyxg==",
+ "requires": {
+ "neo-async": "^2.6.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=",
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "i18n": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.3.tgz",
+ "integrity": "sha1-LYzxwkciYCwgQdAbpq5eqlE4jw4=",
+ "requires": {
+ "debug": "*",
+ "make-plural": "^3.0.3",
+ "math-interval-parser": "^1.1.0",
+ "messageformat": "^0.3.1",
+ "mustache": "*",
+ "sprintf-js": ">=1.0.3"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz",
+ "integrity": "sha1-Wc3eCiopfMKusMZEWhle6J8SdVA=",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignorefs": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.2.0.tgz",
+ "integrity": "sha1-2ln7hYl25KXkNwLM0fKC/byeV1Y=",
+ "requires": {
+ "editions": "^1.3.3",
+ "ignorepatterns": "^1.1.0"
+ }
+ },
+ "ignorepatterns": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ignorepatterns/-/ignorepatterns-1.1.0.tgz",
+ "integrity": "sha1-rI9DbyI5td+2bV8NOpBKh6xnzF4="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc="
+ },
+ "interpret": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY="
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha1-N9905DCg5HVQ/lSi3v4w2KzZX2U="
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=",
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=",
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=",
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+ },
+ "knex": {
+ "version": "0.19.4",
+ "resolved": "https://registry.npmjs.org/knex/-/knex-0.19.4.tgz",
+ "integrity": "sha1-z2L4gkOSOHFSoKGIplhdXepoMrs=",
+ "requires": {
+ "bluebird": "^3.5.5",
+ "colorette": "1.1.0",
+ "commander": "^3.0.1",
+ "debug": "4.1.1",
+ "getopts": "2.2.5",
+ "inherits": "~2.0.4",
+ "interpret": "^1.2.0",
+ "liftoff": "3.1.0",
+ "lodash": "^4.17.15",
+ "mkdirp": "^0.5.1",
+ "pg-connection-string": "2.1.0",
+ "tarn": "^2.0.0",
+ "tildify": "2.0.0",
+ "uuid": "^3.3.3",
+ "v8flags": "^3.1.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
+ }
+ }
+ },
+ "liftoff": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
+ "integrity": "sha1-ybpggfkIZwYH7nkGLXAN8GLFLtM=",
+ "requires": {
+ "extend": "^3.0.0",
+ "findup-sync": "^3.0.0",
+ "fined": "^1.0.1",
+ "flagged-respawn": "^1.0.0",
+ "is-plain-object": "^2.0.4",
+ "object.map": "^1.0.0",
+ "rechoir": "^0.6.2",
+ "resolve": "^1.1.7"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="
+ },
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha1-mntxz7fTYaGU6lVSQckvdGjVvyg="
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "make-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+ "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=",
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "make-plural": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-3.0.6.tgz",
+ "integrity": "sha1-IDOgO6wpC487uRJY9lud9+iwHKc=",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "math-interval-parser": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-1.1.0.tgz",
+ "integrity": "sha1-2+2lsGsySZc8bfYXD94jhvCv2JM=",
+ "requires": {
+ "xregexp": "^2.0.0"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "messageformat": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-0.3.1.tgz",
+ "integrity": "sha1-5Y//gkXps5cXmeW0PbWLPpQX9aI=",
+ "requires": {
+ "async": "~1.5.2",
+ "glob": "~6.0.4",
+ "make-plural": "~3.0.3",
+ "nopt": "~3.0.6",
+ "watchr": "~2.4.13"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE="
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI="
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=",
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=",
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mustache": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.1.0.tgz",
+ "integrity": "sha512-3Bxq1R5LBZp7fbFPZzFe5WN4s0q3+gxZaZuZVY+QctYJiCiVgXHOTIC0/HgZuOPFt/6BQcx5u0H2CUOxT/RoGQ=="
+ },
+ "mysql2": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-1.7.0.tgz",
+ "integrity": "sha1-L78xTaAWph0Dj/zVeioKo7e46sw=",
+ "requires": {
+ "denque": "^1.4.1",
+ "generate-function": "^2.3.1",
+ "iconv-lite": "^0.5.0",
+ "long": "^4.0.0",
+ "lru-cache": "^5.1.1",
+ "named-placeholders": "^1.1.2",
+ "seq-queue": "^0.0.5",
+ "sqlstring": "^2.3.1"
+ }
+ },
+ "named-placeholders": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz",
+ "integrity": "sha1-zrH7/1C2szSStc8hTM9eOc7z0Og=",
+ "requires": {
+ "lru-cache": "^4.1.3"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ }
+ }
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs="
+ },
+ "neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+ "requires": {
+ "array-each": "^1.0.1",
+ "array-slice": "^1.0.0",
+ "for-own": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+ "requires": {
+ "for-own": "^1.0.0",
+ "make-iterator": "^1.0.0"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
+ }
+ }
+ },
+ "packet-reader": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
+ "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
+ },
+ "parse-filepath": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "map-cache": "^0.2.0",
+ "path-root": "^0.1.1"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ="
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw="
+ },
+ "path-root": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+ "requires": {
+ "path-root-regex": "^0.1.0"
+ }
+ },
+ "path-root-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+ "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "pg": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-7.14.0.tgz",
+ "integrity": "sha512-TLsdOWKFu44vHdejml4Uoo8h0EwCjdIj9Z9kpz7pA5i8iQxOTwVb1+Fy+X86kW5AXKxQpYpYDs4j/qPDbro/lg==",
+ "requires": {
+ "buffer-writer": "2.0.0",
+ "packet-reader": "1.0.0",
+ "pg-connection-string": "0.1.3",
+ "pg-pool": "^2.0.7",
+ "pg-types": "^2.1.0",
+ "pgpass": "1.x",
+ "semver": "4.3.2"
+ },
+ "dependencies": {
+ "pg-connection-string": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz",
+ "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc="
+ },
+ "semver": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
+ "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c="
+ }
+ }
+ },
+ "pg-connection-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.1.0.tgz",
+ "integrity": "sha1-4HJY8oBHZUCySBjrtdyinhAcpQI="
+ },
+ "pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
+ },
+ "pg-pool": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.7.tgz",
+ "integrity": "sha512-UiJyO5B9zZpu32GSlP0tXy8J2NsJ9EFGFfz5v6PSbdz/1hBLX1rNiiy5+mAm5iJJYwfCv4A0EBcQLGWwjbpzZw=="
+ },
+ "pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "requires": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ }
+ },
+ "pgpass": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz",
+ "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=",
+ "requires": {
+ "split": "^1.0.0"
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+ },
+ "postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
+ },
+ "postgres-bytea": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
+ "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
+ },
+ "postgres-date": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.4.tgz",
+ "integrity": "sha512-bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA=="
+ },
+ "postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "requires": {
+ "xtend": "^4.0.0"
+ }
+ },
+ "promise": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz",
+ "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==",
+ "requires": {
+ "asap": "~2.0.6"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+ "integrity": "sha1-NMvWSi2B9LH9IedvnwbIpFKZ7jQ=",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE="
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "resolve": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+ "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ }
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safefs": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/safefs/-/safefs-3.2.2.tgz",
+ "integrity": "sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw=",
+ "requires": {
+ "graceful-fs": "*"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
+ },
+ "scandirectory": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz",
+ "integrity": "sha1-bOA/VKCQtmjjy+2/IO354xBZPnI=",
+ "requires": {
+ "ignorefs": "^1.0.0",
+ "safefs": "^3.1.2",
+ "taskgroup": "^4.0.5"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="
+ }
+ }
+ },
+ "seq-queue": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
+ "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4="
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM="
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=",
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
+ },
+ "sqlstring": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
+ "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ },
+ "tarn": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tarn/-/tarn-2.0.0.tgz",
+ "integrity": "sha1-xoSZ9piB+ZrpVbQxfKfSEtlC/e4="
+ },
+ "taskgroup": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-4.3.1.tgz",
+ "integrity": "sha1-feGT/r12gnPEV3MElwJNUSwnkVo=",
+ "requires": {
+ "ambi": "^2.2.0",
+ "csextends": "^1.0.3"
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "tildify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
+ "integrity": "sha1-8gXzZ01nfOaYtwZ6melJzgO0dUo="
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typechecker": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.1.0.tgz",
+ "integrity": "sha1-0cIJOlT/ihn1jP+HfuqlTyJC04M="
+ },
+ "uglify-js": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
+ "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
+ "optional": true,
+ "requires": {
+ "commander": "~2.20.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "optional": true
+ }
+ }
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+ "integrity": "sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY="
+ },
+ "v8flags": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
+ "integrity": "sha1-/J3CNSHKIMVDP4HMTrmzAzuxBdg=",
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "watchr": {
+ "version": "2.4.13",
+ "resolved": "https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz",
+ "integrity": "sha1-10hHu01vkPYf4sdPn2hmKqDgdgE=",
+ "requires": {
+ "eachr": "^2.0.2",
+ "extendr": "^2.1.0",
+ "extract-opts": "^2.2.0",
+ "ignorefs": "^1.0.0",
+ "safefs": "^3.1.2",
+ "scandirectory": "^2.5.0",
+ "taskgroup": "^4.2.0",
+ "typechecker": "^2.0.8"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xregexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
+ "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek="
+ }
+ }
+}
diff --git a/explorer/website/backend/package.json b/explorer/website/backend/package.json
new file mode 100644
index 00000000..376190a5
--- /dev/null
+++ b/explorer/website/backend/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "website",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "body-parser": "^1.19.0",
+ "config": "^3.2.2",
+ "cookie-parser": "^1.4.4",
+ "express": "^4.17.1",
+ "express-handlebars": "^3.1.0",
+ "i18n": "^0.8.3",
+ "knex": "^0.19.4",
+ "mysql2": "^1.7.0",
+ "pg": "^7.14.0"
+ }
+}
diff --git a/explorer/website/backend/src/application.js b/explorer/website/backend/src/application.js
new file mode 100644
index 00000000..fe11af33
--- /dev/null
+++ b/explorer/website/backend/src/application.js
@@ -0,0 +1,116 @@
+const util = require('./util');
+
+class Application {
+ constructor() {
+ this.expressClass = require('express');
+ this.express = this.expressClass();
+ this.lang = require("i18n");
+ this.config = require('config');
+
+ this.frontEndPath = __dirname + '/../../frontend';
+
+ this.controllerMap = {};
+
+ this.initialize();
+ }
+
+ getController(controllerClass) {
+ const name = controllerClass.name;
+ if(! this.controllerMap[name]) {
+ const controller = new controllerClass();
+ this.controllerMap[name] = controller;
+ controller.initialize(this);
+ }
+ return this.controllerMap[name];
+ }
+
+ getControllerRoute(controllerClass, functionName) {
+ const controller = this.getController(controllerClass);
+ return controller[functionName].bind(controller);
+ }
+
+ getDatabase() {
+ return this.database;
+ }
+
+ getExpressClass() {
+ return this.expressClass;
+ }
+
+ getExpress() {
+ return this.express;
+ }
+
+ getFrontEndPath() {
+ return this.frontEndPath;
+ }
+
+ getFrontEndViewsPath(path) {
+ if(! path) {
+ path = '';
+ }
+ return this.frontEndPath + '/views' + path;
+ }
+
+ getLang() {
+ return this.lang;
+ }
+
+ initialize() {
+ this.doInitializeDatabase();
+ this.doInitializeTemplateEngine();
+
+ require('./routes').initializeRoutes(this);
+ }
+
+ doInitializeDatabase() {
+ const dbConfig = this.config.get('database');
+ const knex = require('knex');
+ this.database = knex({
+ client: dbConfig.driver,
+ connection: {
+ host: dbConfig.host,
+ user: dbConfig.user,
+ password: dbConfig.password,
+ database: dbConfig.database,
+ }
+ });
+ //this.database.on('query', console.log);
+ }
+
+ doInitializeTemplateEngine() {
+ const hbs = require('express-handlebars');
+ this.express.set('view engine', 'hbs');
+
+ const viewDirName = this.getFrontEndViewsPath();
+ this.express.set('views', viewDirName);
+ this.express.engine('hbs', hbs({
+ extname: 'hbs',
+ defaultView: 'home',
+ defaultLayout: 'default',
+ layoutsDir: viewDirName + '/layouts/',
+ partialsDir: viewDirName + '/partials/'
+ }));
+
+ this.lang.configure({
+ // default to en
+ locales: [ 'en', 'de' ],
+ cookie: 'synapselocals',
+ directory: __dirname + '/locales'
+ });
+ this.express.use(require('cookie-parser')());
+ this.express.use(this.lang.init);
+
+ require('./templatehelpers').initializeTemplateHelpers(this);
+ }
+
+ run() {
+ const serverConfig = this.config.get('server');
+ const port = util.checkValue(serverConfig.port, 8080);
+ this.express.listen(port, () => {
+ console.log("Server is listening on port " + port);
+ });
+ }
+}
+
+module.exports = { Application: Application };
diff --git a/explorer/website/backend/src/controllers/blockcontroller.js b/explorer/website/backend/src/controllers/blockcontroller.js
new file mode 100644
index 00000000..a53e5e56
--- /dev/null
+++ b/explorer/website/backend/src/controllers/blockcontroller.js
@@ -0,0 +1,61 @@
+const Controller = require('./controller').Controller;
+const util = require('../util');
+
+class BlockController extends Controller {
+ constructor() {
+ super();
+ }
+
+ viewBlockDetail(request, response) {
+ const urlQueries = request.query;
+ let hash = urlQueries.hash;
+ hash = '\\x' + hash;
+ this.getDatabase().select().from('blocks').whereRaw("hash = ?", [ hash ]).then((blockList) => {
+ if(blockList.length === 0) {
+ this.send404(response);
+ }
+ else {
+ const block = util.bufferFieldsToHex(blockList[0]);
+ response.render('pages/blockdetail', { title: 'Block detail', block: block });
+ }
+ });
+ }
+
+ getBlocks(request, response) {
+ let urlQueries = request.query;
+ let query = this.getDatabase().select().from('blocks');
+ if(urlQueries.start > 0) {
+ query = query.offset(parseInt(urlQueries.start));
+ }
+ if(urlQueries.length) {
+ query = query.limit(parseInt(urlQueries.length));
+ }
+ query.then((blockList) => {
+ this.getDatabase().count('id as C').from('blocks').then(function(total) {
+ let count = total[0].C;
+ let returnData = {
+ draw: query.draw ^ 0,
+ recordsTotal: count,
+ recordsFiltered: count,
+ data: util.bufferFieldsToHex(blockList),
+ };
+ response.json(returnData);
+ });
+ });
+ }
+
+ getBlock(request, response) {
+ let hash = request.params.hash;
+ this.getDatabase().select().from('blocks').whereRaw('hex(hash) = ?', [ hash ]).then((blockList) => {
+ if(blockList.length === 0) {
+ this.apiSend404(response);
+ }
+ else {
+ response.json(util.bufferFieldsToHex(blockList[0]));
+ }
+ });
+ }
+
+}
+
+module.exports = { BlockController: BlockController };
diff --git a/explorer/website/backend/src/controllers/controller.js b/explorer/website/backend/src/controllers/controller.js
new file mode 100644
index 00000000..72ad5d89
--- /dev/null
+++ b/explorer/website/backend/src/controllers/controller.js
@@ -0,0 +1,48 @@
+const util = require('../util');
+
+class Controller {
+ constructor() {
+ }
+
+ initialize(application) {
+ this.application = application;
+
+ this.doInitialize();
+ }
+
+ getApplication() {
+ return this.application;
+ }
+
+ getDatabase() {
+ return this.application.getDatabase();
+ }
+
+ apiSend404(response) {
+ response.status(404);
+ response.json({
+ message: 'not found'
+ });
+ }
+
+ send404(response) {
+ response.status(404);
+ response.json({
+ message: 'not found'
+ });
+ }
+
+ apiSendError(response, errorMessage, errorCode) {
+ errorMessage = util.checkValue(errorMessage, "Error");
+ errorCode = util.checkValue(errorCode, 1);
+ response.json({
+ message: errorMessage,
+ erroCode: errorCode
+ });
+ }
+
+ doInitialize() {
+ }
+}
+
+module.exports = { Controller: Controller };
diff --git a/explorer/website/backend/src/controllers/shardcontroller.js b/explorer/website/backend/src/controllers/shardcontroller.js
new file mode 100644
index 00000000..776d03f8
--- /dev/null
+++ b/explorer/website/backend/src/controllers/shardcontroller.js
@@ -0,0 +1,34 @@
+const Controller = require('./controller').Controller;
+const util = require('../util');
+
+class ShardController extends Controller {
+ constructor() {
+ super();
+ }
+
+ getShards(request, response) {
+ let urlQueries = request.query;
+ let query = this.getDatabase().select().from('shards');
+ if(urlQueries.start > 0) {
+ query = query.offset(parseInt(urlQueries.start));
+ }
+ if(urlQueries.length) {
+ query = query.limit(parseInt(urlQueries.length));
+ }
+ query.then((shardList) => {
+ this.getDatabase().count('id as C').from('shards').then(function(total) {
+ let count = total[0].C;
+ let returnData = {
+ draw: query.draw ^ 0,
+ recordsTotal: count,
+ recordsFiltered: count,
+ data: util.bufferFieldsToHex(shardList),
+ };
+ response.json(returnData);
+ });
+ });
+ }
+
+}
+
+module.exports = { ShardController: ShardController };
diff --git a/explorer/website/backend/src/controllers/transactioncontroller.js b/explorer/website/backend/src/controllers/transactioncontroller.js
new file mode 100644
index 00000000..d76e55e8
--- /dev/null
+++ b/explorer/website/backend/src/controllers/transactioncontroller.js
@@ -0,0 +1,36 @@
+const Controller = require('./controller').Controller;
+
+class TransactionController extends Controller {
+ constructor() {
+ super();
+ }
+
+ getTransactions(request, response) {
+ let urlQueries = request.query;
+ let query = this.getDatabase().select().from('transactions');
+ if(urlQueries.i) {
+ query = query.offset(parseInt(urlQueries.i));
+ }
+ if(urlQueries.c) {
+ query = query.limit(parseInt(urlQueries.c));
+ }
+ query.then(function(transactionList) {
+ response.json(transactionList);
+ });
+ }
+
+ getTransaction(request, response) {
+ let hash = request.params.hash;
+ this.getDatabase().select().from('transactions').whereRaw('hex(recipient_hash) = ?', [ hash ]).then((transactionList) => {
+ if(transactionList.length === 0) {
+ this.apiSend404(response);
+ }
+ else {
+ response.json(transactionList[0]);
+ }
+ });
+ }
+
+}
+
+module.exports = { TransactionController: TransactionController };
diff --git a/explorer/website/backend/src/controllers/validatorcontroller.js b/explorer/website/backend/src/controllers/validatorcontroller.js
new file mode 100644
index 00000000..dff0983f
--- /dev/null
+++ b/explorer/website/backend/src/controllers/validatorcontroller.js
@@ -0,0 +1,46 @@
+const Controller = require('./controller').Controller;
+const util = require('../util');
+
+class ValidatorController extends Controller {
+ constructor() {
+ super();
+ }
+
+ getValidators(request, response) {
+ let urlQueries = request.query;
+ let query = this.getDatabase().select().from('validators');
+ if(urlQueries.start > 0) {
+ query = query.offset(parseInt(urlQueries.start));
+ }
+ if(urlQueries.length) {
+ query = query.limit(parseInt(urlQueries.length));
+ }
+ query.then((validatorList) => {
+ this.getDatabase().count('id as C').from('validators').then(function(total) {
+ let count = total[0].C;
+ let returnData = {
+ draw: query.draw ^ 0,
+ recordsTotal: count,
+ recordsFiltered: count,
+ data: util.bufferFieldsToHex(validatorList),
+ };
+ response.json(returnData);
+ });
+ });
+ }
+
+ getValidator(request, response) {
+ let hash = request.params.hash;
+ this.getDatabase().select().from('validators').whereRaw('hex(validator_hash) = ?', [ hash ]).then((validatorList) => {
+ if(validatorList.length === 0) {
+ this.apiSend404(response);
+ }
+ else {
+ response.json(util.bufferFieldsToHex(validatorList[0]));
+ }
+ });
+ }
+
+}
+
+module.exports = { ValidatorController: ValidatorController };
diff --git a/explorer/website/backend/src/locales/de.json b/explorer/website/backend/src/locales/de.json
new file mode 100644
index 00000000..131fe02f
--- /dev/null
+++ b/explorer/website/backend/src/locales/de.json
@@ -0,0 +1,3 @@
+{
+ "test" : "This is a text in Germany"
+}
diff --git a/explorer/website/backend/src/locales/en.json b/explorer/website/backend/src/locales/en.json
new file mode 100644
index 00000000..f093ce4c
--- /dev/null
+++ b/explorer/website/backend/src/locales/en.json
@@ -0,0 +1,3 @@
+{
+ "test" : "This is a text in English"
+}
diff --git a/explorer/website/backend/src/routes.js b/explorer/website/backend/src/routes.js
new file mode 100644
index 00000000..ad89e052
--- /dev/null
+++ b/explorer/website/backend/src/routes.js
@@ -0,0 +1,54 @@
+const bodyParser = require('body-parser');
+
+const BlockController = require('./controllers/blockcontroller').BlockController;
+const TransactionController = require('./controllers/transactioncontroller').TransactionController;
+const ValidatorController = require('./controllers/validatorcontroller').ValidatorController;
+const ShardController = require('./controllers/shardcontroller').ShardController;
+
+function initializeRoutes(application) {
+ const _c = function(controllerClass, functionName) {
+ return application.getControllerRoute(controllerClass, functionName);
+ };
+
+ const express = application.getExpress();
+
+ // parse requests of content-type - application/x-www-form-urlencoded
+ express.use(bodyParser.urlencoded({ extended: true }));
+
+ // parse requests of content-type - application/json
+ express.use(bodyParser.json());
+
+ const publicFolder = __dirname + '/../../frontend/public/';
+ express.use('/', application.getExpressClass().static(publicFolder));
+
+ express.get('/', (request, response) => {
+ response.render('pages/home', { title: 'Home page' });
+ });
+
+ express.get('/validators', (request, response) => {
+ response.render('pages/validators', { title: 'Validator page' });
+ });
+
+ express.get('/shards', (request, response) => {
+ response.render('pages/shards', { title: 'Shard page' });
+ });
+
+ express.get('/block', _c(BlockController, 'viewBlockDetail'));
+
+ express.get('/api/blocks', _c(BlockController, 'getBlocks'));
+ express.get('/api/blocks/:hash', _c(BlockController, 'getBlock'));
+
+ express.get('/api/transactions', _c(TransactionController, 'getTransactions'));
+ express.get('/api/transactions/:hash', _c(TransactionController, 'getTransaction'));
+
+ express.get('/api/validators', _c(ValidatorController, 'getValidators'));
+ express.get('/api/validators/:hash', _c(ValidatorController, 'getValidator'));
+
+ express.get('/api/shards', _c(ShardController, 'getShards'));
+
+ express.get('/test', function (req, res) {
+ res.send(res.__('test'));
+ });
+}
+
+module.exports = { initializeRoutes: initializeRoutes };
diff --git a/explorer/website/backend/src/templatehelpers.js b/explorer/website/backend/src/templatehelpers.js
new file mode 100644
index 00000000..487494f2
--- /dev/null
+++ b/explorer/website/backend/src/templatehelpers.js
@@ -0,0 +1,35 @@
+const Handlebars = require('handlebars');
+const fs = require('fs');
+
+function doRegisterPartial(fileName)
+{
+ let name = fileName;
+ name = name.substr(0, name.lastIndexOf('.')) || name;
+ name = name.substr(name.lastIndexOf('/')) || name;
+ Handlebars.registerPartial(name, fs.readFileSync(fileName, 'utf8'));
+}
+
+function registerPartials(application)
+{
+ doRegisterPartial(application.getFrontEndViewsPath('/partials/test.hbs'));
+ doRegisterPartial(application.getFrontEndViewsPath('/partials/blocktable.hbs'));
+ doRegisterPartial(application.getFrontEndViewsPath('/partials/blockdetail.hbs'));
+ doRegisterPartial(application.getFrontEndViewsPath('/partials/maintabs.hbs'));
+}
+
+function registerHelpers(application)
+{
+ Handlebars.registerHelper("url", function(url) {
+ return url;
+ });
+ Handlebars.registerHelper("__", application.getLang().__);
+}
+
+function initializeTemplateHelpers(application)
+{
+ registerHelpers(application)
+
+ registerPartials(application);
+}
+
+module.exports = { initializeTemplateHelpers: initializeTemplateHelpers };
diff --git a/explorer/website/backend/src/util.js b/explorer/website/backend/src/util.js
new file mode 100644
index 00000000..1c74def8
--- /dev/null
+++ b/explorer/website/backend/src/util.js
@@ -0,0 +1,51 @@
+const util = {};
+
+util.hexToString = function(hex)
+{
+ let str = '';
+ for(let i = 0; i < hex.length; i += 2) {
+ str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
+ }
+ return str;
+}
+
+util.stringToHex = function(str)
+{
+ let hex = '';
+ for (let i = 0; i < str.length; ++i) {
+ hex += Number(str.charCodeAt(i)).toString(16);
+ }
+ return hex;
+}
+
+util.checkValue = function(value, defaultValue)
+{
+ if(value === undefined) {
+ if(defaultValue === undefined) {
+ defaultValue = null;
+ }
+ return defaultValue;
+ }
+
+ return value;
+}
+
+util.bufferFieldsToHex = function(dict)
+{
+ if(Array.isArray(dict)) {
+ for(var i = 0; i < dict.length; ++i) {
+ dict[i] = util.bufferFieldsToHex(dict[i]);
+ }
+ }
+ else {
+ for(var key in dict) {
+ if(dict[key] && dict[key].constructor == Buffer) {
+ dict[key] = dict[key].toString('hex');
+ }
+ }
+ }
+
+ return dict;
+}
+
+module.exports = util;
diff --git a/explorer/website/frontend/.gitignore b/explorer/website/frontend/.gitignore
new file mode 100644
index 00000000..a48cf0de
--- /dev/null
+++ b/explorer/website/frontend/.gitignore
@@ -0,0 +1 @@
+public
diff --git a/explorer/website/frontend/images/vendor/datatables.net-dt/sort_asc.png b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_asc.png
new file mode 100644
index 00000000..e1ba61a8
Binary files /dev/null and b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_asc.png differ
diff --git a/explorer/website/frontend/images/vendor/datatables.net-dt/sort_asc_disabled.png b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_asc_disabled.png
new file mode 100644
index 00000000..fb11dfe2
Binary files /dev/null and b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_asc_disabled.png differ
diff --git a/explorer/website/frontend/images/vendor/datatables.net-dt/sort_both.png b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_both.png
new file mode 100644
index 00000000..af5bc7c5
Binary files /dev/null and b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_both.png differ
diff --git a/explorer/website/frontend/images/vendor/datatables.net-dt/sort_desc.png b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_desc.png
new file mode 100644
index 00000000..0e156deb
Binary files /dev/null and b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_desc.png differ
diff --git a/explorer/website/frontend/images/vendor/datatables.net-dt/sort_desc_disabled.png b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_desc_disabled.png
new file mode 100644
index 00000000..c9fdd8a1
Binary files /dev/null and b/explorer/website/frontend/images/vendor/datatables.net-dt/sort_desc_disabled.png differ
diff --git a/explorer/website/frontend/js/app.js b/explorer/website/frontend/js/app.js
new file mode 100644
index 00000000..2c8fdd96
--- /dev/null
+++ b/explorer/website/frontend/js/app.js
@@ -0,0 +1,45 @@
+import jQuery from "jquery";
+window.$ = window.jQuery = jQuery;
+
+//import dt from 'datatables.net';
+
+import 'datatables.net';
+import 'datatables.net-zf';
+
+//require('datatables.net-zf')();
+
+window.util = require('./util');
+
+window.sprintf = require('sprintf-js').sprintf;
+window.vsprintf = require('sprintf-js').vsprintf;
+
+$(function() {
+ $(document).foundation();
+});
+
+var defaultTableOptions = {
+ searching: false,
+ lengthChange: false,
+ responsive: true,
+ fixedHeader: {
+ header: true,
+ },
+ lengthMenu: [ [ 25, 50, 100 ], [ 25, 50, 100 ] ],
+ pageLength: 25,
+ info: false,
+ headerCallback: function( thead, data, start, end, display ) {
+ $(thead).closest('thead').find('th').each(function(){
+ //$(this).css('color', 'red').css('border','none');
+ $(this).css('border','none');
+ });
+ },
+ initComplete: function(settings) {
+ var table = settings.oInstance.api();
+ $(table.table().node()).removeClass('no-footer');
+ },
+};
+
+window.createTableOptions = function(options) {
+ return Object.assign({}, defaultTableOptions, options)
+};
+
diff --git a/explorer/website/frontend/js/util.js b/explorer/website/frontend/js/util.js
new file mode 100644
index 00000000..856229af
--- /dev/null
+++ b/explorer/website/frontend/js/util.js
@@ -0,0 +1,20 @@
+const util = {};
+
+util.toHexString = function(byteArray) {
+ return Array.from(byteArray, function(byte) {
+ return ('0' + (byte & 0xFF).toString(16)).slice(-2);
+ }).join('')
+}
+
+util.shortenStringWithEllipsis = function(text)
+{
+ if(text.length < 12) {
+ return text
+ }
+
+ return text.substring(0, 4)
+ + '...'
+ + text.substring(text.length - 4)
+}
+
+module.exports = util;
diff --git a/explorer/website/frontend/mix-manifest.json b/explorer/website/frontend/mix-manifest.json
new file mode 100644
index 00000000..6be3df92
--- /dev/null
+++ b/explorer/website/frontend/mix-manifest.json
@@ -0,0 +1,4 @@
+{
+ "/public/js/app.js": "/public/js/app.js",
+ "/public/css/app.css": "/public/css/app.css"
+}
diff --git a/explorer/website/frontend/package-lock.json b/explorer/website/frontend/package-lock.json
new file mode 100644
index 00000000..693cc62c
--- /dev/null
+++ b/explorer/website/frontend/package-lock.json
@@ -0,0 +1,9650 @@
+{
+ "name": "frontend",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/core": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz",
+ "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.6.2",
+ "@babel/helpers": "^7.6.2",
+ "@babel/parser": "^7.6.2",
+ "@babel/template": "^7.6.0",
+ "@babel/traverse": "^7.6.2",
+ "@babel/types": "^7.6.0",
+ "convert-source-map": "^1.1.0",
+ "debug": "^4.1.0",
+ "json5": "^2.1.0",
+ "lodash": "^4.17.13",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz",
+ "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.6.0",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz",
+ "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
+ "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz",
+ "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.4.4",
+ "@babel/traverse": "^7.4.4",
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz",
+ "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz",
+ "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
+ "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
+ "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz",
+ "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz",
+ "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.5.5"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
+ "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz",
+ "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "@babel/template": "^7.4.4",
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz",
+ "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
+ "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz",
+ "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz",
+ "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-wrap-function": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz",
+ "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz",
+ "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
+ "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz",
+ "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.2.0"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz",
+ "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.6.0",
+ "@babel/traverse": "^7.6.2",
+ "@babel/types": "^7.6.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+ "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz",
+ "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==",
+ "dev": true
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz",
+ "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz",
+ "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
+ "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz",
+ "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz",
+ "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz",
+ "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
+ "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz",
+ "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz",
+ "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz",
+ "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz",
+ "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz",
+ "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz",
+ "integrity": "sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz",
+ "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-define-map": "^7.5.5",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz",
+ "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz",
+ "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz",
+ "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz",
+ "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz",
+ "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz",
+ "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz",
+ "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz",
+ "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz",
+ "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz",
+ "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz",
+ "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.4.4",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz",
+ "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.4.4",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz",
+ "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz",
+ "integrity": "sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g==",
+ "dev": true,
+ "requires": {
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz",
+ "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz",
+ "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz",
+ "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "^7.4.4",
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz",
+ "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz",
+ "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.0"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz",
+ "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz",
+ "integrity": "sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "resolve": "^1.8.1",
+ "semver": "^5.5.1"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz",
+ "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz",
+ "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz",
+ "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz",
+ "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz",
+ "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz",
+ "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.2.tgz",
+ "integrity": "sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
+ "@babel/plugin-proposal-dynamic-import": "^7.5.0",
+ "@babel/plugin-proposal-json-strings": "^7.2.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.6.2",
+ "@babel/plugin-syntax-async-generators": "^7.2.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-transform-arrow-functions": "^7.2.0",
+ "@babel/plugin-transform-async-to-generator": "^7.5.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
+ "@babel/plugin-transform-block-scoping": "^7.6.2",
+ "@babel/plugin-transform-classes": "^7.5.5",
+ "@babel/plugin-transform-computed-properties": "^7.2.0",
+ "@babel/plugin-transform-destructuring": "^7.6.0",
+ "@babel/plugin-transform-dotall-regex": "^7.6.2",
+ "@babel/plugin-transform-duplicate-keys": "^7.5.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
+ "@babel/plugin-transform-for-of": "^7.4.4",
+ "@babel/plugin-transform-function-name": "^7.4.4",
+ "@babel/plugin-transform-literals": "^7.2.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.2.0",
+ "@babel/plugin-transform-modules-amd": "^7.5.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.6.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.5.0",
+ "@babel/plugin-transform-modules-umd": "^7.2.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.2",
+ "@babel/plugin-transform-new-target": "^7.4.4",
+ "@babel/plugin-transform-object-super": "^7.5.5",
+ "@babel/plugin-transform-parameters": "^7.4.4",
+ "@babel/plugin-transform-property-literals": "^7.2.0",
+ "@babel/plugin-transform-regenerator": "^7.4.5",
+ "@babel/plugin-transform-reserved-words": "^7.2.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.2.0",
+ "@babel/plugin-transform-spread": "^7.6.2",
+ "@babel/plugin-transform-sticky-regex": "^7.2.0",
+ "@babel/plugin-transform-template-literals": "^7.4.4",
+ "@babel/plugin-transform-typeof-symbol": "^7.2.0",
+ "@babel/plugin-transform-unicode-regex": "^7.6.2",
+ "@babel/types": "^7.6.0",
+ "browserslist": "^4.6.0",
+ "core-js-compat": "^3.1.1",
+ "invariant": "^2.2.2",
+ "js-levenshtein": "^1.1.3",
+ "semver": "^5.5.0"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.2.tgz",
+ "integrity": "sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ },
+ "@babel/template": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz",
+ "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.6.0",
+ "@babel/types": "^7.6.0"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz",
+ "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.6.2",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "@babel/parser": "^7.6.2",
+ "@babel/types": "^7.6.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/types": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz",
+ "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
+ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
+ "dev": true
+ },
+ "@types/events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
+ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
+ "dev": true
+ },
+ "@types/glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
+ "dev": true,
+ "requires": {
+ "@types/events": "*",
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "12.7.8",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.8.tgz",
+ "integrity": "sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==",
+ "dev": true
+ },
+ "@types/q": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
+ "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
+ "dev": true
+ },
+ "@vue/component-compiler-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz",
+ "integrity": "sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw==",
+ "dev": true,
+ "requires": {
+ "consolidate": "^0.15.1",
+ "hash-sum": "^1.0.2",
+ "lru-cache": "^4.1.2",
+ "merge-source-map": "^1.1.0",
+ "postcss": "^7.0.14",
+ "postcss-selector-parser": "^5.0.0",
+ "prettier": "1.16.3",
+ "source-map": "~0.6.1",
+ "vue-template-es2015-compiler": "^1.9.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
+ "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz",
+ "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
+ "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz",
+ "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz",
+ "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
+ "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
+ "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
+ "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
+ "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
+ "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
+ "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
+ "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
+ "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/helper-wasm-section": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5",
+ "@webassemblyjs/wasm-opt": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5",
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
+ "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/ieee754": "1.8.5",
+ "@webassemblyjs/leb128": "1.8.5",
+ "@webassemblyjs/utf8": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
+ "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
+ "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-api-error": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/ieee754": "1.8.5",
+ "@webassemblyjs/leb128": "1.8.5",
+ "@webassemblyjs/utf8": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
+ "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/floating-point-hex-parser": "1.8.5",
+ "@webassemblyjs/helper-api-error": "1.8.5",
+ "@webassemblyjs/helper-code-frame": "1.8.5",
+ "@webassemblyjs/helper-fsm": "1.8.5",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
+ "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "acorn": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
+ "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
+ "dev": true
+ },
+ "adjust-sourcemap-loader": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz",
+ "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==",
+ "dev": true,
+ "requires": {
+ "assert": "1.4.1",
+ "camelcase": "5.0.0",
+ "loader-utils": "1.2.3",
+ "object-path": "0.11.4",
+ "regex-parser": "2.2.10"
+ },
+ "dependencies": {
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ }
+ },
+ "camelcase": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "ajv": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "dev": true
+ },
+ "ajv-keywords": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
+ "dev": true
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "dev": true
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ }
+ }
+ },
+ "arity-n": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz",
+ "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=",
+ "dev": true
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "ast-types": {
+ "version": "0.9.6",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
+ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
+ "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.6.3",
+ "caniuse-lite": "^1.0.30000980",
+ "chalk": "^2.4.2",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.17",
+ "postcss-value-parser": "^4.0.0"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-loader": {
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz",
+ "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^2.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "pify": "^4.0.1"
+ }
+ },
+ "babel-merge": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/babel-merge/-/babel-merge-2.0.1.tgz",
+ "integrity": "sha512-puTQQxuzS+0JlMyVdfsTVaCgzqjBXKPMv7oUANpYcHFY+7IptWZ4PZDYX+qBxrRMtrriuBA44LkKpS99EJzqVA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.0.0-beta.49",
+ "deepmerge": "^2.1.0",
+ "object.omit": "^3.0.0"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
+ "dev": true
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
+ "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "browserslist": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz",
+ "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000989",
+ "electron-to-chromium": "^1.3.247",
+ "node-releases": "^1.1.29"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "cacache": {
+ "version": "12.0.3",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
+ "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
+ },
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^2.0.0"
+ }
+ },
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000997",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000997.tgz",
+ "integrity": "sha512-BQLFPIdj2ntgBNWp9Q64LGUIEmvhKkzzHhUHR3CD5A9Lb7ZKF20/+sgadhFap69lk5XmK1fTUleDclaRFvgVUA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+ "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "coa": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
+ "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
+ "dev": true,
+ "requires": {
+ "@types/q": "^1.5.1",
+ "chalk": "^2.4.1",
+ "q": "^1.1.2"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collect.js": {
+ "version": "4.16.6",
+ "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.16.6.tgz",
+ "integrity": "sha512-Y0mR+JAWmUmA7HOByjdtc4dnQF/PRl4ap3jpG7RpC5vJjMmjDxBC8SFtp0s0vcRKoY+9WhJG0HUk1H2ze0Ao7A==",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
+ "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "dev": true,
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "compose-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
+ "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=",
+ "dev": true,
+ "requires": {
+ "arity-n": "^1.0.4"
+ }
+ },
+ "compressible": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
+ "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
+ "dev": true,
+ "requires": {
+ "mime-db": ">= 1.40.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "concatenate": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/concatenate/-/concatenate-0.0.2.tgz",
+ "integrity": "sha1-C0nW6MQQR9dyjNyNYqCGYjOXtJ8=",
+ "dev": true,
+ "requires": {
+ "globs": "^0.1.2"
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "^0.1.4"
+ }
+ },
+ "consolidate": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
+ "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.1.1"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-js-compat": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz",
+ "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.6.6",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-env": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
+ "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.5",
+ "is-windows": "^1.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
+ "dev": true
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ },
+ "css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ }
+ },
+ "css-loader": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz",
+ "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "css-selector-tokenizer": "^0.7.0",
+ "icss-utils": "^2.1.0",
+ "loader-utils": "^1.0.2",
+ "lodash": "^4.17.11",
+ "postcss": "^6.0.23",
+ "postcss-modules-extract-imports": "^1.2.0",
+ "postcss-modules-local-by-default": "^1.2.0",
+ "postcss-modules-scope": "^1.1.0",
+ "postcss-modules-values": "^1.3.0",
+ "postcss-value-parser": "^3.3.0",
+ "source-list-map": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "css-select": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz",
+ "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^2.1.2",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "css-select-base-adapter": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
+ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
+ "dev": true
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+ "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1",
+ "regexpu-core": "^1.0.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "css-tree": {
+ "version": "1.0.0-alpha.33",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz",
+ "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.4",
+ "source-map": "^0.5.3"
+ }
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "4.1.10",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz",
+ "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.7",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz",
+ "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==",
+ "dev": true,
+ "requires": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.2",
+ "postcss-unique-selectors": "^4.0.1"
+ }
+ },
+ "cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
+ "dev": true
+ },
+ "cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
+ "dev": true
+ },
+ "cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
+ "dev": true
+ },
+ "csso": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz",
+ "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==",
+ "dev": true,
+ "requires": {
+ "css-tree": "1.0.0-alpha.29"
+ },
+ "dependencies": {
+ "css-tree": {
+ "version": "1.0.0-alpha.29",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
+ "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "~1.1.0",
+ "source-map": "^0.5.3"
+ }
+ },
+ "mdn-data": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz",
+ "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
+ "dev": true
+ }
+ }
+ },
+ "cyclist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+ "dev": true
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "datatables.net": {
+ "version": "1.10.19",
+ "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.19.tgz",
+ "integrity": "sha512-+ljXcI6Pj3PTGy5pesp3E5Dr3x3AV45EZe0o1r0gKENN2gafBKXodVnk2ypKwl2tTmivjxbkiqoWnipTefyBTA==",
+ "requires": {
+ "jquery": ">=1.7"
+ }
+ },
+ "datatables.net-dt": {
+ "version": "1.10.19",
+ "resolved": "https://registry.npmjs.org/datatables.net-dt/-/datatables.net-dt-1.10.19.tgz",
+ "integrity": "sha512-joFHYjLYvr9VnC9Fx3e+8jtXnQ/fP/mPFWt9p0NhZ3Zm5N0jlYyWhJQbnLkihOLuDcDFMaGdBQSvmIdTVdgGyw==",
+ "requires": {
+ "datatables.net": "1.10.19",
+ "jquery": ">=1.7"
+ }
+ },
+ "datatables.net-zf": {
+ "version": "1.10.20",
+ "resolved": "https://registry.npmjs.org/datatables.net-zf/-/datatables.net-zf-1.10.20.tgz",
+ "integrity": "sha512-UYi5LqdjkwGxuljGMhJpxuZMrUKZ6BWDeXaEZe+Y53B+s5bf9+z1KZaqqv+jP6ClAQ8LF0ftc5yDAA1l0Qc/FA==",
+ "requires": {
+ "datatables.net": "1.10.20",
+ "jquery": ">=1.7"
+ },
+ "dependencies": {
+ "datatables.net": {
+ "version": "1.10.20",
+ "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.20.tgz",
+ "integrity": "sha512-4E4S7tTU607N3h0fZPkGmAtr9mwy462u+VJ6gxYZ8MxcRIjZqHy3Dv1GNry7i3zQCktTdWbULVKBbkAJkuHEnQ==",
+ "requires": {
+ "jquery": ">=1.7"
+ }
+ }
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz",
+ "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==",
+ "dev": true,
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "deepmerge": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
+ "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==",
+ "dev": true
+ },
+ "default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+ "dev": true
+ },
+ "detect-node": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
+ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "path-type": "^3.0.0"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz",
+ "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+ "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
+ "dev": true
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotenv": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
+ "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==",
+ "dev": true
+ },
+ "dotenv-expand": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz",
+ "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.267",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.267.tgz",
+ "integrity": "sha512-9Q2ixAJC+oHjWNtJV0MQ4vJMCWSowIrC6V6vcr+bwPddTDHj2ddv9xxXCzf4jT/fy6HP7maPoW0gifXkRxCttQ==",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz",
+ "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "tapable": "^1.0.0"
+ }
+ },
+ "entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
+ "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "error-stack-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.4.tgz",
+ "integrity": "sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ==",
+ "dev": true,
+ "requires": {
+ "stackframe": "^1.1.0"
+ }
+ },
+ "es-abstract": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
+ "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.0",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.6.0",
+ "object-keys": "^1.1.1",
+ "string.prototype.trimleft": "^2.0.0",
+ "string.prototype.trimright": "^2.0.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.51",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz",
+ "integrity": "sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.1",
+ "next-tick": "^1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz",
+ "integrity": "sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ==",
+ "dev": true,
+ "requires": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.51"
+ }
+ },
+ "es6-templates": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz",
+ "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=",
+ "dev": true,
+ "requires": {
+ "recast": "~0.11.12",
+ "through": "~2.3.6"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "dev": true
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
+ "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+ "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+ "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+ "dev": true,
+ "requires": {
+ "original": "^1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "extract-text-webpack-plugin": {
+ "version": "4.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz",
+ "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==",
+ "dev": true,
+ "requires": {
+ "async": "^2.4.1",
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^0.4.5",
+ "webpack-sources": "^1.1.0"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
+ "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.1.2",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.3",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "figgy-pudding": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+ "dev": true
+ },
+ "file-loader": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
+ "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "file-type": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz",
+ "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+ "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
+ "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "foundation-sites": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/foundation-sites/-/foundation-sites-6.5.3.tgz",
+ "integrity": "sha512-ZwI0idjHHjezh6jRjpPxkczvmtUuJ1uGatZHpyloX0MvsFHfM0BFoxrqdXryXugGPdmb+yJi3JYMnz6+5t3K1A=="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "friendly-errors-webpack-plugin": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz",
+ "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "error-stack-parser": "^2.0.0",
+ "string-width": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minipass": {
+ "version": "2.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.7.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ },
+ "dependencies": {
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ }
+ }
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "globby": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz",
+ "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "2.0.0",
+ "fast-glob": "^2.0.2",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "globs": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globs/-/globs-0.1.4.tgz",
+ "integrity": "sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "dev": true
+ },
+ "growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
+ "dev": true
+ },
+ "handle-thing": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
+ "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+ "dev": true
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
+ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
+ "dev": true
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "html-loader": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz",
+ "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==",
+ "dev": true,
+ "requires": {
+ "es6-templates": "^0.2.3",
+ "fastparse": "^1.1.1",
+ "html-minifier": "^3.5.8",
+ "loader-utils": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "html-minifier": {
+ "version": "3.5.21",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+ "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
+ "dev": true,
+ "requires": {
+ "camel-case": "3.0.x",
+ "clean-css": "4.2.x",
+ "commander": "2.17.x",
+ "he": "1.2.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+ "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
+ "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+ "dev": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "imagemin": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz",
+ "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==",
+ "dev": true,
+ "requires": {
+ "file-type": "^10.7.0",
+ "globby": "^8.0.1",
+ "make-dir": "^1.0.0",
+ "p-pipe": "^1.1.0",
+ "pify": "^4.0.1",
+ "replace-ext": "^1.0.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "img-loader": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-3.0.1.tgz",
+ "integrity": "sha512-0jDJqexgzOuq3zlXwFTBKJlMcaP1uXyl5t4Qu6b1IgXb3IwBDjPfVylBC8vHFIIESDw/S+5QkBbtBrt4T8wESA==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0"
+ }
+ },
+ "import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "dev": true,
+ "requires": {
+ "import-from": "^2.1.0"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true
+ },
+ "internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dev": true,
+ "requires": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ }
+ },
+ "interpret": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "dev": true
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arguments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+ "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true
+ },
+ "is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^2.1.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.2"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
+ "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "^1.1.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "jquery": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
+ "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
+ },
+ "js-levenshtein": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
+ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ }
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+ "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
+ "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+ "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "laravel-mix": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-5.0.0.tgz",
+ "integrity": "sha512-QpsVoM6zGa83E5AUMwOmi4wKdYfJMaW1jIpJ1CCL74abOHj1ne25njBQ4detO41GAjIkZIkrmwECEcOebC8+3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.2.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.2.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
+ "@babel/plugin-transform-runtime": "^7.2.0",
+ "@babel/preset-env": "^7.2.0",
+ "@babel/runtime": "^7.2.0",
+ "autoprefixer": "^9.4.2",
+ "babel-loader": "^8.0.4",
+ "babel-merge": "^2.0.1",
+ "chokidar": "^2.0.3",
+ "clean-css": "^4.1.3",
+ "collect.js": "^4.12.8",
+ "concatenate": "0.0.2",
+ "css-loader": "^1.0.1",
+ "dotenv": "^6.2.0",
+ "dotenv-expand": "^4.2.0",
+ "extract-text-webpack-plugin": "v4.0.0-beta.0",
+ "file-loader": "^2.0.0",
+ "friendly-errors-webpack-plugin": "^1.6.1",
+ "fs-extra": "^7.0.1",
+ "glob": "^7.1.2",
+ "html-loader": "^0.5.5",
+ "imagemin": "^6.0.0",
+ "img-loader": "^3.0.0",
+ "lodash": "^4.17.15",
+ "md5": "^2.2.1",
+ "optimize-css-assets-webpack-plugin": "^5.0.1",
+ "postcss-loader": "^3.0.0",
+ "style-loader": "^0.23.1",
+ "terser": "^3.11.0",
+ "terser-webpack-plugin": "^1.2.2",
+ "vue-loader": "^15.4.2",
+ "webpack": "^4.36.1",
+ "webpack-cli": "^3.1.2",
+ "webpack-dev-server": "^3.1.14",
+ "webpack-merge": "^4.1.0",
+ "webpack-notifier": "^1.5.1",
+ "yargs": "^12.0.5"
+ }
+ },
+ "last-call-webpack-plugin": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
+ "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.5",
+ "webpack-sources": "^1.1.0"
+ }
+ },
+ "lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "loglevel": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz",
+ "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "mamacro": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+ "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+ "dev": true
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
+ "dev": true,
+ "requires": {
+ "charenc": "~0.0.1",
+ "crypt": "~0.0.1",
+ "is-buffer": "~1.1.1"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "mdn-data": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
+ "dev": true
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "dev": true,
+ "requires": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "merge2": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz",
+ "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "motion-ui": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/motion-ui/-/motion-ui-2.0.3.tgz",
+ "integrity": "sha512-f9xzh/hbZTUYjk4M7y1aDcsiPTfqUbuvCv/+If05TSIBEJMu3hGBU+YSe9csQPP7WBBHXxjossEygM/TJo2enw=="
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+ "dev": true,
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node-forge": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.2.tgz",
+ "integrity": "sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg==",
+ "dev": true
+ },
+ "node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ }
+ }
+ },
+ "node-notifier": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
+ "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
+ "dev": true,
+ "requires": {
+ "growly": "^1.3.0",
+ "is-wsl": "^1.1.0",
+ "semver": "^5.5.0",
+ "shellwords": "^0.1.1",
+ "which": "^1.3.0"
+ }
+ },
+ "node-releases": {
+ "version": "1.1.32",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.32.tgz",
+ "integrity": "sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A==",
+ "dev": true,
+ "requires": {
+ "semver": "^5.3.0"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
+ "dev": true
+ },
+ "object-is": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
+ "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object-path": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
+ "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "object.omit": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz",
+ "integrity": "sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^1.0.0"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
+ "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.12.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optimize-css-assets-webpack-plugin": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz",
+ "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==",
+ "dev": true,
+ "requires": {
+ "cssnano": "^4.1.10",
+ "last-call-webpack-plugin": "^3.0.0"
+ }
+ },
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+ "dev": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ }
+ },
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ },
+ "p-pipe": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz",
+ "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=",
+ "dev": true
+ },
+ "p-retry": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+ "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+ "dev": true,
+ "requires": {
+ "retry": "^0.12.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+ "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dev": true,
+ "requires": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+ "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ },
+ "portfinder": {
+ "version": "1.0.24",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz",
+ "integrity": "sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg==",
+ "dev": true,
+ "requires": {
+ "async": "^1.5.2",
+ "debug": "^2.2.0",
+ "mkdirp": "0.5.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz",
+ "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz",
+ "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==",
+ "dev": true,
+ "requires": {
+ "css-unit-converter": "^1.1.1",
+ "postcss": "^7.0.5",
+ "postcss-selector-parser": "^5.0.0-rc.4",
+ "postcss-value-parser": "^3.3.1"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-load-config": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
+ "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "import-cwd": "^2.0.0"
+ }
+ },
+ "postcss-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+ "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^7.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz",
+ "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "dependencies": {
+ "cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
+ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-svgo": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz",
+ "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==",
+ "dev": true,
+ "requires": {
+ "is-svg": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
+ "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz",
+ "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==",
+ "dev": true
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+ "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "dev": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "querystringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+ "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "recast": {
+ "version": "0.11.23",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
+ "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=",
+ "dev": true,
+ "requires": {
+ "ast-types": "0.9.6",
+ "esprima": "~3.1.0",
+ "private": "~0.1.5",
+ "source-map": "~0.5.0"
+ }
+ },
+ "regenerate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+ "dev": true
+ },
+ "regenerate-unicode-properties": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
+ "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
+ "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
+ "dev": true,
+ "requires": {
+ "private": "^0.1.6"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regex-parser": {
+ "version": "2.2.10",
+ "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz",
+ "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==",
+ "dev": true
+ },
+ "regexp.prototype.flags": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz",
+ "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2"
+ }
+ },
+ "regexpu-core": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
+ "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^8.1.0",
+ "regjsgen": "^0.5.0",
+ "regjsparser": "^0.6.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.1.0"
+ }
+ },
+ "regjsgen": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
+ "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
+ "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+ "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ },
+ "dependencies": {
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "resolve-url-loader": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.0.tgz",
+ "integrity": "sha512-2QcrA+2QgVqsMJ1Hn5NnJXIGCX1clQ1F6QJTqOeiaDw9ACo1G2k+8/shq3mtqne03HOFyskAClqfxKyFBriXZg==",
+ "dev": true,
+ "requires": {
+ "adjust-sourcemap-loader": "2.0.0",
+ "camelcase": "5.0.0",
+ "compose-function": "3.0.3",
+ "convert-source-map": "1.6.0",
+ "es6-iterator": "2.0.3",
+ "loader-utils": "1.2.3",
+ "postcss": "7.0.14",
+ "rework": "1.0.1",
+ "rework-visit": "1.0.0",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz",
+ "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+ "dev": true
+ },
+ "rework": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz",
+ "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=",
+ "dev": true,
+ "requires": {
+ "convert-source-map": "^0.3.3",
+ "css": "^2.0.0"
+ },
+ "dependencies": {
+ "convert-source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz",
+ "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=",
+ "dev": true
+ }
+ }
+ },
+ "rework-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz",
+ "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=",
+ "dev": true
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sass": {
+ "version": "1.22.12",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.12.tgz",
+ "integrity": "sha512-u5Rxn+dKTPCW5/11kMNxtmqKsxCjcpnqj9CaJoru1NqeJ0DOa9rOM00e0HqmseTAatGkKoLY+jaNecMYevu1gg==",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=2.0.0 <4.0.0"
+ }
+ },
+ "sass-loader": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz",
+ "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==",
+ "dev": true,
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "loader-utils": "^1.2.3",
+ "neo-async": "^2.6.1",
+ "schema-utils": "^2.1.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.4.1.tgz",
+ "integrity": "sha512-RqYLpkPZX5Oc3fw/kHHHyP56fg5Y+XBpIpV8nCg0znIALfq3OH+Ea9Hfeac9BAMwG5IICltiZ0vxFvJQONfA5w==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.6",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.6.tgz",
+ "integrity": "sha512-i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w==",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.8.2"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
+ "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
+ "dev": true
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "dev": true
+ }
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "sockjs": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+ "dev": true,
+ "requires": {
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.0.1"
+ }
+ },
+ "sockjs-client": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
+ "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.5",
+ "eventsource": "^1.0.7",
+ "faye-websocket": "~0.11.1",
+ "inherits": "^2.0.3",
+ "json3": "^3.3.2",
+ "url-parse": "^1.4.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+ "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ }
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "spdy": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz",
+ "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ }
+ },
+ "spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
+ },
+ "ssri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+ "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+ "dev": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "dev": true
+ },
+ "stackframe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.1.0.tgz",
+ "integrity": "sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg==",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
+ "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
+ "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "style-loader": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+ "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "svgo": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz",
+ "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "coa": "^2.0.2",
+ "css-select": "^2.0.0",
+ "css-select-base-adapter": "^0.1.1",
+ "css-tree": "1.0.0-alpha.33",
+ "csso": "^3.5.1",
+ "js-yaml": "^3.13.1",
+ "mkdirp": "~0.5.1",
+ "object.values": "^1.1.0",
+ "sax": "~1.2.4",
+ "stable": "^0.1.8",
+ "unquote": "~1.1.1",
+ "util.promisify": "~1.0.0"
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true
+ },
+ "terser": {
+ "version": "3.17.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
+ "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.19.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.10"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz",
+ "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
+ "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^1.7.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz",
+ "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "terser": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz",
+ "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ }
+ }
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "thunky": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
+ "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+ "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+ "dev": true
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+ "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.19.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
+ "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
+ "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unquote": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-parse": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+ "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+ "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz",
+ "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==",
+ "dev": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz",
+ "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==",
+ "dev": true
+ },
+ "vm-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
+ "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
+ "dev": true
+ },
+ "vue-hot-reload-api": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+ "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
+ "dev": true
+ },
+ "vue-loader": {
+ "version": "15.7.1",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.7.1.tgz",
+ "integrity": "sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA==",
+ "dev": true,
+ "requires": {
+ "@vue/component-compiler-utils": "^3.0.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "vue-hot-reload-api": "^2.3.0",
+ "vue-style-loader": "^4.1.0"
+ }
+ },
+ "vue-style-loader": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
+ "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==",
+ "dev": true,
+ "requires": {
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "vue-template-compiler": {
+ "version": "2.6.10",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz",
+ "integrity": "sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==",
+ "dev": true,
+ "requires": {
+ "de-indent": "^1.0.2",
+ "he": "^1.1.0"
+ }
+ },
+ "vue-template-es2015-compiler": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
+ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
+ "dev": true
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "webpack": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz",
+ "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-module-context": "1.8.5",
+ "@webassemblyjs/wasm-edit": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5",
+ "acorn": "^6.2.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.1.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.1",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.1",
+ "watchpack": "^1.6.0",
+ "webpack-sources": "^1.4.1"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "webpack-cli": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz",
+ "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.2",
+ "cross-spawn": "6.0.5",
+ "enhanced-resolve": "4.1.0",
+ "findup-sync": "3.0.0",
+ "global-modules": "2.0.0",
+ "import-local": "2.0.0",
+ "interpret": "1.2.0",
+ "loader-utils": "1.2.3",
+ "supports-color": "6.1.0",
+ "v8-compile-cache": "2.0.3",
+ "yargs": "13.2.4"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "yargs": {
+ "version": "13.2.4",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
+ "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
+ }
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz",
+ "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==",
+ "dev": true,
+ "requires": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+ "dev": true
+ }
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.8.1.tgz",
+ "integrity": "sha512-9F5DnfFA9bsrhpUCAfQic/AXBVHvq+3gQS+x6Zj0yc1fVVE0erKh2MV4IV12TBewuTrYeeTIRwCH9qLMvdNvTw==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.2.1",
+ "http-proxy-middleware": "^0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.2",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.4",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.24",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.6",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "0.3.19",
+ "sockjs-client": "1.4.0",
+ "spdy": "^4.0.1",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.1",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "12.0.5"
+ },
+ "dependencies": {
+ "is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+ "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "webpack-merge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+ "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "webpack-notifier": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.8.0.tgz",
+ "integrity": "sha512-I6t76NoPe5DZCCm5geELmDV2wlJ89LbU425uN6T2FG8Ywrrt1ZcUMz6g8yWGNg4pttqTPFQJYUPjWAlzUEQ+cQ==",
+ "dev": true,
+ "requires": {
+ "node-notifier": "^5.1.2",
+ "object-assign": "^4.1.0",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
+ "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0 <0.4.11",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "what-input": {
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/what-input/-/what-input-5.2.6.tgz",
+ "integrity": "sha512-a0BcI5YR7xp87vSzGcbN0IszJKpUQuTmrZaTSQBl7TLDIdKj6rDhluQ7b/7lYGG81gWDvkySsEvwv4BW5an9kg=="
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz",
+ "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^3.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^11.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+}
diff --git a/explorer/website/frontend/package.json b/explorer/website/frontend/package.json
new file mode 100644
index 00000000..06a1d753
--- /dev/null
+++ b/explorer/website/frontend/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "frontend",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "dev": "npm run development",
+ "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
+ "watch": "npm run development -- --watch",
+ "watch-poll": "npm run watch -- --watch-poll",
+ "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
+ "prod": "npm run production",
+ "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "devDependencies": {
+ "cross-env": "^5.2.0",
+ "laravel-mix": "^5.0.0",
+ "resolve-url-loader": "^3.1.0",
+ "sass": "^1.22.12",
+ "sass-loader": "^8.0.0",
+ "vue-template-compiler": "^2.6.10"
+ },
+ "dependencies": {
+ "datatables.net": "^1.10.19",
+ "datatables.net-dt": "^1.10.19",
+ "datatables.net-zf": "^1.10.20",
+ "foundation-sites": "^6.5.3",
+ "motion-ui": "^2.0.3",
+ "what-input": "^5.1.2",
+ "sprintf-js": "^1.1.2"
+ }
+}
diff --git a/explorer/website/frontend/sass/_settings.scss b/explorer/website/frontend/sass/_settings.scss
new file mode 100644
index 00000000..653e5ac7
--- /dev/null
+++ b/explorer/website/frontend/sass/_settings.scss
@@ -0,0 +1,869 @@
+// Foundation for Sites Settings
+// -----------------------------
+//
+// Table of Contents:
+//
+// 1. Global
+// 2. Breakpoints
+// 3. The Grid
+// 4. Base Typography
+// 5. Typography Helpers
+// 6. Abide
+// 7. Accordion
+// 8. Accordion Menu
+// 9. Badge
+// 10. Breadcrumbs
+// 11. Button
+// 12. Button Group
+// 13. Callout
+// 14. Card
+// 15. Close Button
+// 16. Drilldown
+// 17. Dropdown
+// 18. Dropdown Menu
+// 19. Flexbox Utilities
+// 20. Forms
+// 21. Label
+// 22. Media Object
+// 23. Menu
+// 24. Meter
+// 25. Off-canvas
+// 26. Orbit
+// 27. Pagination
+// 28. Progress Bar
+// 29. Prototype Arrow
+// 30. Prototype Border-Box
+// 31. Prototype Border-None
+// 32. Prototype Bordered
+// 33. Prototype Display
+// 34. Prototype Font-Styling
+// 35. Prototype List-Style-Type
+// 36. Prototype Overflow
+// 37. Prototype Position
+// 38. Prototype Rounded
+// 39. Prototype Separator
+// 40. Prototype Shadow
+// 41. Prototype Sizing
+// 42. Prototype Spacing
+// 43. Prototype Text-Decoration
+// 44. Prototype Text-Transformation
+// 45. Prototype Text-Utilities
+// 46. Responsive Embed
+// 47. Reveal
+// 48. Slider
+// 49. Switch
+// 50. Table
+// 51. Tabs
+// 52. Thumbnail
+// 53. Title Bar
+// 54. Tooltip
+// 55. Top Bar
+// 56. Xy Grid
+
+@import '~foundation-sites/scss/util/util';
+
+// 1. Global
+// ---------
+
+$global-font-size: 100%;
+$global-width: rem-calc(1200);
+$global-lineheight: 1.5;
+$foundation-palette: (
+ primary: #1779ba,
+ secondary: #767676,
+ success: #3adb76,
+ warning: #ffae00,
+ alert: #cc4b37,
+);
+$light-gray: #e6e6e6;
+$medium-gray: #cacaca;
+$dark-gray: #8a8a8a;
+$black: #0a0a0a;
+$white: #fefefe;
+$body-background: $white;
+$body-font-color: $black;
+$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
+$body-antialiased: true;
+$global-margin: 1rem;
+$global-padding: 1rem;
+$global-position: 1rem;
+$global-weight-normal: normal;
+$global-weight-bold: bold;
+$global-radius: 0;
+$global-menu-padding: 0.7rem 1rem;
+$global-menu-nested-margin: 1rem;
+$global-text-direction: ltr;
+$global-flexbox: true;
+$global-prototype-breakpoints: false;
+$global-button-cursor: auto;
+$global-color-pick-contrast-tolerance: 0;
+$print-transparent-backgrounds: true;
+
+@include add-foundation-colors;
+$print-hrefs: true;
+
+// 2. Breakpoints
+// --------------
+
+$breakpoints: (
+ small: 0,
+ medium: 640px,
+ large: 1024px,
+ xlarge: 1200px,
+ xxlarge: 1440px,
+);
+$print-breakpoint: large;
+$breakpoint-classes: (small medium large);
+
+// 3. The Grid
+// -----------
+
+$grid-row-width: $global-width;
+$grid-column-count: 12;
+$grid-column-gutter: (
+ small: 20px,
+ medium: 30px,
+);
+$grid-column-align-edge: true;
+$grid-column-alias: 'columns';
+$block-grid-max: 8;
+
+// 4. Base Typography
+// ------------------
+
+$header-font-family: $body-font-family;
+$header-font-weight: $global-weight-normal;
+$header-font-style: normal;
+$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace;
+$header-color: inherit;
+$header-lineheight: 1.4;
+$header-margin-bottom: 0.5rem;
+$header-styles: (
+ small: (
+ 'h1': ('font-size': 24),
+ 'h2': ('font-size': 20),
+ 'h3': ('font-size': 19),
+ 'h4': ('font-size': 18),
+ 'h5': ('font-size': 17),
+ 'h6': ('font-size': 16),
+ ),
+ medium: (
+ 'h1': ('font-size': 48),
+ 'h2': ('font-size': 40),
+ 'h3': ('font-size': 31),
+ 'h4': ('font-size': 25),
+ 'h5': ('font-size': 20),
+ 'h6': ('font-size': 16),
+ ),
+);
+$header-text-rendering: optimizeLegibility;
+$small-font-size: 80%;
+$header-small-font-color: $medium-gray;
+$paragraph-lineheight: 1.6;
+$paragraph-margin-bottom: 1rem;
+$paragraph-text-rendering: optimizeLegibility;
+$code-color: $black;
+$code-font-family: $font-family-monospace;
+$code-font-weight: $global-weight-normal;
+$code-background: $light-gray;
+$code-border: 1px solid $medium-gray;
+$code-padding: rem-calc(2 5 1);
+$anchor-color: $primary-color;
+$anchor-color-hover: scale-color($anchor-color, $lightness: -14%);
+$anchor-text-decoration: none;
+$anchor-text-decoration-hover: none;
+$hr-width: $global-width;
+$hr-border: 1px solid $medium-gray;
+$hr-margin: rem-calc(20) auto;
+$list-lineheight: $paragraph-lineheight;
+$list-margin-bottom: $paragraph-margin-bottom;
+$list-style-type: disc;
+$list-style-position: outside;
+$list-side-margin: 1.25rem;
+$list-nested-side-margin: 1.25rem;
+$defnlist-margin-bottom: 1rem;
+$defnlist-term-weight: $global-weight-bold;
+$defnlist-term-margin-bottom: 0.3rem;
+$blockquote-color: $dark-gray;
+$blockquote-padding: rem-calc(9 20 0 19);
+$blockquote-border: 1px solid $medium-gray;
+$cite-font-size: rem-calc(13);
+$cite-color: $dark-gray;
+$cite-pseudo-content: '\2014 \0020';
+$keystroke-font: $font-family-monospace;
+$keystroke-color: $black;
+$keystroke-background: $light-gray;
+$keystroke-padding: rem-calc(2 4 0);
+$keystroke-radius: $global-radius;
+$abbr-underline: 1px dotted $black;
+
+// 5. Typography Helpers
+// ---------------------
+
+$lead-font-size: $global-font-size * 1.25;
+$lead-lineheight: 1.6;
+$subheader-lineheight: 1.4;
+$subheader-color: $dark-gray;
+$subheader-font-weight: $global-weight-normal;
+$subheader-margin-top: 0.2rem;
+$subheader-margin-bottom: 0.5rem;
+$stat-font-size: 2.5rem;
+
+// 6. Abide
+// --------
+
+$abide-inputs: true;
+$abide-labels: true;
+$input-background-invalid: get-color(alert);
+$form-label-color-invalid: get-color(alert);
+$input-error-color: get-color(alert);
+$input-error-font-size: rem-calc(12);
+$input-error-font-weight: $global-weight-bold;
+
+// 7. Accordion
+// ------------
+
+$accordion-background: $white;
+$accordion-plusminus: true;
+$accordion-title-font-size: rem-calc(12);
+$accordion-item-color: $primary-color;
+$accordion-item-background-hover: $light-gray;
+$accordion-item-padding: 1.25rem 1rem;
+$accordion-content-background: $white;
+$accordion-content-border: 1px solid $light-gray;
+$accordion-content-color: $body-font-color;
+$accordion-content-padding: 1rem;
+
+// 8. Accordion Menu
+// -----------------
+
+$accordionmenu-padding: $global-menu-padding;
+$accordionmenu-nested-margin: $global-menu-nested-margin;
+$accordionmenu-submenu-padding: $accordionmenu-padding;
+$accordionmenu-arrows: true;
+$accordionmenu-arrow-color: $primary-color;
+$accordionmenu-item-background: null;
+$accordionmenu-border: null;
+$accordionmenu-submenu-toggle-background: null;
+$accordion-submenu-toggle-border: $accordionmenu-border;
+$accordionmenu-submenu-toggle-width: 40px;
+$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width;
+$accordionmenu-arrow-size: 6px;
+
+// 9. Badge
+// --------
+
+$badge-background: $primary-color;
+$badge-color: $white;
+$badge-color-alt: $black;
+$badge-palette: $foundation-palette;
+$badge-padding: 0.3em;
+$badge-minwidth: 2.1em;
+$badge-font-size: 0.6rem;
+
+// 10. Breadcrumbs
+// ---------------
+
+$breadcrumbs-margin: 0 0 $global-margin 0;
+$breadcrumbs-item-font-size: rem-calc(11);
+$breadcrumbs-item-color: $primary-color;
+$breadcrumbs-item-color-current: $black;
+$breadcrumbs-item-color-disabled: $medium-gray;
+$breadcrumbs-item-margin: 0.75rem;
+$breadcrumbs-item-uppercase: true;
+$breadcrumbs-item-separator: true;
+$breadcrumbs-item-separator-item: '/';
+$breadcrumbs-item-separator-item-rtl: '\\';
+$breadcrumbs-item-separator-color: $medium-gray;
+
+// 11. Button
+// ----------
+
+$button-font-family: inherit;
+$button-padding: 0.85em 1em;
+$button-margin: 0 0 $global-margin 0;
+$button-fill: solid;
+$button-background: $primary-color;
+$button-background-hover: scale-color($button-background, $lightness: -15%);
+$button-color: $white;
+$button-color-alt: $black;
+$button-radius: $global-radius;
+$button-hollow-border-width: 1px;
+$button-sizes: (
+ tiny: 0.6rem,
+ small: 0.75rem,
+ default: 0.9rem,
+ large: 1.25rem,
+);
+$button-palette: $foundation-palette;
+$button-opacity-disabled: 0.25;
+$button-background-hover-lightness: -20%;
+$button-hollow-hover-lightness: -50%;
+$button-transition: background-color 0.25s ease-out, color 0.25s ease-out;
+$button-responsive-expanded: false;
+
+// 12. Button Group
+// ----------------
+
+$buttongroup-margin: 1rem;
+$buttongroup-spacing: 1px;
+$buttongroup-child-selector: '.button';
+$buttongroup-expand-max: 6;
+$buttongroup-radius-on-each: true;
+
+// 13. Callout
+// -----------
+
+$callout-background: $white;
+$callout-background-fade: 85%;
+$callout-border: 1px solid rgba($black, 0.25);
+$callout-margin: 0 0 1rem 0;
+$callout-padding: 1rem;
+$callout-font-color: $body-font-color;
+$callout-font-color-alt: $body-background;
+$callout-radius: $global-radius;
+$callout-link-tint: 30%;
+
+// 14. Card
+// --------
+
+$card-background: $white;
+$card-font-color: $body-font-color;
+$card-divider-background: $light-gray;
+$card-border: 1px solid $light-gray;
+$card-shadow: none;
+$card-border-radius: $global-radius;
+$card-padding: $global-padding;
+$card-margin-bottom: $global-margin;
+
+// 15. Close Button
+// ----------------
+
+$closebutton-position: right top;
+$closebutton-offset-horizontal: (
+ small: 0.66rem,
+ medium: 1rem,
+);
+$closebutton-offset-vertical: (
+ small: 0.33em,
+ medium: 0.5rem,
+);
+$closebutton-size: (
+ small: 1.5em,
+ medium: 2em,
+);
+$closebutton-lineheight: 1;
+$closebutton-color: $dark-gray;
+$closebutton-color-hover: $black;
+
+// 16. Drilldown
+// -------------
+
+$drilldown-transition: transform 0.15s linear;
+$drilldown-arrows: true;
+$drilldown-padding: $global-menu-padding;
+$drilldown-nested-margin: 0;
+$drilldown-background: $white;
+$drilldown-submenu-padding: $drilldown-padding;
+$drilldown-submenu-background: $white;
+$drilldown-arrow-color: $primary-color;
+$drilldown-arrow-size: 6px;
+
+// 17. Dropdown
+// ------------
+
+$dropdown-padding: 1rem;
+$dropdown-background: $body-background;
+$dropdown-border: 1px solid $medium-gray;
+$dropdown-font-size: 1rem;
+$dropdown-width: 300px;
+$dropdown-radius: $global-radius;
+$dropdown-sizes: (
+ tiny: 100px,
+ small: 200px,
+ large: 400px,
+);
+
+// 18. Dropdown Menu
+// -----------------
+
+$dropdownmenu-arrows: true;
+$dropdownmenu-arrow-color: $anchor-color;
+$dropdownmenu-arrow-size: 6px;
+$dropdownmenu-arrow-padding: 1.5rem;
+$dropdownmenu-min-width: 200px;
+$dropdownmenu-background: null;
+$dropdownmenu-submenu-background: $white;
+$dropdownmenu-padding: $global-menu-padding;
+$dropdownmenu-nested-margin: 0;
+$dropdownmenu-submenu-padding: $dropdownmenu-padding;
+$dropdownmenu-border: 1px solid $medium-gray;
+$dropdown-menu-item-color-active: get-color(primary);
+$dropdown-menu-item-background-active: transparent;
+
+// 19. Flexbox Utilities
+// ---------------------
+
+$flex-source-ordering-count: 6;
+$flexbox-responsive-breakpoints: true;
+
+// 20. Forms
+// ---------
+
+$fieldset-border: 1px solid $medium-gray;
+$fieldset-padding: rem-calc(20);
+$fieldset-margin: rem-calc(18 0);
+$legend-padding: rem-calc(0 3);
+$form-spacing: rem-calc(16);
+$helptext-color: $black;
+$helptext-font-size: rem-calc(13);
+$helptext-font-style: italic;
+$input-prefix-color: $black;
+$input-prefix-background: $light-gray;
+$input-prefix-border: 1px solid $medium-gray;
+$input-prefix-padding: 1rem;
+$form-label-color: $black;
+$form-label-font-size: rem-calc(14);
+$form-label-font-weight: $global-weight-normal;
+$form-label-line-height: 1.8;
+$select-background: $white;
+$select-triangle-color: $dark-gray;
+$select-radius: $global-radius;
+$input-color: $black;
+$input-placeholder-color: $medium-gray;
+$input-font-family: inherit;
+$input-font-size: rem-calc(16);
+$input-font-weight: $global-weight-normal;
+$input-line-height: $global-lineheight;
+$input-background: $white;
+$input-background-focus: $white;
+$input-background-disabled: $light-gray;
+$input-border: 1px solid $medium-gray;
+$input-border-focus: 1px solid $dark-gray;
+$input-padding: $form-spacing / 2;
+$input-shadow: inset 0 1px 2px rgba($black, 0.1);
+$input-shadow-focus: 0 0 5px $medium-gray;
+$input-cursor-disabled: not-allowed;
+$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+$input-number-spinners: true;
+$input-radius: $global-radius;
+$form-button-radius: $global-radius;
+
+// 21. Label
+// ---------
+
+$label-background: $primary-color;
+$label-color: $white;
+$label-color-alt: $black;
+$label-palette: $foundation-palette;
+$label-font-size: 0.8rem;
+$label-padding: 0.33333rem 0.5rem;
+$label-radius: $global-radius;
+
+// 22. Media Object
+// ----------------
+
+$mediaobject-margin-bottom: $global-margin;
+$mediaobject-section-padding: $global-padding;
+$mediaobject-image-width-stacked: 100%;
+
+// 23. Menu
+// --------
+
+$menu-margin: 0;
+$menu-nested-margin: $global-menu-nested-margin;
+$menu-items-padding: $global-menu-padding;
+$menu-simple-margin: 1rem;
+$menu-item-color-active: $white;
+$menu-item-background-active: get-color(primary);
+$menu-icon-spacing: 0.25rem;
+$menu-state-back-compat: true;
+$menu-centered-back-compat: true;
+$menu-icons-back-compat: true;
+
+// 24. Meter
+// ---------
+
+$meter-height: 1rem;
+$meter-radius: $global-radius;
+$meter-background: $medium-gray;
+$meter-fill-good: $success-color;
+$meter-fill-medium: $warning-color;
+$meter-fill-bad: $alert-color;
+
+// 25. Off-canvas
+// --------------
+
+$offcanvas-sizes: (
+ small: 250px,
+);
+$offcanvas-vertical-sizes: (
+ small: 250px,
+);
+$offcanvas-background: $light-gray;
+$offcanvas-shadow: 0 0 10px rgba($black, 0.7);
+$offcanvas-inner-shadow-size: 20px;
+$offcanvas-inner-shadow-color: rgba($black, 0.25);
+$offcanvas-overlay-zindex: 11;
+$offcanvas-push-zindex: 12;
+$offcanvas-overlap-zindex: 13;
+$offcanvas-reveal-zindex: 12;
+$offcanvas-transition-length: 0.5s;
+$offcanvas-transition-timing: ease;
+$offcanvas-fixed-reveal: true;
+$offcanvas-exit-background: rgba($white, 0.25);
+$maincontent-class: 'off-canvas-content';
+
+// 26. Orbit
+// ---------
+
+$orbit-bullet-background: $medium-gray;
+$orbit-bullet-background-active: $dark-gray;
+$orbit-bullet-diameter: 1.2rem;
+$orbit-bullet-margin: 0.1rem;
+$orbit-bullet-margin-top: 0.8rem;
+$orbit-bullet-margin-bottom: 0.8rem;
+$orbit-caption-background: rgba($black, 0.5);
+$orbit-caption-padding: 1rem;
+$orbit-control-background-hover: rgba($black, 0.5);
+$orbit-control-padding: 1rem;
+$orbit-control-zindex: 10;
+
+// 27. Pagination
+// --------------
+
+$pagination-font-size: rem-calc(14);
+$pagination-margin-bottom: $global-margin;
+$pagination-item-color: $black;
+$pagination-item-padding: rem-calc(3 10);
+$pagination-item-spacing: rem-calc(1);
+$pagination-radius: $global-radius;
+$pagination-item-background-hover: $light-gray;
+$pagination-item-background-current: $primary-color;
+$pagination-item-color-current: $white;
+$pagination-item-color-disabled: $medium-gray;
+$pagination-ellipsis-color: $black;
+$pagination-mobile-items: false;
+$pagination-mobile-current-item: false;
+$pagination-arrows: true;
+
+// 28. Progress Bar
+// ----------------
+
+$progress-height: 1rem;
+$progress-background: $medium-gray;
+$progress-margin-bottom: $global-margin;
+$progress-meter-background: $primary-color;
+$progress-radius: $global-radius;
+
+// 29. Prototype Arrow
+// -------------------
+
+$prototype-arrow-directions: (
+ down,
+ up,
+ right,
+ left
+);
+$prototype-arrow-size: 0.4375rem;
+$prototype-arrow-color: $black;
+
+// 30. Prototype Border-Box
+// ------------------------
+
+$prototype-border-box-breakpoints: $global-prototype-breakpoints;
+
+// 31. Prototype Border-None
+// -------------------------
+
+$prototype-border-none-breakpoints: $global-prototype-breakpoints;
+
+// 32. Prototype Bordered
+// ----------------------
+
+$prototype-bordered-breakpoints: $global-prototype-breakpoints;
+$prototype-border-width: rem-calc(1);
+$prototype-border-type: solid;
+$prototype-border-color: $medium-gray;
+
+// 33. Prototype Display
+// ---------------------
+
+$prototype-display-breakpoints: $global-prototype-breakpoints;
+$prototype-display: (
+ inline,
+ inline-block,
+ block,
+ table,
+ table-cell
+);
+
+// 34. Prototype Font-Styling
+// --------------------------
+
+$prototype-font-breakpoints: $global-prototype-breakpoints;
+$prototype-wide-letter-spacing: rem-calc(4);
+$prototype-font-normal: $global-weight-normal;
+$prototype-font-bold: $global-weight-bold;
+
+// 35. Prototype List-Style-Type
+// -----------------------------
+
+$prototype-list-breakpoints: $global-prototype-breakpoints;
+$prototype-style-type-unordered: (
+ disc,
+ circle,
+ square
+);
+$prototype-style-type-ordered: (
+ decimal,
+ lower-alpha,
+ lower-latin,
+ lower-roman,
+ upper-alpha,
+ upper-latin,
+ upper-roman
+);
+
+// 36. Prototype Overflow
+// ----------------------
+
+$prototype-overflow-breakpoints: $global-prototype-breakpoints;
+$prototype-overflow: (
+ visible,
+ hidden,
+ scroll
+);
+
+// 37. Prototype Position
+// ----------------------
+
+$prototype-position-breakpoints: $global-prototype-breakpoints;
+$prototype-position: (
+ static,
+ relative,
+ absolute,
+ fixed
+);
+$prototype-position-z-index: 975;
+
+// 38. Prototype Rounded
+// ---------------------
+
+$prototype-rounded-breakpoints: $global-prototype-breakpoints;
+$prototype-border-radius: rem-calc(3);
+
+// 39. Prototype Separator
+// -----------------------
+
+$prototype-separator-breakpoints: $global-prototype-breakpoints;
+$prototype-separator-align: center;
+$prototype-separator-height: rem-calc(2);
+$prototype-separator-width: 3rem;
+$prototype-separator-background: $primary-color;
+$prototype-separator-margin-top: $global-margin;
+
+// 40. Prototype Shadow
+// --------------------
+
+$prototype-shadow-breakpoints: $global-prototype-breakpoints;
+$prototype-box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),
+ 0 2px 10px 0 rgba(0,0,0,.12);
+
+// 41. Prototype Sizing
+// --------------------
+
+$prototype-sizing-breakpoints: $global-prototype-breakpoints;
+$prototype-sizing: (
+ width,
+ height
+);
+$prototype-sizes: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%
+);
+
+// 42. Prototype Spacing
+// ---------------------
+
+$prototype-spacing-breakpoints: $global-prototype-breakpoints;
+$prototype-spacers-count: 3;
+
+// 43. Prototype Text-Decoration
+// -----------------------------
+
+$prototype-decoration-breakpoints: $global-prototype-breakpoints;
+$prototype-text-decoration: (
+ overline,
+ underline,
+ line-through,
+);
+
+// 44. Prototype Text-Transformation
+// ---------------------------------
+
+$prototype-transformation-breakpoints: $global-prototype-breakpoints;
+$prototype-text-transformation: (
+ lowercase,
+ uppercase,
+ capitalize
+);
+
+// 45. Prototype Text-Utilities
+// ----------------------------
+
+$prototype-utilities-breakpoints: $global-prototype-breakpoints;
+$prototype-text-overflow: ellipsis;
+
+// 46. Responsive Embed
+// --------------------
+
+$responsive-embed-margin-bottom: rem-calc(16);
+$responsive-embed-ratios: (
+ default: 4 by 3,
+ widescreen: 16 by 9,
+);
+
+// 47. Reveal
+// ----------
+
+$reveal-background: $white;
+$reveal-width: 600px;
+$reveal-max-width: $global-width;
+$reveal-padding: $global-padding;
+$reveal-border: 1px solid $medium-gray;
+$reveal-radius: $global-radius;
+$reveal-zindex: 1005;
+$reveal-overlay-background: rgba($black, 0.45);
+
+// 48. Slider
+// ----------
+
+$slider-width-vertical: 0.5rem;
+$slider-transition: all 0.2s ease-in-out;
+$slider-height: 0.5rem;
+$slider-background: $light-gray;
+$slider-fill-background: $medium-gray;
+$slider-handle-height: 1.4rem;
+$slider-handle-width: 1.4rem;
+$slider-handle-background: $primary-color;
+$slider-opacity-disabled: 0.25;
+$slider-radius: $global-radius;
+
+// 49. Switch
+// ----------
+
+$switch-background: $medium-gray;
+$switch-background-active: $primary-color;
+$switch-height: 2rem;
+$switch-height-tiny: 1.5rem;
+$switch-height-small: 1.75rem;
+$switch-height-large: 2.5rem;
+$switch-radius: $global-radius;
+$switch-margin: $global-margin;
+$switch-paddle-background: $white;
+$switch-paddle-offset: 0.25rem;
+$switch-paddle-radius: $global-radius;
+$switch-paddle-transition: all 0.25s ease-out;
+
+// 50. Table
+// ---------
+
+$table-background: $white;
+$table-color-scale: 5%;
+$table-border: 1px solid smart-scale($table-background, $table-color-scale);
+$table-padding: rem-calc(8 10 10);
+$table-hover-scale: 2%;
+$table-row-hover: darken($table-background, $table-hover-scale);
+$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale);
+$table-is-striped: true;
+$table-striped-background: smart-scale($table-background, $table-color-scale);
+$table-stripe: even;
+$table-head-background: smart-scale($table-background, $table-color-scale / 2);
+$table-head-row-hover: darken($table-head-background, $table-hover-scale);
+$table-foot-background: smart-scale($table-background, $table-color-scale);
+$table-foot-row-hover: darken($table-foot-background, $table-hover-scale);
+$table-head-font-color: $body-font-color;
+$table-foot-font-color: $body-font-color;
+$show-header-for-stacked: false;
+$table-stack-breakpoint: medium;
+
+// 51. Tabs
+// --------
+
+$tab-margin: 0;
+$tab-background: $white;
+$tab-color: $primary-color;
+$tab-background-active: $light-gray;
+$tab-active-color: $primary-color;
+$tab-item-font-size: rem-calc(12);
+$tab-item-background-hover: $white;
+$tab-item-padding: 1.25rem 1.5rem;
+$tab-content-background: $white;
+$tab-content-border: $light-gray;
+$tab-content-color: $body-font-color;
+$tab-content-padding: 1rem;
+
+// 52. Thumbnail
+// -------------
+
+$thumbnail-border: 4px solid $white;
+$thumbnail-margin-bottom: $global-margin;
+$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
+$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
+$thumbnail-transition: box-shadow 200ms ease-out;
+$thumbnail-radius: $global-radius;
+
+// 53. Title Bar
+// -------------
+
+$titlebar-background: $black;
+$titlebar-color: $white;
+$titlebar-padding: 0.5rem;
+$titlebar-text-font-weight: bold;
+$titlebar-icon-color: $white;
+$titlebar-icon-color-hover: $medium-gray;
+$titlebar-icon-spacing: 0.25rem;
+
+// 54. Tooltip
+// -----------
+
+$has-tip-cursor: help;
+$has-tip-font-weight: $global-weight-bold;
+$has-tip-border-bottom: dotted 1px $dark-gray;
+$tooltip-background-color: $black;
+$tooltip-color: $white;
+$tooltip-padding: 0.75rem;
+$tooltip-max-width: 10rem;
+$tooltip-font-size: $small-font-size;
+$tooltip-pip-width: 0.75rem;
+$tooltip-pip-height: $tooltip-pip-width * 0.866;
+$tooltip-radius: $global-radius;
+
+// 55. Top Bar
+// -----------
+
+$topbar-padding: 0.5rem;
+$topbar-background: $light-gray;
+$topbar-submenu-background: $topbar-background;
+$topbar-title-spacing: 0.5rem 1rem 0.5rem 0;
+$topbar-input-width: 200px;
+$topbar-unstack-breakpoint: medium;
+
+// 56. Xy Grid
+// -----------
+
+$xy-grid: true;
+$grid-container: $global-width;
+$grid-columns: 12;
+$grid-margin-gutters: (
+ small: 20px,
+ medium: 30px
+);
+$grid-padding-gutters: $grid-margin-gutters;
+$grid-container-padding: $grid-padding-gutters;
+$grid-container-max: $global-width;
+$xy-block-grid-max: 8;
+
diff --git a/explorer/website/frontend/sass/app.scss b/explorer/website/frontend/sass/app.scss
new file mode 100644
index 00000000..a04d0f36
--- /dev/null
+++ b/explorer/website/frontend/sass/app.scss
@@ -0,0 +1,2 @@
+@import '../node_modules/datatables.net-dt/css/jquery.dataTables.css';
+@import './main.scss';
\ No newline at end of file
diff --git a/explorer/website/frontend/sass/main.scss b/explorer/website/frontend/sass/main.scss
new file mode 100644
index 00000000..70d76190
--- /dev/null
+++ b/explorer/website/frontend/sass/main.scss
@@ -0,0 +1,35 @@
+.width-100 {
+ width: 100%;
+}
+
+.header-search {
+ margin-bottom:0;
+ border-radius:0.5rem;
+ height:3rem;
+}
+
+.container {
+ padding:8rem 0;
+}
+
+.top-bar-container {
+ h1 {
+ margin-bottom:0;
+ }
+}
+
+.item-title {
+ margin-bottom:4rem;
+}
+.item-detail-list {
+ list-style:none;
+ margin:0;
+ li {
+ border-bottom:1px solid whitesmoke;
+ padding:1rem 0;
+ }
+ .item-detail-title {
+ text-transform:uppercase;
+ }
+}
+
diff --git a/explorer/website/frontend/views/layouts/default.hbs b/explorer/website/frontend/views/layouts/default.hbs
new file mode 100644
index 00000000..e13db45a
--- /dev/null
+++ b/explorer/website/frontend/views/layouts/default.hbs
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+{{{body}}}
+
+
+
+
+
+
diff --git a/explorer/website/frontend/views/pages/blockdetail.hbs b/explorer/website/frontend/views/pages/blockdetail.hbs
new file mode 100644
index 00000000..0bd985b1
--- /dev/null
+++ b/explorer/website/frontend/views/pages/blockdetail.hbs
@@ -0,0 +1 @@
+{{> blockdetail id="1" }}
diff --git a/explorer/website/frontend/views/pages/home.hbs b/explorer/website/frontend/views/pages/home.hbs
new file mode 100644
index 00000000..a47f3d88
--- /dev/null
+++ b/explorer/website/frontend/views/pages/home.hbs
@@ -0,0 +1,11 @@
+{{> maintabs }}
+
+
diff --git a/explorer/website/frontend/views/pages/shards.hbs b/explorer/website/frontend/views/pages/shards.hbs
new file mode 100644
index 00000000..de98cc70
--- /dev/null
+++ b/explorer/website/frontend/views/pages/shards.hbs
@@ -0,0 +1,2 @@
+{{> shardtable }}
+
diff --git a/explorer/website/frontend/views/pages/validators.hbs b/explorer/website/frontend/views/pages/validators.hbs
new file mode 100644
index 00000000..398ad058
--- /dev/null
+++ b/explorer/website/frontend/views/pages/validators.hbs
@@ -0,0 +1,2 @@
+{{> validatortable }}
+
diff --git a/explorer/website/frontend/views/partials/blockdetail.hbs b/explorer/website/frontend/views/partials/blockdetail.hbs
new file mode 100644
index 00000000..4f25b988
--- /dev/null
+++ b/explorer/website/frontend/views/partials/blockdetail.hbs
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
Beacon Block #{{ block.height }}
+
+
+ -
+
+
+ Slot
+
+
+ {{ block.slot }}
+
+
+
+ -
+
+
+ State Root
+
+
+ {{ block.state_root }}
+
+
+
+ -
+
+
+ Parent Root
+
+
+ {{ block.parent_block_hash }}
+
+
+
+ -
+
+
+ -
+
+
+ Deposit Root
+
+
+ Not Exited (N/A)
+
+
+
+ -
+
+
+ Deposit Count
+
+
+ 264 (N/A)
+
+
+
+ -
+
+
+ Block Hash
+
+
+ {{ block.hash }}
+
+
+
+ -
+
+
+ Proposer Slashings
+
+
+ 0 (N/A)
+
+
+
+ -
+
+
+ Attester Slashings
+
+
+ 0 (N/A)
+
+
+
+ -
+
+
+ Randao Reveal
+
+
+ {{ block.randao_reveal }}
+
+
+
+ -
+
+
+ Deposits
+
+
+ 0 (N/A)
+
+
+
+ -
+
+
+ Voluntary Exits
+
+
+ 0 (N/A)
+
+
+
+
+
+
+
+
+
+
diff --git a/explorer/website/frontend/views/partials/blocktable.hbs b/explorer/website/frontend/views/partials/blocktable.hbs
new file mode 100644
index 00000000..55d10d71
--- /dev/null
+++ b/explorer/website/frontend/views/partials/blocktable.hbs
@@ -0,0 +1,68 @@
+
+
+
+ | Slot |
+ Proposer |
+ Randao |
+ Attestations |
+ Slashings |
+ Exits |
+ Deposits |
+
+
+
+
+
diff --git a/explorer/website/frontend/views/partials/maintabs.hbs b/explorer/website/frontend/views/partials/maintabs.hbs
new file mode 100644
index 00000000..274b1f9c
--- /dev/null
+++ b/explorer/website/frontend/views/partials/maintabs.hbs
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
Beacon Blocks
+
+ {{> blocktable }}
+
+
+
+
+
Validators
+
+ {{> validatortable }}
+
+
+
+
Shards
+
+ {{> shardtable }}
+
+
+
+
Governance
+
+
Content for Governance goes here
+
+
+
+
+
+
diff --git a/explorer/website/frontend/views/partials/shardtable.hbs b/explorer/website/frontend/views/partials/shardtable.hbs
new file mode 100644
index 00000000..d0c77356
--- /dev/null
+++ b/explorer/website/frontend/views/partials/shardtable.hbs
@@ -0,0 +1,51 @@
+
+
+
+ | ID |
+ Shard ID |
+ Hash |
+ Root Slot |
+ Genesis |
+
+
+
+
+
diff --git a/explorer/website/frontend/views/partials/test.hbs b/explorer/website/frontend/views/partials/test.hbs
new file mode 100644
index 00000000..fdbca1ba
--- /dev/null
+++ b/explorer/website/frontend/views/partials/test.hbs
@@ -0,0 +1 @@
+This is a test partial.
diff --git a/explorer/website/frontend/views/partials/validatortable.hbs b/explorer/website/frontend/views/partials/validatortable.hbs
new file mode 100644
index 00000000..9a8cc03c
--- /dev/null
+++ b/explorer/website/frontend/views/partials/validatortable.hbs
@@ -0,0 +1,56 @@
+
+
+
+ | ID |
+ Public key |
+ Validator ID |
+ Validator hash |
+
+
+
+
+
diff --git a/explorer/website/frontend/webpack.mix.js b/explorer/website/frontend/webpack.mix.js
new file mode 100644
index 00000000..4f0398e9
--- /dev/null
+++ b/explorer/website/frontend/webpack.mix.js
@@ -0,0 +1,11 @@
+let mix = require('laravel-mix');
+
+const publicFolder = 'public/';
+
+mix.copy('images', publicFolder + '/images');
+
+mix
+ .js('js/app.js', publicFolder + 'js/')
+ .sass('sass/app.scss', publicFolder + 'css/')
+;
+
diff --git a/go.mod b/go.mod
index 3392aaf1..d70edfc9 100644
--- a/go.mod
+++ b/go.mod
@@ -26,10 +26,15 @@ require (
github.com/libp2p/go-libp2p-core v0.2.2
github.com/libp2p/go-libp2p-crypto v0.1.0
github.com/libp2p/go-libp2p-discovery v0.1.0
+ github.com/libp2p/go-libp2p-host v0.0.3 // indirect
+ github.com/libp2p/go-libp2p-interface-connmgr v0.0.5 // indirect
github.com/libp2p/go-libp2p-kad-dht v0.2.1
+ github.com/libp2p/go-libp2p-net v0.0.2 // indirect
github.com/libp2p/go-libp2p-peer v0.2.0
github.com/libp2p/go-libp2p-peerstore v0.1.3
github.com/libp2p/go-libp2p-pubsub v0.1.1
+ github.com/libp2p/go-stream-muxer v0.1.0 // indirect
+ github.com/mattn/go-tty v0.0.0-20190424173100-523744f04859 // indirect
github.com/mitchellh/go-homedir v1.1.0
github.com/multiformats/go-multiaddr v0.0.4
github.com/multiformats/go-multiaddr-net v0.0.1
diff --git a/go.sum b/go.sum
index aa8eda5c..406c3f14 100644
--- a/go.sum
+++ b/go.sum
@@ -117,6 +117,7 @@ github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTD
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
+github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho=
@@ -339,6 +340,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
github.com/kkdai/bstream v1.0.0/go.mod h1:FDnDOHt5Yx4p3FaHcioFT0QjDOtgUpvjeZqAs+NVZZA=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ=
github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
@@ -351,6 +353,7 @@ github.com/labstack/echo v3.3.10+incompatible h1:pGRcYk231ExFAyoAjAfD85kQzRJCRI8
github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s=
github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
+github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/libp2p/go-addr-util v0.0.1 h1:TpTQm9cXVRVSKsYbgQ7GKc3KbbHVTnbostgGaDEP+88=
github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ=
@@ -566,6 +569,8 @@ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
+github.com/mattn/go-tty v0.0.0-20190424173100-523744f04859 h1:smQbSzmT3EHl4EUwtFwFGmGIpiYgIiiPeVv1uguIQEE=
+github.com/mattn/go-tty v0.0.0-20190424173100-523744f04859/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
diff --git a/pb/beaconrpc.pb.go b/pb/beaconrpc.pb.go
index c3f4dc61..fba07194 100644
--- a/pb/beaconrpc.pb.go
+++ b/pb/beaconrpc.pb.go
@@ -3,14 +3,13 @@
package pb
-import proto "github.com/golang/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import empty "github.com/golang/protobuf/ptypes/empty"
-
import (
- context "golang.org/x/net/context"
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ empty "github.com/golang/protobuf/ptypes/empty"
grpc "google.golang.org/grpc"
+ math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
@@ -36,16 +35,17 @@ func (m *GetShardProposerRequest) Reset() { *m = GetShardProposerRequest
func (m *GetShardProposerRequest) String() string { return proto.CompactTextString(m) }
func (*GetShardProposerRequest) ProtoMessage() {}
func (*GetShardProposerRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{0}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{0}
}
+
func (m *GetShardProposerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetShardProposerRequest.Unmarshal(m, b)
}
func (m *GetShardProposerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetShardProposerRequest.Marshal(b, m, deterministic)
}
-func (dst *GetShardProposerRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetShardProposerRequest.Merge(dst, src)
+func (m *GetShardProposerRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetShardProposerRequest.Merge(m, src)
}
func (m *GetShardProposerRequest) XXX_Size() int {
return xxx_messageInfo_GetShardProposerRequest.Size(m)
@@ -82,16 +82,17 @@ func (m *ShardProposerResponse) Reset() { *m = ShardProposerResponse{} }
func (m *ShardProposerResponse) String() string { return proto.CompactTextString(m) }
func (*ShardProposerResponse) ProtoMessage() {}
func (*ShardProposerResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{1}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{1}
}
+
func (m *ShardProposerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardProposerResponse.Unmarshal(m, b)
}
func (m *ShardProposerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardProposerResponse.Marshal(b, m, deterministic)
}
-func (dst *ShardProposerResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardProposerResponse.Merge(dst, src)
+func (m *ShardProposerResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardProposerResponse.Merge(m, src)
}
func (m *ShardProposerResponse) XXX_Size() int {
return xxx_messageInfo_ShardProposerResponse.Size(m)
@@ -127,16 +128,17 @@ func (m *MempoolRequest) Reset() { *m = MempoolRequest{} }
func (m *MempoolRequest) String() string { return proto.CompactTextString(m) }
func (*MempoolRequest) ProtoMessage() {}
func (*MempoolRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{2}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{2}
}
+
func (m *MempoolRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MempoolRequest.Unmarshal(m, b)
}
func (m *MempoolRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MempoolRequest.Marshal(b, m, deterministic)
}
-func (dst *MempoolRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MempoolRequest.Merge(dst, src)
+func (m *MempoolRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MempoolRequest.Merge(m, src)
}
func (m *MempoolRequest) XXX_Size() int {
return xxx_messageInfo_MempoolRequest.Size(m)
@@ -165,16 +167,17 @@ func (m *GetValidatorRequest) Reset() { *m = GetValidatorRequest{} }
func (m *GetValidatorRequest) String() string { return proto.CompactTextString(m) }
func (*GetValidatorRequest) ProtoMessage() {}
func (*GetValidatorRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{3}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{3}
}
+
func (m *GetValidatorRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetValidatorRequest.Unmarshal(m, b)
}
func (m *GetValidatorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetValidatorRequest.Marshal(b, m, deterministic)
}
-func (dst *GetValidatorRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetValidatorRequest.Merge(dst, src)
+func (m *GetValidatorRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetValidatorRequest.Merge(m, src)
}
func (m *GetValidatorRequest) XXX_Size() int {
return xxx_messageInfo_GetValidatorRequest.Size(m)
@@ -203,16 +206,17 @@ func (m *GetBlockRequest) Reset() { *m = GetBlockRequest{} }
func (m *GetBlockRequest) String() string { return proto.CompactTextString(m) }
func (*GetBlockRequest) ProtoMessage() {}
func (*GetBlockRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{4}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{4}
}
+
func (m *GetBlockRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlockRequest.Unmarshal(m, b)
}
func (m *GetBlockRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetBlockRequest.Marshal(b, m, deterministic)
}
-func (dst *GetBlockRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetBlockRequest.Merge(dst, src)
+func (m *GetBlockRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBlockRequest.Merge(m, src)
}
func (m *GetBlockRequest) XXX_Size() int {
return xxx_messageInfo_GetBlockRequest.Size(m)
@@ -241,16 +245,17 @@ func (m *GetBlockResponse) Reset() { *m = GetBlockResponse{} }
func (m *GetBlockResponse) String() string { return proto.CompactTextString(m) }
func (*GetBlockResponse) ProtoMessage() {}
func (*GetBlockResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{5}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{5}
}
+
func (m *GetBlockResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlockResponse.Unmarshal(m, b)
}
func (m *GetBlockResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetBlockResponse.Marshal(b, m, deterministic)
}
-func (dst *GetBlockResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetBlockResponse.Merge(dst, src)
+func (m *GetBlockResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBlockResponse.Merge(m, src)
}
func (m *GetBlockResponse) XXX_Size() int {
return xxx_messageInfo_GetBlockResponse.Size(m)
@@ -279,16 +284,17 @@ func (m *GetProposerForSlotRequest) Reset() { *m = GetProposerForSlotReq
func (m *GetProposerForSlotRequest) String() string { return proto.CompactTextString(m) }
func (*GetProposerForSlotRequest) ProtoMessage() {}
func (*GetProposerForSlotRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{6}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{6}
}
+
func (m *GetProposerForSlotRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProposerForSlotRequest.Unmarshal(m, b)
}
func (m *GetProposerForSlotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetProposerForSlotRequest.Marshal(b, m, deterministic)
}
-func (dst *GetProposerForSlotRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetProposerForSlotRequest.Merge(dst, src)
+func (m *GetProposerForSlotRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetProposerForSlotRequest.Merge(m, src)
}
func (m *GetProposerForSlotRequest) XXX_Size() int {
return xxx_messageInfo_GetProposerForSlotRequest.Size(m)
@@ -317,16 +323,17 @@ func (m *GetProposerForSlotResponse) Reset() { *m = GetProposerForSlotRe
func (m *GetProposerForSlotResponse) String() string { return proto.CompactTextString(m) }
func (*GetProposerForSlotResponse) ProtoMessage() {}
func (*GetProposerForSlotResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{7}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{7}
}
+
func (m *GetProposerForSlotResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProposerForSlotResponse.Unmarshal(m, b)
}
func (m *GetProposerForSlotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetProposerForSlotResponse.Marshal(b, m, deterministic)
}
-func (dst *GetProposerForSlotResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetProposerForSlotResponse.Merge(dst, src)
+func (m *GetProposerForSlotResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetProposerForSlotResponse.Merge(m, src)
}
func (m *GetProposerForSlotResponse) XXX_Size() int {
return xxx_messageInfo_GetProposerForSlotResponse.Size(m)
@@ -355,16 +362,17 @@ func (m *EpochInformationRequest) Reset() { *m = EpochInformationRequest
func (m *EpochInformationRequest) String() string { return proto.CompactTextString(m) }
func (*EpochInformationRequest) ProtoMessage() {}
func (*EpochInformationRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{8}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{8}
}
+
func (m *EpochInformationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EpochInformationRequest.Unmarshal(m, b)
}
func (m *EpochInformationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EpochInformationRequest.Marshal(b, m, deterministic)
}
-func (dst *EpochInformationRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EpochInformationRequest.Merge(dst, src)
+func (m *EpochInformationRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EpochInformationRequest.Merge(m, src)
}
func (m *EpochInformationRequest) XXX_Size() int {
return xxx_messageInfo_EpochInformationRequest.Size(m)
@@ -394,16 +402,17 @@ func (m *EpochInformationResponse) Reset() { *m = EpochInformationRespon
func (m *EpochInformationResponse) String() string { return proto.CompactTextString(m) }
func (*EpochInformationResponse) ProtoMessage() {}
func (*EpochInformationResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{9}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{9}
}
+
func (m *EpochInformationResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EpochInformationResponse.Unmarshal(m, b)
}
func (m *EpochInformationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EpochInformationResponse.Marshal(b, m, deterministic)
}
-func (dst *EpochInformationResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EpochInformationResponse.Merge(dst, src)
+func (m *EpochInformationResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EpochInformationResponse.Merge(m, src)
}
func (m *EpochInformationResponse) XXX_Size() int {
return xxx_messageInfo_EpochInformationResponse.Size(m)
@@ -449,16 +458,17 @@ func (m *EpochInformation) Reset() { *m = EpochInformation{} }
func (m *EpochInformation) String() string { return proto.CompactTextString(m) }
func (*EpochInformation) ProtoMessage() {}
func (*EpochInformation) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{10}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{10}
}
+
func (m *EpochInformation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EpochInformation.Unmarshal(m, b)
}
func (m *EpochInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EpochInformation.Marshal(b, m, deterministic)
}
-func (dst *EpochInformation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EpochInformation.Merge(dst, src)
+func (m *EpochInformation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EpochInformation.Merge(m, src)
}
func (m *EpochInformation) XXX_Size() int {
return xxx_messageInfo_EpochInformation.Size(m)
@@ -557,16 +567,17 @@ func (m *DisconnectResponse) Reset() { *m = DisconnectResponse{} }
func (m *DisconnectResponse) String() string { return proto.CompactTextString(m) }
func (*DisconnectResponse) ProtoMessage() {}
func (*DisconnectResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{11}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{11}
}
+
func (m *DisconnectResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectResponse.Unmarshal(m, b)
}
func (m *DisconnectResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DisconnectResponse.Marshal(b, m, deterministic)
}
-func (dst *DisconnectResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DisconnectResponse.Merge(dst, src)
+func (m *DisconnectResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DisconnectResponse.Merge(m, src)
}
func (m *DisconnectResponse) XXX_Size() int {
return xxx_messageInfo_DisconnectResponse.Size(m)
@@ -595,16 +606,17 @@ func (m *GetCommitteesForSlotRequest) Reset() { *m = GetCommitteesForSlo
func (m *GetCommitteesForSlotRequest) String() string { return proto.CompactTextString(m) }
func (*GetCommitteesForSlotRequest) ProtoMessage() {}
func (*GetCommitteesForSlotRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{12}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{12}
}
+
func (m *GetCommitteesForSlotRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCommitteesForSlotRequest.Unmarshal(m, b)
}
func (m *GetCommitteesForSlotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCommitteesForSlotRequest.Marshal(b, m, deterministic)
}
-func (dst *GetCommitteesForSlotRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetCommitteesForSlotRequest.Merge(dst, src)
+func (m *GetCommitteesForSlotRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetCommitteesForSlotRequest.Merge(m, src)
}
func (m *GetCommitteesForSlotRequest) XXX_Size() int {
return xxx_messageInfo_GetCommitteesForSlotRequest.Size(m)
@@ -633,16 +645,17 @@ func (m *GetSlotAndShardAssignmentRequest) Reset() { *m = GetSlotAndShar
func (m *GetSlotAndShardAssignmentRequest) String() string { return proto.CompactTextString(m) }
func (*GetSlotAndShardAssignmentRequest) ProtoMessage() {}
func (*GetSlotAndShardAssignmentRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{13}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{13}
}
+
func (m *GetSlotAndShardAssignmentRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSlotAndShardAssignmentRequest.Unmarshal(m, b)
}
func (m *GetSlotAndShardAssignmentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetSlotAndShardAssignmentRequest.Marshal(b, m, deterministic)
}
-func (dst *GetSlotAndShardAssignmentRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetSlotAndShardAssignmentRequest.Merge(dst, src)
+func (m *GetSlotAndShardAssignmentRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetSlotAndShardAssignmentRequest.Merge(m, src)
}
func (m *GetSlotAndShardAssignmentRequest) XXX_Size() int {
return xxx_messageInfo_GetSlotAndShardAssignmentRequest.Size(m)
@@ -671,16 +684,17 @@ func (m *SubmitBlockRequest) Reset() { *m = SubmitBlockRequest{} }
func (m *SubmitBlockRequest) String() string { return proto.CompactTextString(m) }
func (*SubmitBlockRequest) ProtoMessage() {}
func (*SubmitBlockRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{14}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{14}
}
+
func (m *SubmitBlockRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SubmitBlockRequest.Unmarshal(m, b)
}
func (m *SubmitBlockRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SubmitBlockRequest.Marshal(b, m, deterministic)
}
-func (dst *SubmitBlockRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SubmitBlockRequest.Merge(dst, src)
+func (m *SubmitBlockRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubmitBlockRequest.Merge(m, src)
}
func (m *SubmitBlockRequest) XXX_Size() int {
return xxx_messageInfo_SubmitBlockRequest.Size(m)
@@ -709,16 +723,17 @@ func (m *SubmitBlockResponse) Reset() { *m = SubmitBlockResponse{} }
func (m *SubmitBlockResponse) String() string { return proto.CompactTextString(m) }
func (*SubmitBlockResponse) ProtoMessage() {}
func (*SubmitBlockResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{15}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{15}
}
+
func (m *SubmitBlockResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SubmitBlockResponse.Unmarshal(m, b)
}
func (m *SubmitBlockResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SubmitBlockResponse.Marshal(b, m, deterministic)
}
-func (dst *SubmitBlockResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SubmitBlockResponse.Merge(dst, src)
+func (m *SubmitBlockResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubmitBlockResponse.Merge(m, src)
}
func (m *SubmitBlockResponse) XXX_Size() int {
return xxx_messageInfo_SubmitBlockResponse.Size(m)
@@ -748,16 +763,17 @@ func (m *SlotNumberResponse) Reset() { *m = SlotNumberResponse{} }
func (m *SlotNumberResponse) String() string { return proto.CompactTextString(m) }
func (*SlotNumberResponse) ProtoMessage() {}
func (*SlotNumberResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{16}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{16}
}
+
func (m *SlotNumberResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SlotNumberResponse.Unmarshal(m, b)
}
func (m *SlotNumberResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SlotNumberResponse.Marshal(b, m, deterministic)
}
-func (dst *SlotNumberResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SlotNumberResponse.Merge(dst, src)
+func (m *SlotNumberResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SlotNumberResponse.Merge(m, src)
}
func (m *SlotNumberResponse) XXX_Size() int {
return xxx_messageInfo_SlotNumberResponse.Size(m)
@@ -793,16 +809,17 @@ func (m *GetBlockHashRequest) Reset() { *m = GetBlockHashRequest{} }
func (m *GetBlockHashRequest) String() string { return proto.CompactTextString(m) }
func (*GetBlockHashRequest) ProtoMessage() {}
func (*GetBlockHashRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{17}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{17}
}
+
func (m *GetBlockHashRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlockHashRequest.Unmarshal(m, b)
}
func (m *GetBlockHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetBlockHashRequest.Marshal(b, m, deterministic)
}
-func (dst *GetBlockHashRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetBlockHashRequest.Merge(dst, src)
+func (m *GetBlockHashRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBlockHashRequest.Merge(m, src)
}
func (m *GetBlockHashRequest) XXX_Size() int {
return xxx_messageInfo_GetBlockHashRequest.Size(m)
@@ -831,16 +848,17 @@ func (m *GetBlockHashResponse) Reset() { *m = GetBlockHashResponse{} }
func (m *GetBlockHashResponse) String() string { return proto.CompactTextString(m) }
func (*GetBlockHashResponse) ProtoMessage() {}
func (*GetBlockHashResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{18}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{18}
}
+
func (m *GetBlockHashResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlockHashResponse.Unmarshal(m, b)
}
func (m *GetBlockHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetBlockHashResponse.Marshal(b, m, deterministic)
}
-func (dst *GetBlockHashResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetBlockHashResponse.Merge(dst, src)
+func (m *GetBlockHashResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBlockHashResponse.Merge(m, src)
}
func (m *GetBlockHashResponse) XXX_Size() int {
return xxx_messageInfo_GetBlockHashResponse.Size(m)
@@ -869,16 +887,17 @@ func (m *GetValidatorAtIndexRequest) Reset() { *m = GetValidatorAtIndexR
func (m *GetValidatorAtIndexRequest) String() string { return proto.CompactTextString(m) }
func (*GetValidatorAtIndexRequest) ProtoMessage() {}
func (*GetValidatorAtIndexRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{19}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{19}
}
+
func (m *GetValidatorAtIndexRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetValidatorAtIndexRequest.Unmarshal(m, b)
}
func (m *GetValidatorAtIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetValidatorAtIndexRequest.Marshal(b, m, deterministic)
}
-func (dst *GetValidatorAtIndexRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetValidatorAtIndexRequest.Merge(dst, src)
+func (m *GetValidatorAtIndexRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetValidatorAtIndexRequest.Merge(m, src)
}
func (m *GetValidatorAtIndexRequest) XXX_Size() int {
return xxx_messageInfo_GetValidatorAtIndexRequest.Size(m)
@@ -907,16 +926,17 @@ func (m *GetValidatorAtIndexResponse) Reset() { *m = GetValidatorAtIndex
func (m *GetValidatorAtIndexResponse) String() string { return proto.CompactTextString(m) }
func (*GetValidatorAtIndexResponse) ProtoMessage() {}
func (*GetValidatorAtIndexResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{20}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{20}
}
+
func (m *GetValidatorAtIndexResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetValidatorAtIndexResponse.Unmarshal(m, b)
}
func (m *GetValidatorAtIndexResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetValidatorAtIndexResponse.Marshal(b, m, deterministic)
}
-func (dst *GetValidatorAtIndexResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetValidatorAtIndexResponse.Merge(dst, src)
+func (m *GetValidatorAtIndexResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetValidatorAtIndexResponse.Merge(m, src)
}
func (m *GetValidatorAtIndexResponse) XXX_Size() int {
return xxx_messageInfo_GetValidatorAtIndexResponse.Size(m)
@@ -946,16 +966,17 @@ func (m *GetCommitteeValidatorsRequest) Reset() { *m = GetCommitteeValid
func (m *GetCommitteeValidatorsRequest) String() string { return proto.CompactTextString(m) }
func (*GetCommitteeValidatorsRequest) ProtoMessage() {}
func (*GetCommitteeValidatorsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{21}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{21}
}
+
func (m *GetCommitteeValidatorsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCommitteeValidatorsRequest.Unmarshal(m, b)
}
func (m *GetCommitteeValidatorsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCommitteeValidatorsRequest.Marshal(b, m, deterministic)
}
-func (dst *GetCommitteeValidatorsRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetCommitteeValidatorsRequest.Merge(dst, src)
+func (m *GetCommitteeValidatorsRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetCommitteeValidatorsRequest.Merge(m, src)
}
func (m *GetCommitteeValidatorsRequest) XXX_Size() int {
return xxx_messageInfo_GetCommitteeValidatorsRequest.Size(m)
@@ -991,16 +1012,17 @@ func (m *GetStateResponse) Reset() { *m = GetStateResponse{} }
func (m *GetStateResponse) String() string { return proto.CompactTextString(m) }
func (*GetStateResponse) ProtoMessage() {}
func (*GetStateResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{22}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{22}
}
+
func (m *GetStateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetStateResponse.Unmarshal(m, b)
}
func (m *GetStateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetStateResponse.Marshal(b, m, deterministic)
}
-func (dst *GetStateResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetStateResponse.Merge(dst, src)
+func (m *GetStateResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetStateResponse.Merge(m, src)
}
func (m *GetStateResponse) XXX_Size() int {
return xxx_messageInfo_GetStateResponse.Size(m)
@@ -1029,16 +1051,17 @@ func (m *GetStateRootResponse) Reset() { *m = GetStateRootResponse{} }
func (m *GetStateRootResponse) String() string { return proto.CompactTextString(m) }
func (*GetStateRootResponse) ProtoMessage() {}
func (*GetStateRootResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{23}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{23}
}
+
func (m *GetStateRootResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetStateRootResponse.Unmarshal(m, b)
}
func (m *GetStateRootResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetStateRootResponse.Marshal(b, m, deterministic)
}
-func (dst *GetStateRootResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetStateRootResponse.Merge(dst, src)
+func (m *GetStateRootResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetStateRootResponse.Merge(m, src)
}
func (m *GetStateRootResponse) XXX_Size() int {
return xxx_messageInfo_GetStateRootResponse.Size(m)
@@ -1067,16 +1090,17 @@ func (m *GetCommitteeValidatorsResponse) Reset() { *m = GetCommitteeVali
func (m *GetCommitteeValidatorsResponse) String() string { return proto.CompactTextString(m) }
func (*GetCommitteeValidatorsResponse) ProtoMessage() {}
func (*GetCommitteeValidatorsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{24}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{24}
}
+
func (m *GetCommitteeValidatorsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCommitteeValidatorsResponse.Unmarshal(m, b)
}
func (m *GetCommitteeValidatorsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCommitteeValidatorsResponse.Marshal(b, m, deterministic)
}
-func (dst *GetCommitteeValidatorsResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetCommitteeValidatorsResponse.Merge(dst, src)
+func (m *GetCommitteeValidatorsResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetCommitteeValidatorsResponse.Merge(m, src)
}
func (m *GetCommitteeValidatorsResponse) XXX_Size() int {
return xxx_messageInfo_GetCommitteeValidatorsResponse.Size(m)
@@ -1105,16 +1129,17 @@ func (m *GetCommitteeValidatorIndicesResponse) Reset() { *m = GetCommitt
func (m *GetCommitteeValidatorIndicesResponse) String() string { return proto.CompactTextString(m) }
func (*GetCommitteeValidatorIndicesResponse) ProtoMessage() {}
func (*GetCommitteeValidatorIndicesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_beaconrpc_43e536a52cc0c434, []int{25}
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{25}
}
+
func (m *GetCommitteeValidatorIndicesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCommitteeValidatorIndicesResponse.Unmarshal(m, b)
}
func (m *GetCommitteeValidatorIndicesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCommitteeValidatorIndicesResponse.Marshal(b, m, deterministic)
}
-func (dst *GetCommitteeValidatorIndicesResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetCommitteeValidatorIndicesResponse.Merge(dst, src)
+func (m *GetCommitteeValidatorIndicesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetCommitteeValidatorIndicesResponse.Merge(m, src)
}
func (m *GetCommitteeValidatorIndicesResponse) XXX_Size() int {
return xxx_messageInfo_GetCommitteeValidatorIndicesResponse.Size(m)
@@ -1132,6 +1157,45 @@ func (m *GetCommitteeValidatorIndicesResponse) GetValidators() []uint32 {
return nil
}
+type GetConfigHashResponse struct {
+ Hash []byte `protobuf:"bytes,1,opt,name=Hash,proto3" json:"Hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetConfigHashResponse) Reset() { *m = GetConfigHashResponse{} }
+func (m *GetConfigHashResponse) String() string { return proto.CompactTextString(m) }
+func (*GetConfigHashResponse) ProtoMessage() {}
+func (*GetConfigHashResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a1e1342b9bf4ce6d, []int{26}
+}
+
+func (m *GetConfigHashResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetConfigHashResponse.Unmarshal(m, b)
+}
+func (m *GetConfigHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetConfigHashResponse.Marshal(b, m, deterministic)
+}
+func (m *GetConfigHashResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetConfigHashResponse.Merge(m, src)
+}
+func (m *GetConfigHashResponse) XXX_Size() int {
+ return xxx_messageInfo_GetConfigHashResponse.Size(m)
+}
+func (m *GetConfigHashResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetConfigHashResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetConfigHashResponse proto.InternalMessageInfo
+
+func (m *GetConfigHashResponse) GetHash() []byte {
+ if m != nil {
+ return m.Hash
+ }
+ return nil
+}
+
func init() {
proto.RegisterType((*GetShardProposerRequest)(nil), "pb.GetShardProposerRequest")
proto.RegisterType((*ShardProposerResponse)(nil), "pb.ShardProposerResponse")
@@ -1159,6 +1223,81 @@ func init() {
proto.RegisterType((*GetStateRootResponse)(nil), "pb.GetStateRootResponse")
proto.RegisterType((*GetCommitteeValidatorsResponse)(nil), "pb.GetCommitteeValidatorsResponse")
proto.RegisterType((*GetCommitteeValidatorIndicesResponse)(nil), "pb.GetCommitteeValidatorIndicesResponse")
+ proto.RegisterType((*GetConfigHashResponse)(nil), "pb.GetConfigHashResponse")
+}
+
+func init() { proto.RegisterFile("beaconrpc.proto", fileDescriptor_a1e1342b9bf4ce6d) }
+
+var fileDescriptor_a1e1342b9bf4ce6d = []byte{
+ // 1083 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x5f, 0x53, 0xdb, 0x46,
+ 0x10, 0x1f, 0x0c, 0x04, 0xbc, 0xb6, 0x80, 0x1c, 0x06, 0x8c, 0x4c, 0x28, 0x73, 0x93, 0x74, 0x32,
+ 0x4d, 0x6b, 0x5a, 0x08, 0x4c, 0x32, 0xd3, 0x7f, 0x06, 0x07, 0x87, 0x34, 0x4d, 0x5d, 0x39, 0xed,
+ 0x53, 0x5f, 0x64, 0xf9, 0x30, 0x1a, 0x2c, 0x9d, 0xab, 0x3b, 0x77, 0xc2, 0x7b, 0x3f, 0x68, 0xbf,
+ 0x42, 0xbf, 0x41, 0x47, 0xab, 0x93, 0x74, 0xb2, 0x24, 0xdc, 0x37, 0xe9, 0xb7, 0x7f, 0x6f, 0xf7,
+ 0x77, 0x7b, 0x0b, 0x9b, 0x43, 0x66, 0x3b, 0xdc, 0x0f, 0xa6, 0x4e, 0x7b, 0x1a, 0x70, 0xc9, 0x49,
+ 0x65, 0x3a, 0x34, 0x5b, 0x63, 0xce, 0xc7, 0x13, 0x76, 0x8c, 0xc8, 0x70, 0x76, 0x73, 0xcc, 0xbc,
+ 0xa9, 0xbc, 0x8f, 0x14, 0xcc, 0xba, 0xc3, 0x3d, 0x8f, 0xfb, 0xd1, 0x1f, 0xed, 0xc1, 0x5e, 0x8f,
+ 0xc9, 0xc1, 0xad, 0x1d, 0x8c, 0xfa, 0x01, 0x9f, 0x72, 0xc1, 0x02, 0x8b, 0xfd, 0x39, 0x63, 0x42,
+ 0x92, 0x26, 0xac, 0x21, 0x7e, 0xdd, 0x6d, 0x2e, 0x1d, 0x2d, 0x3d, 0x5f, 0xb1, 0xe2, 0x5f, 0x42,
+ 0x60, 0x65, 0x30, 0xe1, 0xb2, 0x59, 0x41, 0x18, 0xbf, 0xa9, 0x0d, 0x3b, 0x73, 0x5e, 0xc4, 0x94,
+ 0xfb, 0x82, 0x11, 0x13, 0xd6, 0x63, 0x0c, 0xfd, 0x18, 0x56, 0xf2, 0x4f, 0xbe, 0x84, 0xc7, 0xf1,
+ 0x77, 0x7f, 0x36, 0x9c, 0xb8, 0xce, 0x4f, 0xec, 0x1e, 0xbd, 0xd6, 0xad, 0xbc, 0x80, 0x9e, 0xc3,
+ 0xc6, 0xcf, 0xcc, 0x9b, 0x72, 0x3e, 0x89, 0x53, 0x7c, 0x0a, 0xc6, 0x7b, 0x5b, 0xc8, 0x8b, 0x09,
+ 0x77, 0xee, 0xde, 0xda, 0xe2, 0x16, 0x03, 0xd4, 0xad, 0x2c, 0x48, 0x9f, 0xc1, 0x76, 0x8f, 0xc9,
+ 0xdf, 0xed, 0x89, 0x3b, 0xb2, 0x25, 0x4f, 0xce, 0xb7, 0x01, 0x15, 0x75, 0x34, 0xc3, 0xaa, 0x5c,
+ 0x77, 0xe9, 0x33, 0xd8, 0xec, 0xb1, 0xc8, 0x2c, 0x56, 0x21, 0xb0, 0xa2, 0xb9, 0xc5, 0x6f, 0x7a,
+ 0x0a, 0x5b, 0xa9, 0x9a, 0x3a, 0xe3, 0x67, 0xb0, 0x8a, 0x00, 0x2a, 0xd6, 0x4e, 0xaa, 0xed, 0xe9,
+ 0xb0, 0x1d, 0x69, 0x44, 0x38, 0x3d, 0x86, 0xfd, 0x1e, 0x93, 0xf1, 0x91, 0xae, 0x78, 0x10, 0xd6,
+ 0x4c, 0x8b, 0x82, 0xe5, 0x5c, 0xd2, 0xca, 0xf9, 0x0a, 0xcc, 0x22, 0x83, 0xc5, 0x35, 0xa5, 0xaf,
+ 0x61, 0xef, 0xcd, 0x94, 0x3b, 0xb7, 0xd7, 0xfe, 0x0d, 0x0f, 0x3c, 0x5b, 0xba, 0xdc, 0x8f, 0x03,
+ 0x1d, 0x02, 0x28, 0xd1, 0x88, 0x7d, 0x52, 0xe1, 0x34, 0x84, 0xfe, 0xbd, 0x04, 0xcd, 0xbc, 0xad,
+ 0x8a, 0xf9, 0x35, 0x6c, 0xbf, 0xb5, 0xc5, 0xbc, 0x18, 0xbd, 0xac, 0x5b, 0x45, 0x22, 0x72, 0x0e,
+ 0x35, 0x5d, 0xb3, 0x82, 0xb5, 0x69, 0x84, 0xb5, 0xc9, 0x05, 0xd1, 0x15, 0xe9, 0x3f, 0x2b, 0xb0,
+ 0x95, 0x73, 0xf6, 0x11, 0xf6, 0x90, 0x5f, 0x97, 0xdc, 0xf3, 0x5c, 0x29, 0x19, 0x13, 0xaa, 0x28,
+ 0xa2, 0xb9, 0x74, 0xb4, 0xfc, 0xbc, 0x76, 0x62, 0x86, 0x8e, 0x8b, 0x55, 0xac, 0x32, 0xd3, 0x0c,
+ 0x93, 0x97, 0xa3, 0xd2, 0x93, 0xd7, 0xb0, 0xf5, 0xde, 0x96, 0x4c, 0xc8, 0xcb, 0x80, 0x0b, 0x31,
+ 0x71, 0xfd, 0x3b, 0xd1, 0x5c, 0xc6, 0x10, 0x46, 0x18, 0x22, 0x41, 0xad, 0x9c, 0x1a, 0xf9, 0x1c,
+ 0x36, 0xde, 0xcd, 0x84, 0x74, 0x6f, 0x5c, 0x36, 0xc2, 0x13, 0x34, 0x57, 0xb0, 0xc8, 0x73, 0x68,
+ 0xc8, 0xdb, 0x04, 0x41, 0x82, 0xad, 0x46, 0xbc, 0xcd, 0x80, 0x61, 0xbb, 0x3e, 0xda, 0xc1, 0x98,
+ 0x49, 0x54, 0x79, 0x84, 0x2a, 0x1a, 0x42, 0xda, 0x40, 0xfa, 0x01, 0xfb, 0xcb, 0xe5, 0x33, 0xa1,
+ 0xe9, 0xad, 0xa1, 0x5e, 0x81, 0x84, 0x9c, 0xc3, 0x6e, 0x8c, 0xce, 0x65, 0xb9, 0x8e, 0x59, 0x96,
+ 0x48, 0xc9, 0x4b, 0xd8, 0xc9, 0x49, 0x30, 0x54, 0x15, 0x43, 0x15, 0x0b, 0xc9, 0x77, 0x69, 0x76,
+ 0x5a, 0x21, 0xa1, 0xa8, 0x90, 0x05, 0x8a, 0xe4, 0x0f, 0x68, 0xe5, 0x9b, 0xf6, 0x81, 0x7d, 0x92,
+ 0x51, 0xc6, 0xb5, 0x85, 0x3d, 0x7f, 0xc8, 0x9c, 0xb6, 0x81, 0x74, 0x5d, 0xe1, 0x70, 0xdf, 0x67,
+ 0x4e, 0x7a, 0xad, 0xc2, 0x89, 0x37, 0x73, 0x1c, 0x26, 0x84, 0xa2, 0x75, 0xfc, 0x4b, 0xbf, 0x81,
+ 0x56, 0x8f, 0xc9, 0x7c, 0x90, 0x07, 0x6e, 0x70, 0x17, 0x8e, 0xc2, 0xc9, 0x3a, 0xe1, 0xb2, 0xe3,
+ 0x8f, 0x30, 0x97, 0x8e, 0x10, 0xee, 0xd8, 0xf7, 0x98, 0x9f, 0xd8, 0x1d, 0x41, 0x2d, 0x19, 0x4b,
+ 0xc9, 0x2c, 0xd2, 0x21, 0x7a, 0x06, 0x64, 0x30, 0x1b, 0x7a, 0x6e, 0x76, 0x2e, 0x2d, 0x9c, 0x37,
+ 0xa7, 0xb0, 0x9d, 0x31, 0x53, 0x07, 0x3c, 0x80, 0xea, 0xfc, 0xac, 0x4c, 0x01, 0x6a, 0x01, 0x09,
+ 0xd3, 0xfd, 0x30, 0xf3, 0x86, 0xda, 0xfc, 0x3e, 0x04, 0x48, 0xd1, 0x78, 0x68, 0xa4, 0x48, 0xd6,
+ 0x67, 0x65, 0xde, 0xe7, 0x19, 0xce, 0xde, 0xe4, 0x5f, 0x9b, 0x44, 0x0f, 0x39, 0xa5, 0x5f, 0x40,
+ 0x23, 0x6b, 0xa6, 0x92, 0x29, 0x1a, 0xc8, 0x27, 0x38, 0x2a, 0x93, 0xa2, 0x75, 0x24, 0x0e, 0xb3,
+ 0x38, 0x52, 0x03, 0x56, 0xd3, 0x71, 0x67, 0x58, 0xd1, 0x0f, 0x7d, 0x87, 0xfd, 0xcc, 0xdb, 0xa8,
+ 0x30, 0x2f, 0xa0, 0x9a, 0xc8, 0x54, 0x8d, 0x91, 0xb2, 0xe9, 0x1b, 0x92, 0xca, 0xe9, 0x6f, 0xf0,
+ 0x44, 0xe7, 0x46, 0x22, 0x10, 0xff, 0xf3, 0xb0, 0x61, 0x8a, 0xc8, 0x0f, 0xac, 0x9e, 0x61, 0x45,
+ 0x3f, 0xea, 0x9d, 0x19, 0x48, 0x5b, 0x32, 0xfd, 0x9d, 0x11, 0x21, 0xa0, 0xf7, 0x3d, 0xd2, 0x88,
+ 0x70, 0xfa, 0x12, 0xeb, 0x16, 0x41, 0x5c, 0x7b, 0x30, 0x0e, 0xa0, 0x9a, 0x80, 0x71, 0xe3, 0x13,
+ 0x80, 0xfe, 0x02, 0x87, 0x65, 0x27, 0x50, 0xf6, 0x5f, 0x01, 0xa4, 0xa8, 0x1a, 0xb8, 0x73, 0x15,
+ 0xd1, 0x14, 0xe8, 0x15, 0x3c, 0x2d, 0x74, 0x78, 0xed, 0x8f, 0x5c, 0x87, 0x09, 0x9d, 0x5b, 0x73,
+ 0x6e, 0x8d, 0x8c, 0x9f, 0x17, 0xb0, 0x83, 0x7e, 0xfc, 0x1b, 0x77, 0xbc, 0x88, 0x07, 0x27, 0xff,
+ 0xae, 0x81, 0x81, 0x8c, 0x71, 0x6e, 0x6d, 0xd7, 0xb7, 0xfa, 0x97, 0xe4, 0x7b, 0xa8, 0x69, 0xb7,
+ 0x80, 0xec, 0x62, 0xb9, 0x72, 0xb7, 0xc9, 0xdc, 0xcb, 0xe1, 0x2a, 0xca, 0x0f, 0x60, 0xa8, 0x2b,
+ 0xac, 0x3a, 0xb5, 0xdb, 0x8e, 0x36, 0xab, 0x76, 0xbc, 0x59, 0xb5, 0xdf, 0x84, 0x9b, 0x95, 0x19,
+ 0x79, 0xce, 0xdf, 0x9d, 0x0e, 0xd4, 0x75, 0x1a, 0x13, 0x8c, 0x54, 0x70, 0x1f, 0xcc, 0x66, 0x5e,
+ 0xa0, 0x5c, 0x74, 0x91, 0x06, 0x99, 0x85, 0xa6, 0x34, 0x8d, 0x72, 0x2f, 0xaf, 0x60, 0x3d, 0xe6,
+ 0x45, 0xa9, 0x75, 0x43, 0x59, 0x67, 0x29, 0xf7, 0x23, 0x1e, 0x21, 0xe1, 0xca, 0xc2, 0xd8, 0x79,
+ 0xee, 0xf5, 0x71, 0x04, 0xe4, 0x1e, 0xf4, 0x56, 0xe1, 0x22, 0xa0, 0xea, 0x71, 0x50, 0x2c, 0x54,
+ 0x1e, 0x4f, 0xa1, 0xd6, 0x63, 0xf2, 0x8a, 0x07, 0x77, 0x5d, 0x5b, 0xda, 0xa5, 0x29, 0xd5, 0x43,
+ 0x27, 0x89, 0xd6, 0x00, 0x48, 0x7e, 0xa3, 0x22, 0x4f, 0x54, 0xda, 0xc5, 0xab, 0x99, 0x79, 0x58,
+ 0x26, 0x56, 0x99, 0xfc, 0x9a, 0x5f, 0x9f, 0x63, 0xcf, 0xad, 0xb8, 0x20, 0x05, 0xbb, 0xb5, 0xb9,
+ 0x9f, 0x3c, 0x5c, 0xb9, 0x7d, 0xf9, 0x0c, 0x5b, 0x15, 0x31, 0x76, 0x5b, 0x6f, 0x68, 0x6c, 0xdb,
+ 0xc8, 0x82, 0xca, 0xec, 0x5b, 0x78, 0x1c, 0x51, 0xb8, 0x23, 0xc3, 0xa5, 0x24, 0xaa, 0xf1, 0x66,
+ 0xa8, 0xaa, 0x01, 0x66, 0x49, 0xa9, 0xc8, 0x31, 0x40, 0x8f, 0x49, 0xb5, 0x5d, 0x13, 0x12, 0x9a,
+ 0x65, 0x57, 0x6d, 0xd3, 0x48, 0xde, 0x98, 0x0b, 0x3e, 0xba, 0x27, 0x1d, 0x3c, 0xb8, 0x76, 0xb1,
+ 0xd3, 0xc6, 0xc6, 0x24, 0x9f, 0x5f, 0xb8, 0xcd, 0xec, 0xc0, 0x20, 0x17, 0x78, 0xbb, 0xd2, 0xcb,
+ 0x5d, 0xda, 0xc7, 0x7d, 0xe5, 0x30, 0x3f, 0x07, 0x86, 0x8f, 0x50, 0xf5, 0xf4, 0xbf, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0x59, 0x59, 0x30, 0xa9, 0x07, 0x0d, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1187,6 +1326,7 @@ type BlockchainRPCClient interface {
SubmitAttestation(ctx context.Context, in *Attestation, opts ...grpc.CallOption) (*empty.Empty, error)
GetMempool(ctx context.Context, in *MempoolRequest, opts ...grpc.CallOption) (*BlockBody, error)
GetValidatorInformation(ctx context.Context, in *GetValidatorRequest, opts ...grpc.CallOption) (*Validator, error)
+ GetConfigHash(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*GetConfigHashResponse, error)
}
type blockchainRPCClient struct {
@@ -1323,6 +1463,15 @@ func (c *blockchainRPCClient) GetValidatorInformation(ctx context.Context, in *G
return out, nil
}
+func (c *blockchainRPCClient) GetConfigHash(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*GetConfigHashResponse, error) {
+ out := new(GetConfigHashResponse)
+ err := c.cc.Invoke(ctx, "/pb.BlockchainRPC/GetConfigHash", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// BlockchainRPCServer is the server API for BlockchainRPC service.
type BlockchainRPCServer interface {
SubmitBlock(context.Context, *SubmitBlockRequest) (*SubmitBlockResponse, error)
@@ -1339,6 +1488,7 @@ type BlockchainRPCServer interface {
SubmitAttestation(context.Context, *Attestation) (*empty.Empty, error)
GetMempool(context.Context, *MempoolRequest) (*BlockBody, error)
GetValidatorInformation(context.Context, *GetValidatorRequest) (*Validator, error)
+ GetConfigHash(context.Context, *empty.Empty) (*GetConfigHashResponse, error)
}
func RegisterBlockchainRPCServer(s *grpc.Server, srv BlockchainRPCServer) {
@@ -1597,6 +1747,24 @@ func _BlockchainRPC_GetValidatorInformation_Handler(srv interface{}, ctx context
return interceptor(ctx, in, info, handler)
}
+func _BlockchainRPC_GetConfigHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(empty.Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BlockchainRPCServer).GetConfigHash(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/pb.BlockchainRPC/GetConfigHash",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BlockchainRPCServer).GetConfigHash(ctx, req.(*empty.Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
var _BlockchainRPC_serviceDesc = grpc.ServiceDesc{
ServiceName: "pb.BlockchainRPC",
HandlerType: (*BlockchainRPCServer)(nil),
@@ -1657,80 +1825,11 @@ var _BlockchainRPC_serviceDesc = grpc.ServiceDesc{
MethodName: "GetValidatorInformation",
Handler: _BlockchainRPC_GetValidatorInformation_Handler,
},
+ {
+ MethodName: "GetConfigHash",
+ Handler: _BlockchainRPC_GetConfigHash_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "beaconrpc.proto",
}
-
-func init() { proto.RegisterFile("beaconrpc.proto", fileDescriptor_beaconrpc_43e536a52cc0c434) }
-
-var fileDescriptor_beaconrpc_43e536a52cc0c434 = []byte{
- // 1059 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x5d, 0x53, 0xdb, 0x46,
- 0x17, 0x1e, 0x1b, 0x13, 0xf0, 0xb1, 0x05, 0x64, 0x71, 0xc0, 0x91, 0x09, 0x2f, 0xb3, 0x93, 0xbc,
- 0x93, 0xe9, 0x87, 0x69, 0x21, 0x30, 0xc9, 0x4c, 0xbf, 0x1c, 0x1c, 0x1c, 0xd2, 0x34, 0x75, 0xe5,
- 0xb4, 0x57, 0xbd, 0x91, 0xe5, 0x05, 0x34, 0x58, 0x5a, 0x57, 0xbb, 0xee, 0x84, 0xfb, 0xfe, 0x9d,
- 0xfe, 0xa7, 0xfe, 0x94, 0x8e, 0x8e, 0x56, 0xd2, 0xca, 0x2b, 0x43, 0xef, 0xa4, 0xe7, 0x7c, 0xee,
- 0x73, 0xce, 0x9e, 0x3d, 0xb0, 0x39, 0x66, 0xae, 0xc7, 0xc3, 0x68, 0xe6, 0x75, 0x67, 0x11, 0x97,
- 0x9c, 0x54, 0x67, 0x63, 0xbb, 0x73, 0xc5, 0xf9, 0xd5, 0x94, 0x1d, 0x22, 0x32, 0x9e, 0x5f, 0x1e,
- 0xb2, 0x60, 0x26, 0x6f, 0x13, 0x05, 0xbb, 0xe9, 0xf1, 0x20, 0xe0, 0x61, 0xf2, 0x47, 0x07, 0xb0,
- 0x3b, 0x60, 0x72, 0x74, 0xed, 0x46, 0x93, 0x61, 0xc4, 0x67, 0x5c, 0xb0, 0xc8, 0x61, 0x7f, 0xcc,
- 0x99, 0x90, 0xa4, 0x0d, 0x6b, 0x88, 0x5f, 0xf4, 0xdb, 0x95, 0x83, 0xca, 0xf3, 0x9a, 0x93, 0xfe,
- 0x12, 0x02, 0xb5, 0xd1, 0x94, 0xcb, 0x76, 0x15, 0x61, 0xfc, 0xa6, 0x2e, 0x3c, 0x5a, 0xf0, 0x22,
- 0x66, 0x3c, 0x14, 0x8c, 0xd8, 0xb0, 0x9e, 0x62, 0xe8, 0xc7, 0x72, 0xb2, 0x7f, 0xf2, 0x05, 0x3c,
- 0x4c, 0xbf, 0x87, 0xf3, 0xf1, 0xd4, 0xf7, 0x7e, 0x64, 0xb7, 0xe8, 0xb5, 0xe9, 0x98, 0x02, 0x7a,
- 0x0a, 0x1b, 0x3f, 0xb1, 0x60, 0xc6, 0xf9, 0x34, 0x4d, 0xf1, 0x29, 0x58, 0xef, 0x5d, 0x21, 0x5f,
- 0x4f, 0xb9, 0x77, 0xf3, 0xd6, 0x15, 0xd7, 0x18, 0xa0, 0xe9, 0x14, 0x41, 0xfa, 0x0c, 0xb6, 0x07,
- 0x4c, 0xfe, 0xe6, 0x4e, 0xfd, 0x89, 0x2b, 0x79, 0x76, 0xbe, 0x0d, 0xa8, 0xaa, 0xa3, 0x59, 0x4e,
- 0xf5, 0xa2, 0x4f, 0x9f, 0xc1, 0xe6, 0x80, 0x25, 0x66, 0xa9, 0x0a, 0x81, 0x9a, 0xe6, 0x16, 0xbf,
- 0xe9, 0x31, 0x6c, 0xe5, 0x6a, 0xea, 0x8c, 0xff, 0x83, 0x55, 0x04, 0x50, 0xb1, 0x71, 0x54, 0xef,
- 0xce, 0xc6, 0xdd, 0x44, 0x23, 0xc1, 0xe9, 0x21, 0x3c, 0x1e, 0x30, 0x99, 0x1e, 0xe9, 0x9c, 0x47,
- 0x31, 0x67, 0x5a, 0x14, 0xa4, 0xb3, 0xa2, 0xd1, 0xf9, 0x12, 0xec, 0x32, 0x83, 0xfb, 0x39, 0xa5,
- 0xaf, 0x60, 0xf7, 0xcd, 0x8c, 0x7b, 0xd7, 0x17, 0xe1, 0x25, 0x8f, 0x02, 0x57, 0xfa, 0x3c, 0x4c,
- 0x03, 0xed, 0x03, 0x28, 0xd1, 0x84, 0x7d, 0x52, 0xe1, 0x34, 0x84, 0xfe, 0x55, 0x81, 0xb6, 0x69,
- 0xab, 0x62, 0x7e, 0x05, 0xdb, 0x6f, 0x5d, 0xb1, 0x28, 0x46, 0x2f, 0xeb, 0x4e, 0x99, 0x88, 0x9c,
- 0x42, 0x43, 0xd7, 0xac, 0x22, 0x37, 0xad, 0x98, 0x1b, 0x23, 0x88, 0xae, 0x48, 0xff, 0xa9, 0xc1,
- 0x96, 0xe1, 0xec, 0x23, 0xec, 0x62, 0x7f, 0x9d, 0xf1, 0x20, 0xf0, 0xa5, 0x64, 0x4c, 0x28, 0x52,
- 0x44, 0xbb, 0x72, 0xb0, 0xf2, 0xbc, 0x71, 0x64, 0xc7, 0x8e, 0xcb, 0x55, 0x9c, 0x65, 0xa6, 0x85,
- 0x4e, 0x5e, 0x49, 0xa8, 0x27, 0xaf, 0x60, 0xeb, 0xbd, 0x2b, 0x99, 0x90, 0x67, 0x11, 0x17, 0x62,
- 0xea, 0x87, 0x37, 0xa2, 0xbd, 0x82, 0x21, 0xac, 0x38, 0x44, 0x86, 0x3a, 0x86, 0x1a, 0xf9, 0x3f,
- 0x6c, 0xbc, 0x9b, 0x0b, 0xe9, 0x5f, 0xfa, 0x6c, 0x82, 0x27, 0x68, 0xd7, 0x90, 0xe4, 0x05, 0x34,
- 0xee, 0xdb, 0x0c, 0xc1, 0x06, 0x5b, 0x4d, 0xfa, 0xb6, 0x00, 0xc6, 0xe5, 0xfa, 0xe8, 0x46, 0x57,
- 0x4c, 0xa2, 0xca, 0x03, 0x54, 0xd1, 0x10, 0xd2, 0x05, 0x32, 0x8c, 0xd8, 0x9f, 0x3e, 0x9f, 0x0b,
- 0x4d, 0x6f, 0x0d, 0xf5, 0x4a, 0x24, 0xe4, 0x14, 0x76, 0x52, 0x74, 0x21, 0xcb, 0x75, 0xcc, 0x72,
- 0x89, 0x94, 0xbc, 0x80, 0x47, 0x86, 0x04, 0x43, 0xd5, 0x31, 0x54, 0xb9, 0x90, 0x7c, 0x9b, 0x67,
- 0xa7, 0x11, 0x09, 0x65, 0x44, 0x96, 0x28, 0x92, 0xdf, 0xa1, 0x63, 0x16, 0xed, 0x03, 0xfb, 0x24,
- 0x93, 0x8c, 0x1b, 0xf7, 0xd6, 0xfc, 0x2e, 0x73, 0xda, 0x05, 0xd2, 0xf7, 0x85, 0xc7, 0xc3, 0x90,
- 0x79, 0xf9, 0xb5, 0x8a, 0x27, 0xde, 0xdc, 0xf3, 0x98, 0x10, 0xaa, 0xad, 0xd3, 0x5f, 0xfa, 0x35,
- 0x74, 0x06, 0x4c, 0x9a, 0x41, 0xee, 0xb8, 0xc1, 0x7d, 0x38, 0x88, 0x27, 0xeb, 0x94, 0xcb, 0x5e,
- 0x38, 0xc1, 0x5c, 0x7a, 0x42, 0xf8, 0x57, 0x61, 0xc0, 0xc2, 0xcc, 0xee, 0x00, 0x1a, 0xd9, 0x58,
- 0xca, 0x66, 0x91, 0x0e, 0xd1, 0x13, 0x20, 0xa3, 0xf9, 0x38, 0xf0, 0x8b, 0x73, 0xe9, 0xde, 0x79,
- 0x73, 0x0c, 0xdb, 0x05, 0x33, 0x75, 0xc0, 0x3d, 0xa8, 0x2f, 0xce, 0xca, 0x1c, 0xa0, 0x0e, 0x90,
- 0x38, 0xdd, 0x0f, 0xf3, 0x60, 0xac, 0xcd, 0xef, 0x7d, 0x80, 0x1c, 0x4d, 0x87, 0x46, 0x8e, 0x14,
- 0x7d, 0x56, 0x17, 0x7d, 0x9e, 0xe0, 0xec, 0xcd, 0xfe, 0xb5, 0x49, 0x74, 0x97, 0x53, 0xfa, 0x19,
- 0xb4, 0x8a, 0x66, 0x2a, 0x99, 0xb2, 0x81, 0x7c, 0x84, 0xa3, 0x32, 0x23, 0xad, 0x27, 0x71, 0x98,
- 0xa5, 0x91, 0x5a, 0xb0, 0x9a, 0x8f, 0x3b, 0xcb, 0x49, 0x7e, 0xe8, 0x3b, 0xac, 0xa7, 0x69, 0xa3,
- 0xc2, 0x7c, 0x0e, 0xf5, 0x4c, 0xa6, 0x38, 0xc6, 0x96, 0xcd, 0xdf, 0x90, 0x5c, 0x4e, 0x7f, 0x85,
- 0x27, 0x7a, 0x6f, 0x64, 0x02, 0xf1, 0x1f, 0x0f, 0x1b, 0xa7, 0x88, 0xfd, 0x81, 0xec, 0x59, 0x4e,
- 0xf2, 0xa3, 0xde, 0x99, 0x91, 0x74, 0x25, 0xd3, 0xdf, 0x19, 0x11, 0x03, 0x7a, 0xdd, 0x13, 0x8d,
- 0x04, 0xa7, 0x2f, 0x90, 0xb7, 0x04, 0xe2, 0xda, 0x83, 0xb1, 0x07, 0xf5, 0x0c, 0x4c, 0x0b, 0x9f,
- 0x01, 0xf4, 0x67, 0xd8, 0x5f, 0x76, 0x02, 0x65, 0xff, 0x25, 0x40, 0x8e, 0xaa, 0x81, 0xbb, 0xc0,
- 0x88, 0xa6, 0x40, 0xcf, 0xe1, 0x69, 0xa9, 0xc3, 0x8b, 0x70, 0xe2, 0x7b, 0x4c, 0xe8, 0xbd, 0xb5,
- 0xe0, 0xd6, 0xd2, 0xfd, 0x1c, 0xfd, 0xbd, 0x06, 0x16, 0x36, 0x81, 0x77, 0xed, 0xfa, 0xa1, 0x33,
- 0x3c, 0x23, 0xdf, 0x41, 0x43, 0x6b, 0x6c, 0xb2, 0x83, 0x0c, 0x18, 0x17, 0xc4, 0xde, 0x35, 0x70,
- 0x15, 0xf1, 0x7b, 0xb0, 0xd4, 0xad, 0x54, 0xe4, 0xef, 0x74, 0x93, 0x65, 0xa9, 0x9b, 0x2e, 0x4b,
- 0xdd, 0x37, 0xf1, 0xb2, 0x64, 0x27, 0x9e, 0xcd, 0xeb, 0xd0, 0x83, 0xa6, 0xde, 0x99, 0x04, 0x23,
- 0x95, 0xb4, 0xb8, 0xdd, 0x36, 0x05, 0xca, 0x45, 0x1f, 0x2b, 0x5b, 0xd8, 0x51, 0x96, 0xa6, 0xb1,
- 0xdc, 0xcb, 0x4b, 0x58, 0x4f, 0x4b, 0xbd, 0xd4, 0xba, 0xa5, 0xac, 0x8b, 0x5d, 0xf4, 0x03, 0x1e,
- 0x21, 0x2b, 0xff, 0xbd, 0xb1, 0xcd, 0x76, 0x1a, 0xe2, 0xad, 0x36, 0xde, 0xe8, 0x4e, 0xe9, 0xdb,
- 0xae, 0xf8, 0xd8, 0x2b, 0x17, 0x2a, 0x8f, 0xc7, 0xd0, 0x18, 0x30, 0x79, 0xce, 0xa3, 0x9b, 0xbe,
- 0x2b, 0xdd, 0xa5, 0x29, 0x35, 0x63, 0x27, 0x99, 0xd6, 0x08, 0x88, 0xb9, 0x24, 0x91, 0x27, 0x2a,
- 0xed, 0xf2, 0x6d, 0xcb, 0xde, 0x5f, 0x26, 0x56, 0x99, 0xfc, 0x62, 0x6e, 0xc4, 0xa9, 0xe7, 0x4e,
- 0x4a, 0x48, 0xc9, 0xba, 0x6c, 0x3f, 0xce, 0xde, 0x22, 0x63, 0x05, 0x3e, 0xc1, 0x52, 0x25, 0x1d,
- 0xbb, 0xad, 0x17, 0x34, 0xb5, 0x6d, 0x15, 0x41, 0x65, 0xf6, 0x0d, 0x3c, 0x4c, 0x5a, 0xb8, 0x27,
- 0xe3, 0x3d, 0x23, 0xe1, 0x78, 0x33, 0x56, 0xd5, 0x00, 0x7b, 0x09, 0x55, 0xe4, 0x10, 0x60, 0xc0,
- 0xa4, 0x5a, 0x98, 0x09, 0x89, 0xcd, 0x8a, 0xdb, 0xb3, 0x6d, 0x65, 0xcf, 0xc6, 0x6b, 0x3e, 0xb9,
- 0x25, 0x3d, 0x3c, 0xb8, 0x76, 0x57, 0xf3, 0xc2, 0xa6, 0x4d, 0xbe, 0xb8, 0x43, 0xdb, 0xc5, 0x19,
- 0x30, 0x7e, 0x80, 0x39, 0x1c, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x48, 0x05, 0x81, 0x96,
- 0x0c, 0x00, 0x00,
-}
diff --git a/pb/beaconrpc.proto b/pb/beaconrpc.proto
index 6411c607..6df8b443 100644
--- a/pb/beaconrpc.proto
+++ b/pb/beaconrpc.proto
@@ -33,6 +33,8 @@ service BlockchainRPC {
rpc GetMempool(MempoolRequest) returns (BlockBody);
rpc GetValidatorInformation(GetValidatorRequest) returns (Validator);
+
+ rpc GetConfigHash(google.protobuf.Empty) returns (GetConfigHashResponse);
}
message GetShardProposerRequest {
@@ -153,3 +155,8 @@ message GetCommitteeValidatorsResponse {
message GetCommitteeValidatorIndicesResponse {
repeated uint32 Validators = 1;
}
+
+message GetConfigHashResponse {
+ bytes Hash = 1;
+}
+
diff --git a/pb/common.pb.go b/pb/common.pb.go
index e61520b8..d4f35cb6 100644
--- a/pb/common.pb.go
+++ b/pb/common.pb.go
@@ -3,9 +3,11 @@
package pb
-import proto "github.com/golang/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,16 +33,17 @@ func (m *ProposalSignedData) Reset() { *m = ProposalSignedData{} }
func (m *ProposalSignedData) String() string { return proto.CompactTextString(m) }
func (*ProposalSignedData) ProtoMessage() {}
func (*ProposalSignedData) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{0}
+ return fileDescriptor_555bd8c177793206, []int{0}
}
+
func (m *ProposalSignedData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProposalSignedData.Unmarshal(m, b)
}
func (m *ProposalSignedData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProposalSignedData.Marshal(b, m, deterministic)
}
-func (dst *ProposalSignedData) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProposalSignedData.Merge(dst, src)
+func (m *ProposalSignedData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProposalSignedData.Merge(m, src)
}
func (m *ProposalSignedData) XXX_Size() int {
return xxx_messageInfo_ProposalSignedData.Size(m)
@@ -87,16 +90,17 @@ func (m *ProposerSlashing) Reset() { *m = ProposerSlashing{} }
func (m *ProposerSlashing) String() string { return proto.CompactTextString(m) }
func (*ProposerSlashing) ProtoMessage() {}
func (*ProposerSlashing) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{1}
+ return fileDescriptor_555bd8c177793206, []int{1}
}
+
func (m *ProposerSlashing) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProposerSlashing.Unmarshal(m, b)
}
func (m *ProposerSlashing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProposerSlashing.Marshal(b, m, deterministic)
}
-func (dst *ProposerSlashing) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProposerSlashing.Merge(dst, src)
+func (m *ProposerSlashing) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProposerSlashing.Merge(m, src)
}
func (m *ProposerSlashing) XXX_Size() int {
return xxx_messageInfo_ProposerSlashing.Size(m)
@@ -156,16 +160,17 @@ func (m *SlashableVoteData) Reset() { *m = SlashableVoteData{} }
func (m *SlashableVoteData) String() string { return proto.CompactTextString(m) }
func (*SlashableVoteData) ProtoMessage() {}
func (*SlashableVoteData) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{2}
+ return fileDescriptor_555bd8c177793206, []int{2}
}
+
func (m *SlashableVoteData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SlashableVoteData.Unmarshal(m, b)
}
func (m *SlashableVoteData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SlashableVoteData.Marshal(b, m, deterministic)
}
-func (dst *SlashableVoteData) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SlashableVoteData.Merge(dst, src)
+func (m *SlashableVoteData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SlashableVoteData.Merge(m, src)
}
func (m *SlashableVoteData) XXX_Size() int {
return xxx_messageInfo_SlashableVoteData.Size(m)
@@ -216,16 +221,17 @@ func (m *CasperSlashing) Reset() { *m = CasperSlashing{} }
func (m *CasperSlashing) String() string { return proto.CompactTextString(m) }
func (*CasperSlashing) ProtoMessage() {}
func (*CasperSlashing) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{3}
+ return fileDescriptor_555bd8c177793206, []int{3}
}
+
func (m *CasperSlashing) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CasperSlashing.Unmarshal(m, b)
}
func (m *CasperSlashing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CasperSlashing.Marshal(b, m, deterministic)
}
-func (dst *CasperSlashing) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CasperSlashing.Merge(dst, src)
+func (m *CasperSlashing) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CasperSlashing.Merge(m, src)
}
func (m *CasperSlashing) XXX_Size() int {
return xxx_messageInfo_CasperSlashing.Size(m)
@@ -271,16 +277,17 @@ func (m *AttestationData) Reset() { *m = AttestationData{} }
func (m *AttestationData) String() string { return proto.CompactTextString(m) }
func (*AttestationData) ProtoMessage() {}
func (*AttestationData) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{4}
+ return fileDescriptor_555bd8c177793206, []int{4}
}
+
func (m *AttestationData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationData.Unmarshal(m, b)
}
func (m *AttestationData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AttestationData.Marshal(b, m, deterministic)
}
-func (dst *AttestationData) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AttestationData.Merge(dst, src)
+func (m *AttestationData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AttestationData.Merge(m, src)
}
func (m *AttestationData) XXX_Size() int {
return xxx_messageInfo_AttestationData.Size(m)
@@ -366,16 +373,17 @@ func (m *AttestationDataAndCustodyBit) Reset() { *m = AttestationDataAnd
func (m *AttestationDataAndCustodyBit) String() string { return proto.CompactTextString(m) }
func (*AttestationDataAndCustodyBit) ProtoMessage() {}
func (*AttestationDataAndCustodyBit) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{5}
+ return fileDescriptor_555bd8c177793206, []int{5}
}
+
func (m *AttestationDataAndCustodyBit) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationDataAndCustodyBit.Unmarshal(m, b)
}
func (m *AttestationDataAndCustodyBit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AttestationDataAndCustodyBit.Marshal(b, m, deterministic)
}
-func (dst *AttestationDataAndCustodyBit) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AttestationDataAndCustodyBit.Merge(dst, src)
+func (m *AttestationDataAndCustodyBit) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AttestationDataAndCustodyBit.Merge(m, src)
}
func (m *AttestationDataAndCustodyBit) XXX_Size() int {
return xxx_messageInfo_AttestationDataAndCustodyBit.Size(m)
@@ -414,16 +422,17 @@ func (m *Attestation) Reset() { *m = Attestation{} }
func (m *Attestation) String() string { return proto.CompactTextString(m) }
func (*Attestation) ProtoMessage() {}
func (*Attestation) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{6}
+ return fileDescriptor_555bd8c177793206, []int{6}
}
+
func (m *Attestation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Attestation.Unmarshal(m, b)
}
func (m *Attestation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Attestation.Marshal(b, m, deterministic)
}
-func (dst *Attestation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Attestation.Merge(dst, src)
+func (m *Attestation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Attestation.Merge(m, src)
}
func (m *Attestation) XXX_Size() int {
return xxx_messageInfo_Attestation.Size(m)
@@ -475,16 +484,17 @@ func (m *DepositParameters) Reset() { *m = DepositParameters{} }
func (m *DepositParameters) String() string { return proto.CompactTextString(m) }
func (*DepositParameters) ProtoMessage() {}
func (*DepositParameters) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{7}
+ return fileDescriptor_555bd8c177793206, []int{7}
}
+
func (m *DepositParameters) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DepositParameters.Unmarshal(m, b)
}
func (m *DepositParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DepositParameters.Marshal(b, m, deterministic)
}
-func (dst *DepositParameters) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DepositParameters.Merge(dst, src)
+func (m *DepositParameters) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DepositParameters.Merge(m, src)
}
func (m *DepositParameters) XXX_Size() int {
return xxx_messageInfo_DepositParameters.Size(m)
@@ -527,16 +537,17 @@ func (m *Deposit) Reset() { *m = Deposit{} }
func (m *Deposit) String() string { return proto.CompactTextString(m) }
func (*Deposit) ProtoMessage() {}
func (*Deposit) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{8}
+ return fileDescriptor_555bd8c177793206, []int{8}
}
+
func (m *Deposit) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Deposit.Unmarshal(m, b)
}
func (m *Deposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Deposit.Marshal(b, m, deterministic)
}
-func (dst *Deposit) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Deposit.Merge(dst, src)
+func (m *Deposit) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Deposit.Merge(m, src)
}
func (m *Deposit) XXX_Size() int {
return xxx_messageInfo_Deposit.Size(m)
@@ -567,16 +578,17 @@ func (m *Exit) Reset() { *m = Exit{} }
func (m *Exit) String() string { return proto.CompactTextString(m) }
func (*Exit) ProtoMessage() {}
func (*Exit) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{9}
+ return fileDescriptor_555bd8c177793206, []int{9}
}
+
func (m *Exit) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Exit.Unmarshal(m, b)
}
func (m *Exit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Exit.Marshal(b, m, deterministic)
}
-func (dst *Exit) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Exit.Merge(dst, src)
+func (m *Exit) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Exit.Merge(m, src)
}
func (m *Exit) XXX_Size() int {
return xxx_messageInfo_Exit.Size(m)
@@ -620,16 +632,17 @@ func (m *Block) Reset() { *m = Block{} }
func (m *Block) String() string { return proto.CompactTextString(m) }
func (*Block) ProtoMessage() {}
func (*Block) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{10}
+ return fileDescriptor_555bd8c177793206, []int{10}
}
+
func (m *Block) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Block.Unmarshal(m, b)
}
func (m *Block) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Block.Marshal(b, m, deterministic)
}
-func (dst *Block) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Block.Merge(dst, src)
+func (m *Block) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Block.Merge(m, src)
}
func (m *Block) XXX_Size() int {
return xxx_messageInfo_Block.Size(m)
@@ -669,16 +682,17 @@ func (m *BlockHeader) Reset() { *m = BlockHeader{} }
func (m *BlockHeader) String() string { return proto.CompactTextString(m) }
func (*BlockHeader) ProtoMessage() {}
func (*BlockHeader) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{11}
+ return fileDescriptor_555bd8c177793206, []int{11}
}
+
func (m *BlockHeader) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlockHeader.Unmarshal(m, b)
}
func (m *BlockHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BlockHeader.Marshal(b, m, deterministic)
}
-func (dst *BlockHeader) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BlockHeader.Merge(dst, src)
+func (m *BlockHeader) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockHeader.Merge(m, src)
}
func (m *BlockHeader) XXX_Size() int {
return xxx_messageInfo_BlockHeader.Size(m)
@@ -740,16 +754,17 @@ func (m *BlockBody) Reset() { *m = BlockBody{} }
func (m *BlockBody) String() string { return proto.CompactTextString(m) }
func (*BlockBody) ProtoMessage() {}
func (*BlockBody) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{12}
+ return fileDescriptor_555bd8c177793206, []int{12}
}
+
func (m *BlockBody) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlockBody.Unmarshal(m, b)
}
func (m *BlockBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BlockBody.Marshal(b, m, deterministic)
}
-func (dst *BlockBody) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BlockBody.Merge(dst, src)
+func (m *BlockBody) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockBody.Merge(m, src)
}
func (m *BlockBody) XXX_Size() int {
return xxx_messageInfo_BlockBody.Size(m)
@@ -815,16 +830,17 @@ func (m *ForkData) Reset() { *m = ForkData{} }
func (m *ForkData) String() string { return proto.CompactTextString(m) }
func (*ForkData) ProtoMessage() {}
func (*ForkData) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{13}
+ return fileDescriptor_555bd8c177793206, []int{13}
}
+
func (m *ForkData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForkData.Unmarshal(m, b)
}
func (m *ForkData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ForkData.Marshal(b, m, deterministic)
}
-func (dst *ForkData) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ForkData.Merge(dst, src)
+func (m *ForkData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ForkData.Merge(m, src)
}
func (m *ForkData) XXX_Size() int {
return xxx_messageInfo_ForkData.Size(m)
@@ -873,16 +889,17 @@ func (m *Validator) Reset() { *m = Validator{} }
func (m *Validator) String() string { return proto.CompactTextString(m) }
func (*Validator) ProtoMessage() {}
func (*Validator) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{14}
+ return fileDescriptor_555bd8c177793206, []int{14}
}
+
func (m *Validator) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Validator.Unmarshal(m, b)
}
func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Validator.Marshal(b, m, deterministic)
}
-func (dst *Validator) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Validator.Merge(dst, src)
+func (m *Validator) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Validator.Merge(m, src)
}
func (m *Validator) XXX_Size() int {
return xxx_messageInfo_Validator.Size(m)
@@ -955,16 +972,17 @@ func (m *ShardCommittee) Reset() { *m = ShardCommittee{} }
func (m *ShardCommittee) String() string { return proto.CompactTextString(m) }
func (*ShardCommittee) ProtoMessage() {}
func (*ShardCommittee) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{15}
+ return fileDescriptor_555bd8c177793206, []int{15}
}
+
func (m *ShardCommittee) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardCommittee.Unmarshal(m, b)
}
func (m *ShardCommittee) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardCommittee.Marshal(b, m, deterministic)
}
-func (dst *ShardCommittee) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardCommittee.Merge(dst, src)
+func (m *ShardCommittee) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardCommittee.Merge(m, src)
}
func (m *ShardCommittee) XXX_Size() int {
return xxx_messageInfo_ShardCommittee.Size(m)
@@ -1007,16 +1025,17 @@ func (m *ShardCommitteesForSlot) Reset() { *m = ShardCommitteesForSlot{}
func (m *ShardCommitteesForSlot) String() string { return proto.CompactTextString(m) }
func (*ShardCommitteesForSlot) ProtoMessage() {}
func (*ShardCommitteesForSlot) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{16}
+ return fileDescriptor_555bd8c177793206, []int{16}
}
+
func (m *ShardCommitteesForSlot) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardCommitteesForSlot.Unmarshal(m, b)
}
func (m *ShardCommitteesForSlot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardCommitteesForSlot.Marshal(b, m, deterministic)
}
-func (dst *ShardCommitteesForSlot) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardCommitteesForSlot.Merge(dst, src)
+func (m *ShardCommitteesForSlot) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardCommitteesForSlot.Merge(m, src)
}
func (m *ShardCommitteesForSlot) XXX_Size() int {
return xxx_messageInfo_ShardCommitteesForSlot.Size(m)
@@ -1045,16 +1064,17 @@ func (m *PersistentCommitteesForSlot) Reset() { *m = PersistentCommittee
func (m *PersistentCommitteesForSlot) String() string { return proto.CompactTextString(m) }
func (*PersistentCommitteesForSlot) ProtoMessage() {}
func (*PersistentCommitteesForSlot) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{17}
+ return fileDescriptor_555bd8c177793206, []int{17}
}
+
func (m *PersistentCommitteesForSlot) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PersistentCommitteesForSlot.Unmarshal(m, b)
}
func (m *PersistentCommitteesForSlot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PersistentCommitteesForSlot.Marshal(b, m, deterministic)
}
-func (dst *PersistentCommitteesForSlot) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PersistentCommitteesForSlot.Merge(dst, src)
+func (m *PersistentCommitteesForSlot) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PersistentCommitteesForSlot.Merge(m, src)
}
func (m *PersistentCommitteesForSlot) XXX_Size() int {
return xxx_messageInfo_PersistentCommitteesForSlot.Size(m)
@@ -1085,16 +1105,17 @@ func (m *Crosslink) Reset() { *m = Crosslink{} }
func (m *Crosslink) String() string { return proto.CompactTextString(m) }
func (*Crosslink) ProtoMessage() {}
func (*Crosslink) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{18}
+ return fileDescriptor_555bd8c177793206, []int{18}
}
+
func (m *Crosslink) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Crosslink.Unmarshal(m, b)
}
func (m *Crosslink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Crosslink.Marshal(b, m, deterministic)
}
-func (dst *Crosslink) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Crosslink.Merge(dst, src)
+func (m *Crosslink) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Crosslink.Merge(m, src)
}
func (m *Crosslink) XXX_Size() int {
return xxx_messageInfo_Crosslink.Size(m)
@@ -1141,16 +1162,17 @@ func (m *PendingAttestation) Reset() { *m = PendingAttestation{} }
func (m *PendingAttestation) String() string { return proto.CompactTextString(m) }
func (*PendingAttestation) ProtoMessage() {}
func (*PendingAttestation) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{19}
+ return fileDescriptor_555bd8c177793206, []int{19}
}
+
func (m *PendingAttestation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingAttestation.Unmarshal(m, b)
}
func (m *PendingAttestation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PendingAttestation.Marshal(b, m, deterministic)
}
-func (dst *PendingAttestation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PendingAttestation.Merge(dst, src)
+func (m *PendingAttestation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PendingAttestation.Merge(m, src)
}
func (m *PendingAttestation) XXX_Size() int {
return xxx_messageInfo_PendingAttestation.Size(m)
@@ -1231,16 +1253,17 @@ func (m *State) Reset() { *m = State{} }
func (m *State) String() string { return proto.CompactTextString(m) }
func (*State) ProtoMessage() {}
func (*State) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{20}
+ return fileDescriptor_555bd8c177793206, []int{20}
}
+
func (m *State) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_State.Unmarshal(m, b)
}
func (m *State) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_State.Marshal(b, m, deterministic)
}
-func (dst *State) XXX_Merge(src proto.Message) {
- xxx_messageInfo_State.Merge(dst, src)
+func (m *State) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_State.Merge(m, src)
}
func (m *State) XXX_Size() int {
return xxx_messageInfo_State.Size(m)
@@ -1440,16 +1463,17 @@ func (m *ValidatorRegistryDeltaBlock) Reset() { *m = ValidatorRegistryDe
func (m *ValidatorRegistryDeltaBlock) String() string { return proto.CompactTextString(m) }
func (*ValidatorRegistryDeltaBlock) ProtoMessage() {}
func (*ValidatorRegistryDeltaBlock) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{21}
+ return fileDescriptor_555bd8c177793206, []int{21}
}
+
func (m *ValidatorRegistryDeltaBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidatorRegistryDeltaBlock.Unmarshal(m, b)
}
func (m *ValidatorRegistryDeltaBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ValidatorRegistryDeltaBlock.Marshal(b, m, deterministic)
}
-func (dst *ValidatorRegistryDeltaBlock) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ValidatorRegistryDeltaBlock.Merge(dst, src)
+func (m *ValidatorRegistryDeltaBlock) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ValidatorRegistryDeltaBlock.Merge(m, src)
}
func (m *ValidatorRegistryDeltaBlock) XXX_Size() int {
return xxx_messageInfo_ValidatorRegistryDeltaBlock.Size(m)
@@ -1500,16 +1524,17 @@ func (m *AttestationRequest) Reset() { *m = AttestationRequest{} }
func (m *AttestationRequest) String() string { return proto.CompactTextString(m) }
func (*AttestationRequest) ProtoMessage() {}
func (*AttestationRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{22}
+ return fileDescriptor_555bd8c177793206, []int{22}
}
+
func (m *AttestationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationRequest.Unmarshal(m, b)
}
func (m *AttestationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AttestationRequest.Marshal(b, m, deterministic)
}
-func (dst *AttestationRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AttestationRequest.Merge(dst, src)
+func (m *AttestationRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AttestationRequest.Merge(m, src)
}
func (m *AttestationRequest) XXX_Size() int {
return xxx_messageInfo_AttestationRequest.Size(m)
@@ -1541,16 +1566,17 @@ func (m *VoteData) Reset() { *m = VoteData{} }
func (m *VoteData) String() string { return proto.CompactTextString(m) }
func (*VoteData) ProtoMessage() {}
func (*VoteData) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{23}
+ return fileDescriptor_555bd8c177793206, []int{23}
}
+
func (m *VoteData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VoteData.Unmarshal(m, b)
}
func (m *VoteData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_VoteData.Marshal(b, m, deterministic)
}
-func (dst *VoteData) XXX_Merge(src proto.Message) {
- xxx_messageInfo_VoteData.Merge(dst, src)
+func (m *VoteData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_VoteData.Merge(m, src)
}
func (m *VoteData) XXX_Size() int {
return xxx_messageInfo_VoteData.Size(m)
@@ -1602,16 +1628,17 @@ func (m *AggregatedVote) Reset() { *m = AggregatedVote{} }
func (m *AggregatedVote) String() string { return proto.CompactTextString(m) }
func (*AggregatedVote) ProtoMessage() {}
func (*AggregatedVote) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{24}
+ return fileDescriptor_555bd8c177793206, []int{24}
}
+
func (m *AggregatedVote) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AggregatedVote.Unmarshal(m, b)
}
func (m *AggregatedVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AggregatedVote.Marshal(b, m, deterministic)
}
-func (dst *AggregatedVote) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AggregatedVote.Merge(dst, src)
+func (m *AggregatedVote) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AggregatedVote.Merge(m, src)
}
func (m *AggregatedVote) XXX_Size() int {
return xxx_messageInfo_AggregatedVote.Size(m)
@@ -1657,16 +1684,17 @@ func (m *ActiveProposal) Reset() { *m = ActiveProposal{} }
func (m *ActiveProposal) String() string { return proto.CompactTextString(m) }
func (*ActiveProposal) ProtoMessage() {}
func (*ActiveProposal) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{25}
+ return fileDescriptor_555bd8c177793206, []int{25}
}
+
func (m *ActiveProposal) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ActiveProposal.Unmarshal(m, b)
}
func (m *ActiveProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ActiveProposal.Marshal(b, m, deterministic)
}
-func (dst *ActiveProposal) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ActiveProposal.Merge(dst, src)
+func (m *ActiveProposal) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ActiveProposal.Merge(m, src)
}
func (m *ActiveProposal) XXX_Size() int {
return xxx_messageInfo_ActiveProposal.Size(m)
@@ -1717,16 +1745,17 @@ func (m *ShardBlock) Reset() { *m = ShardBlock{} }
func (m *ShardBlock) String() string { return proto.CompactTextString(m) }
func (*ShardBlock) ProtoMessage() {}
func (*ShardBlock) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{26}
+ return fileDescriptor_555bd8c177793206, []int{26}
}
+
func (m *ShardBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardBlock.Unmarshal(m, b)
}
func (m *ShardBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardBlock.Marshal(b, m, deterministic)
}
-func (dst *ShardBlock) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardBlock.Merge(dst, src)
+func (m *ShardBlock) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardBlock.Merge(m, src)
}
func (m *ShardBlock) XXX_Size() int {
return xxx_messageInfo_ShardBlock.Size(m)
@@ -1767,16 +1796,17 @@ func (m *ShardBlockHeader) Reset() { *m = ShardBlockHeader{} }
func (m *ShardBlockHeader) String() string { return proto.CompactTextString(m) }
func (*ShardBlockHeader) ProtoMessage() {}
func (*ShardBlockHeader) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{27}
+ return fileDescriptor_555bd8c177793206, []int{27}
}
+
func (m *ShardBlockHeader) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardBlockHeader.Unmarshal(m, b)
}
func (m *ShardBlockHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardBlockHeader.Marshal(b, m, deterministic)
}
-func (dst *ShardBlockHeader) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardBlockHeader.Merge(dst, src)
+func (m *ShardBlockHeader) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardBlockHeader.Merge(m, src)
}
func (m *ShardBlockHeader) XXX_Size() int {
return xxx_messageInfo_ShardBlockHeader.Size(m)
@@ -1840,16 +1870,17 @@ func (m *ShardBlockBody) Reset() { *m = ShardBlockBody{} }
func (m *ShardBlockBody) String() string { return proto.CompactTextString(m) }
func (*ShardBlockBody) ProtoMessage() {}
func (*ShardBlockBody) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{28}
+ return fileDescriptor_555bd8c177793206, []int{28}
}
+
func (m *ShardBlockBody) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardBlockBody.Unmarshal(m, b)
}
func (m *ShardBlockBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardBlockBody.Marshal(b, m, deterministic)
}
-func (dst *ShardBlockBody) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardBlockBody.Merge(dst, src)
+func (m *ShardBlockBody) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardBlockBody.Merge(m, src)
}
func (m *ShardBlockBody) XXX_Size() int {
return xxx_messageInfo_ShardBlockBody.Size(m)
@@ -1878,16 +1909,17 @@ func (m *ShardTransaction) Reset() { *m = ShardTransaction{} }
func (m *ShardTransaction) String() string { return proto.CompactTextString(m) }
func (*ShardTransaction) ProtoMessage() {}
func (*ShardTransaction) Descriptor() ([]byte, []int) {
- return fileDescriptor_common_bc32d941759847ca, []int{29}
+ return fileDescriptor_555bd8c177793206, []int{29}
}
+
func (m *ShardTransaction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardTransaction.Unmarshal(m, b)
}
func (m *ShardTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardTransaction.Marshal(b, m, deterministic)
}
-func (dst *ShardTransaction) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardTransaction.Merge(dst, src)
+func (m *ShardTransaction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardTransaction.Merge(m, src)
}
func (m *ShardTransaction) XXX_Size() int {
return xxx_messageInfo_ShardTransaction.Size(m)
@@ -1938,9 +1970,9 @@ func init() {
proto.RegisterType((*ShardTransaction)(nil), "pb.ShardTransaction")
}
-func init() { proto.RegisterFile("common.proto", fileDescriptor_common_bc32d941759847ca) }
+func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
-var fileDescriptor_common_bc32d941759847ca = []byte{
+var fileDescriptor_555bd8c177793206 = []byte{
// 1820 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x6f, 0x1c, 0x49,
0x15, 0x57, 0x4f, 0x66, 0x1c, 0xfb, 0xcd, 0xd8, 0x8e, 0x2b, 0x89, 0xd3, 0x9b, 0x5d, 0x22, 0xd3,
diff --git a/pb/p2p.pb.go b/pb/p2p.pb.go
index f812c545..1870f8d6 100644
--- a/pb/p2p.pb.go
+++ b/pb/p2p.pb.go
@@ -3,9 +3,11 @@
package pb
-import proto "github.com/golang/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,16 +35,17 @@ func (m *VersionMessage) Reset() { *m = VersionMessage{} }
func (m *VersionMessage) String() string { return proto.CompactTextString(m) }
func (*VersionMessage) ProtoMessage() {}
func (*VersionMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{0}
+ return fileDescriptor_e7fdddb109e6467a, []int{0}
}
+
func (m *VersionMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VersionMessage.Unmarshal(m, b)
}
func (m *VersionMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_VersionMessage.Marshal(b, m, deterministic)
}
-func (dst *VersionMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_VersionMessage.Merge(dst, src)
+func (m *VersionMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_VersionMessage.Merge(m, src)
}
func (m *VersionMessage) XXX_Size() int {
return xxx_messageInfo_VersionMessage.Size(m)
@@ -99,16 +102,17 @@ func (m *PingMessage) Reset() { *m = PingMessage{} }
func (m *PingMessage) String() string { return proto.CompactTextString(m) }
func (*PingMessage) ProtoMessage() {}
func (*PingMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{1}
+ return fileDescriptor_e7fdddb109e6467a, []int{1}
}
+
func (m *PingMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PingMessage.Unmarshal(m, b)
}
func (m *PingMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PingMessage.Marshal(b, m, deterministic)
}
-func (dst *PingMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PingMessage.Merge(dst, src)
+func (m *PingMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PingMessage.Merge(m, src)
}
func (m *PingMessage) XXX_Size() int {
return xxx_messageInfo_PingMessage.Size(m)
@@ -137,16 +141,17 @@ func (m *PongMessage) Reset() { *m = PongMessage{} }
func (m *PongMessage) String() string { return proto.CompactTextString(m) }
func (*PongMessage) ProtoMessage() {}
func (*PongMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{2}
+ return fileDescriptor_e7fdddb109e6467a, []int{2}
}
+
func (m *PongMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PongMessage.Unmarshal(m, b)
}
func (m *PongMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PongMessage.Marshal(b, m, deterministic)
}
-func (dst *PongMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PongMessage.Merge(dst, src)
+func (m *PongMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PongMessage.Merge(m, src)
}
func (m *PongMessage) XXX_Size() int {
return xxx_messageInfo_PongMessage.Size(m)
@@ -175,16 +180,17 @@ func (m *RejectMessage) Reset() { *m = RejectMessage{} }
func (m *RejectMessage) String() string { return proto.CompactTextString(m) }
func (*RejectMessage) ProtoMessage() {}
func (*RejectMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{3}
+ return fileDescriptor_e7fdddb109e6467a, []int{3}
}
+
func (m *RejectMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RejectMessage.Unmarshal(m, b)
}
func (m *RejectMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RejectMessage.Marshal(b, m, deterministic)
}
-func (dst *RejectMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RejectMessage.Merge(dst, src)
+func (m *RejectMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RejectMessage.Merge(m, src)
}
func (m *RejectMessage) XXX_Size() int {
return xxx_messageInfo_RejectMessage.Size(m)
@@ -214,16 +220,17 @@ func (m *AttestationMempoolItem) Reset() { *m = AttestationMempoolItem{}
func (m *AttestationMempoolItem) String() string { return proto.CompactTextString(m) }
func (*AttestationMempoolItem) ProtoMessage() {}
func (*AttestationMempoolItem) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{4}
+ return fileDescriptor_e7fdddb109e6467a, []int{4}
}
+
func (m *AttestationMempoolItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationMempoolItem.Unmarshal(m, b)
}
func (m *AttestationMempoolItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AttestationMempoolItem.Marshal(b, m, deterministic)
}
-func (dst *AttestationMempoolItem) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AttestationMempoolItem.Merge(dst, src)
+func (m *AttestationMempoolItem) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AttestationMempoolItem.Merge(m, src)
}
func (m *AttestationMempoolItem) XXX_Size() int {
return xxx_messageInfo_AttestationMempoolItem.Size(m)
@@ -260,16 +267,17 @@ func (m *GetMempoolMessage) Reset() { *m = GetMempoolMessage{} }
func (m *GetMempoolMessage) String() string { return proto.CompactTextString(m) }
func (*GetMempoolMessage) ProtoMessage() {}
func (*GetMempoolMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{5}
+ return fileDescriptor_e7fdddb109e6467a, []int{5}
}
+
func (m *GetMempoolMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMempoolMessage.Unmarshal(m, b)
}
func (m *GetMempoolMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetMempoolMessage.Marshal(b, m, deterministic)
}
-func (dst *GetMempoolMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetMempoolMessage.Merge(dst, src)
+func (m *GetMempoolMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetMempoolMessage.Merge(m, src)
}
func (m *GetMempoolMessage) XXX_Size() int {
return xxx_messageInfo_GetMempoolMessage.Size(m)
@@ -299,16 +307,17 @@ func (m *GetBlockMessage) Reset() { *m = GetBlockMessage{} }
func (m *GetBlockMessage) String() string { return proto.CompactTextString(m) }
func (*GetBlockMessage) ProtoMessage() {}
func (*GetBlockMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{6}
+ return fileDescriptor_e7fdddb109e6467a, []int{6}
}
+
func (m *GetBlockMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlockMessage.Unmarshal(m, b)
}
func (m *GetBlockMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetBlockMessage.Marshal(b, m, deterministic)
}
-func (dst *GetBlockMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetBlockMessage.Merge(dst, src)
+func (m *GetBlockMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBlockMessage.Merge(m, src)
}
func (m *GetBlockMessage) XXX_Size() int {
return xxx_messageInfo_GetBlockMessage.Size(m)
@@ -344,16 +353,17 @@ func (m *MempoolMessage) Reset() { *m = MempoolMessage{} }
func (m *MempoolMessage) String() string { return proto.CompactTextString(m) }
func (*MempoolMessage) ProtoMessage() {}
func (*MempoolMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{7}
+ return fileDescriptor_e7fdddb109e6467a, []int{7}
}
+
func (m *MempoolMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MempoolMessage.Unmarshal(m, b)
}
func (m *MempoolMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MempoolMessage.Marshal(b, m, deterministic)
}
-func (dst *MempoolMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MempoolMessage.Merge(dst, src)
+func (m *MempoolMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MempoolMessage.Merge(m, src)
}
func (m *MempoolMessage) XXX_Size() int {
return xxx_messageInfo_MempoolMessage.Size(m)
@@ -384,16 +394,17 @@ func (m *BlockMessage) Reset() { *m = BlockMessage{} }
func (m *BlockMessage) String() string { return proto.CompactTextString(m) }
func (*BlockMessage) ProtoMessage() {}
func (*BlockMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{8}
+ return fileDescriptor_e7fdddb109e6467a, []int{8}
}
+
func (m *BlockMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlockMessage.Unmarshal(m, b)
}
func (m *BlockMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BlockMessage.Marshal(b, m, deterministic)
}
-func (dst *BlockMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BlockMessage.Merge(dst, src)
+func (m *BlockMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockMessage.Merge(m, src)
}
func (m *BlockMessage) XXX_Size() int {
return xxx_messageInfo_BlockMessage.Size(m)
@@ -418,6 +429,84 @@ func (m *BlockMessage) GetLatestBlockHash() []byte {
return nil
}
+type GetDataMessage struct {
+ DataHash [][]byte `protobuf:"bytes,1,rep,name=DataHash,proto3" json:"DataHash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetDataMessage) Reset() { *m = GetDataMessage{} }
+func (m *GetDataMessage) String() string { return proto.CompactTextString(m) }
+func (*GetDataMessage) ProtoMessage() {}
+func (*GetDataMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e7fdddb109e6467a, []int{9}
+}
+
+func (m *GetDataMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetDataMessage.Unmarshal(m, b)
+}
+func (m *GetDataMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetDataMessage.Marshal(b, m, deterministic)
+}
+func (m *GetDataMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetDataMessage.Merge(m, src)
+}
+func (m *GetDataMessage) XXX_Size() int {
+ return xxx_messageInfo_GetDataMessage.Size(m)
+}
+func (m *GetDataMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetDataMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetDataMessage proto.InternalMessageInfo
+
+func (m *GetDataMessage) GetDataHash() [][]byte {
+ if m != nil {
+ return m.DataHash
+ }
+ return nil
+}
+
+type DataMessage struct {
+ Data [][]byte `protobuf:"bytes,2,rep,name=Data,proto3" json:"Data,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DataMessage) Reset() { *m = DataMessage{} }
+func (m *DataMessage) String() string { return proto.CompactTextString(m) }
+func (*DataMessage) ProtoMessage() {}
+func (*DataMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e7fdddb109e6467a, []int{10}
+}
+
+func (m *DataMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DataMessage.Unmarshal(m, b)
+}
+func (m *DataMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DataMessage.Marshal(b, m, deterministic)
+}
+func (m *DataMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DataMessage.Merge(m, src)
+}
+func (m *DataMessage) XXX_Size() int {
+ return xxx_messageInfo_DataMessage.Size(m)
+}
+func (m *DataMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_DataMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DataMessage proto.InternalMessageInfo
+
+func (m *DataMessage) GetData() [][]byte {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
type GetAddrMessage struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@@ -428,16 +517,17 @@ func (m *GetAddrMessage) Reset() { *m = GetAddrMessage{} }
func (m *GetAddrMessage) String() string { return proto.CompactTextString(m) }
func (*GetAddrMessage) ProtoMessage() {}
func (*GetAddrMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{9}
+ return fileDescriptor_e7fdddb109e6467a, []int{11}
}
+
func (m *GetAddrMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetAddrMessage.Unmarshal(m, b)
}
func (m *GetAddrMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetAddrMessage.Marshal(b, m, deterministic)
}
-func (dst *GetAddrMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetAddrMessage.Merge(dst, src)
+func (m *GetAddrMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetAddrMessage.Merge(m, src)
}
func (m *GetAddrMessage) XXX_Size() int {
return xxx_messageInfo_GetAddrMessage.Size(m)
@@ -459,16 +549,17 @@ func (m *AddrMessage) Reset() { *m = AddrMessage{} }
func (m *AddrMessage) String() string { return proto.CompactTextString(m) }
func (*AddrMessage) ProtoMessage() {}
func (*AddrMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_p2p_7ccd670b601d542e, []int{10}
+ return fileDescriptor_e7fdddb109e6467a, []int{12}
}
+
func (m *AddrMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddrMessage.Unmarshal(m, b)
}
func (m *AddrMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AddrMessage.Marshal(b, m, deterministic)
}
-func (dst *AddrMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AddrMessage.Merge(dst, src)
+func (m *AddrMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AddrMessage.Merge(m, src)
}
func (m *AddrMessage) XXX_Size() int {
return xxx_messageInfo_AddrMessage.Size(m)
@@ -496,36 +587,40 @@ func init() {
proto.RegisterType((*GetBlockMessage)(nil), "pb.GetBlockMessage")
proto.RegisterType((*MempoolMessage)(nil), "pb.MempoolMessage")
proto.RegisterType((*BlockMessage)(nil), "pb.BlockMessage")
+ proto.RegisterType((*GetDataMessage)(nil), "pb.GetDataMessage")
+ proto.RegisterType((*DataMessage)(nil), "pb.DataMessage")
proto.RegisterType((*GetAddrMessage)(nil), "pb.GetAddrMessage")
proto.RegisterType((*AddrMessage)(nil), "pb.AddrMessage")
}
-func init() { proto.RegisterFile("p2p.proto", fileDescriptor_p2p_7ccd670b601d542e) }
-
-var fileDescriptor_p2p_7ccd670b601d542e = []byte{
- // 378 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4f, 0x6b, 0xea, 0x40,
- 0x14, 0xc5, 0x89, 0xff, 0xde, 0xf3, 0x26, 0xea, 0x33, 0x3c, 0x24, 0xb8, 0x28, 0x61, 0x74, 0x91,
- 0x42, 0x71, 0x61, 0xf7, 0x82, 0xa5, 0x10, 0x05, 0x5b, 0x42, 0x84, 0xd2, 0x6d, 0x8c, 0xb7, 0x26,
- 0xad, 0x66, 0x86, 0xcc, 0x7c, 0x98, 0x7e, 0xdc, 0x32, 0x93, 0x89, 0x24, 0x69, 0xa1, 0xbb, 0xf9,
- 0x9d, 0x7b, 0x73, 0x72, 0xee, 0x9d, 0x81, 0x3e, 0x5b, 0xb2, 0x05, 0xcb, 0xa9, 0xa0, 0x76, 0x8b,
- 0x1d, 0xc8, 0xa7, 0x01, 0xc3, 0x17, 0xcc, 0x79, 0x4a, 0xb3, 0x27, 0xe4, 0x3c, 0x3a, 0xa1, 0xed,
- 0xc0, 0x1f, 0xad, 0x38, 0x86, 0x6b, 0x78, 0x9d, 0xb0, 0x44, 0x7b, 0x02, 0xbd, 0x00, 0x31, 0xdf,
- 0x3e, 0x3a, 0x2d, 0xd7, 0xf0, 0xac, 0x50, 0x93, 0x3d, 0x85, 0xbf, 0xea, 0x94, 0xbd, 0x51, 0xa7,
- 0xad, 0x2a, 0x57, 0xb6, 0x5d, 0x30, 0x7d, 0xcc, 0x90, 0xa7, 0x7c, 0x13, 0xf1, 0xc4, 0xe9, 0xa8,
- 0x72, 0x55, 0x92, 0xae, 0x1b, 0x4c, 0x4f, 0x89, 0x70, 0xba, 0xea, 0x77, 0x9a, 0xc8, 0x0c, 0xcc,
- 0x20, 0xcd, 0x4e, 0x65, 0xac, 0xff, 0xd0, 0x7d, 0xa6, 0x59, 0x8c, 0x3a, 0x54, 0x01, 0xaa, 0x89,
- 0xfe, 0xd6, 0x74, 0x0b, 0x83, 0x10, 0xdf, 0x31, 0x16, 0x95, 0x11, 0xf5, 0x51, 0x35, 0xf6, 0xc3,
- 0x12, 0x49, 0x02, 0x93, 0xb5, 0x10, 0xc8, 0x45, 0x24, 0xd4, 0x4a, 0x2e, 0x8c, 0xd2, 0xf3, 0x56,
- 0xe0, 0xc5, 0xf6, 0x60, 0x54, 0xa9, 0xa8, 0x61, 0x0c, 0x35, 0x4c, 0x53, 0xb6, 0xe7, 0x30, 0x08,
- 0xa2, 0x5c, 0xa4, 0x71, 0xca, 0x94, 0xa8, 0xb7, 0x55, 0x17, 0xc9, 0x1e, 0xc6, 0x3e, 0x0a, 0xfd,
- 0x87, 0x32, 0xd8, 0x0a, 0xac, 0x8a, 0x1b, 0x77, 0x0c, 0xb7, 0xed, 0x99, 0xcb, 0xe9, 0x82, 0x1d,
- 0x16, 0x3f, 0xc7, 0x0a, 0x6b, 0xfd, 0x64, 0x0f, 0x23, 0x1f, 0xc5, 0xc3, 0x99, 0xc6, 0x1f, 0xa5,
- 0xe5, 0x1c, 0x06, 0x3b, 0x1a, 0x47, 0x82, 0xe6, 0x32, 0x1c, 0x16, 0x9e, 0x56, 0x58, 0x17, 0xe5,
- 0x15, 0xca, 0xd3, 0x5e, 0x50, 0xa6, 0xe3, 0x5e, 0x99, 0xac, 0x60, 0xd8, 0x88, 0x79, 0x07, 0xe3,
- 0xc6, 0xd0, 0x57, 0xdf, 0xef, 0x05, 0xf2, 0x0a, 0x56, 0x2d, 0xd1, 0x0d, 0x80, 0xe2, 0x20, 0x12,
- 0x49, 0xf1, 0x59, 0x3f, 0xac, 0x28, 0x72, 0xd3, 0xbb, 0x48, 0x9a, 0x28, 0x4d, 0x6d, 0xba, 0x88,
- 0xd4, 0x94, 0xc9, 0x3f, 0x18, 0xfa, 0x28, 0xd6, 0xc7, 0x63, 0x5e, 0xde, 0xdf, 0x0c, 0xcc, 0x0a,
- 0xca, 0xf7, 0x20, 0xb1, 0x0c, 0x57, 0xc0, 0xa1, 0xa7, 0xde, 0xff, 0xfd, 0x57, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xce, 0xb4, 0x4b, 0x44, 0x0c, 0x03, 0x00, 0x00,
+func init() { proto.RegisterFile("p2p.proto", fileDescriptor_e7fdddb109e6467a) }
+
+var fileDescriptor_e7fdddb109e6467a = []byte{
+ // 410 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x41, 0x6b, 0xdb, 0x40,
+ 0x10, 0x85, 0x91, 0xe3, 0xa4, 0xf1, 0xc8, 0x76, 0x9a, 0xa5, 0x84, 0xc5, 0x87, 0xe2, 0x6e, 0x72,
+ 0x70, 0x21, 0xf8, 0x90, 0xde, 0x03, 0x29, 0x01, 0x27, 0x90, 0x16, 0x23, 0x43, 0xe9, 0x75, 0xad,
+ 0x4c, 0x2d, 0xb5, 0x89, 0x76, 0xd1, 0xce, 0x8f, 0xe9, 0xcf, 0x2d, 0x3b, 0xda, 0x15, 0x92, 0x5a,
+ 0xe8, 0x6d, 0xbe, 0x37, 0xe3, 0xa7, 0x37, 0x23, 0x19, 0x26, 0xf6, 0xc6, 0xae, 0x6d, 0x6d, 0xc8,
+ 0x88, 0x91, 0xdd, 0xab, 0xdf, 0x09, 0xcc, 0xbf, 0x61, 0xed, 0x4a, 0x53, 0x7d, 0x41, 0xe7, 0xf4,
+ 0x01, 0x85, 0x84, 0x37, 0x41, 0x91, 0xc9, 0x32, 0x59, 0x8d, 0xb3, 0x88, 0xe2, 0x02, 0x4e, 0xb6,
+ 0x88, 0xf5, 0xe3, 0xbd, 0x1c, 0x2d, 0x93, 0xd5, 0x34, 0x0b, 0x24, 0x16, 0x70, 0xca, 0x55, 0xf5,
+ 0xc3, 0xc8, 0x23, 0xee, 0xb4, 0x2c, 0x96, 0x90, 0x6e, 0xb0, 0x42, 0x57, 0xba, 0x07, 0xed, 0x0a,
+ 0x39, 0xe6, 0x76, 0x57, 0xf2, 0xae, 0x0f, 0x58, 0x1e, 0x0a, 0x92, 0xc7, 0xfc, 0xb8, 0x40, 0xea,
+ 0x12, 0xd2, 0x6d, 0x59, 0x1d, 0x62, 0xac, 0x77, 0x70, 0xfc, 0xd5, 0x54, 0x39, 0x86, 0x50, 0x0d,
+ 0xf0, 0x90, 0xf9, 0xdf, 0xd0, 0x47, 0x98, 0x65, 0xf8, 0x13, 0x73, 0xea, 0xac, 0x18, 0x4a, 0x1e,
+ 0x9c, 0x64, 0x11, 0x55, 0x01, 0x17, 0x77, 0x44, 0xe8, 0x48, 0x13, 0x9f, 0xe4, 0xd5, 0x1a, 0xf3,
+ 0xf2, 0x48, 0xf8, 0x2a, 0x56, 0x70, 0xd6, 0xe9, 0xf0, 0x32, 0x09, 0x2f, 0x33, 0x94, 0xc5, 0x15,
+ 0xcc, 0xb6, 0xba, 0xa6, 0x32, 0x2f, 0x2d, 0x8b, 0xe1, 0x5a, 0x7d, 0x51, 0xed, 0xe0, 0x7c, 0x83,
+ 0x14, 0x9e, 0x10, 0x83, 0xdd, 0xc2, 0xb4, 0xe3, 0xe6, 0x64, 0xb2, 0x3c, 0x5a, 0xa5, 0x37, 0x8b,
+ 0xb5, 0xdd, 0xaf, 0xff, 0x1d, 0x2b, 0xeb, 0xcd, 0xab, 0x1d, 0x9c, 0x6d, 0x90, 0x3e, 0xbf, 0x98,
+ 0xfc, 0x57, 0xb4, 0xbc, 0x82, 0xd9, 0x93, 0xc9, 0x35, 0x99, 0xda, 0x87, 0xc3, 0xc6, 0x73, 0x9a,
+ 0xf5, 0x45, 0xff, 0x0a, 0x7d, 0xb5, 0x23, 0x63, 0x43, 0xdc, 0x96, 0xd5, 0x2d, 0xcc, 0x07, 0x31,
+ 0xaf, 0xe1, 0x7c, 0xb0, 0x74, 0xeb, 0xfb, 0x77, 0x43, 0x7d, 0x87, 0x69, 0x2f, 0xd1, 0x7b, 0x00,
+ 0xe6, 0xad, 0xa6, 0xa2, 0xf9, 0xd9, 0x24, 0xeb, 0x28, 0xfe, 0xd2, 0x4f, 0xda, 0x9b, 0xb0, 0xc6,
+ 0x97, 0x6e, 0x22, 0x0d, 0x65, 0x75, 0x0d, 0xf3, 0x0d, 0xd2, 0xbd, 0x26, 0x1d, 0xbd, 0x17, 0x70,
+ 0xea, 0x31, 0xbc, 0x1e, 0x1f, 0xa8, 0x65, 0xf5, 0x01, 0xd2, 0xee, 0xa8, 0x80, 0xb1, 0x47, 0x39,
+ 0xe2, 0x31, 0xae, 0xd5, 0x5b, 0x36, 0xbc, 0x7b, 0x7e, 0xae, 0xe3, 0x07, 0x71, 0x09, 0x69, 0x07,
+ 0xfd, 0x07, 0xe6, 0x31, 0x6e, 0xdb, 0xc0, 0xfe, 0x84, 0xff, 0x50, 0x9f, 0xfe, 0x04, 0x00, 0x00,
+ 0xff, 0xff, 0xb6, 0x31, 0xad, 0x8a, 0x5d, 0x03, 0x00, 0x00,
}
diff --git a/pb/shardrpc.pb.go b/pb/shardrpc.pb.go
index c374a6f9..8502a2fe 100644
--- a/pb/shardrpc.pb.go
+++ b/pb/shardrpc.pb.go
@@ -3,14 +3,13 @@
package pb
-import proto "github.com/golang/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import empty "github.com/golang/protobuf/ptypes/empty"
-
import (
- context "golang.org/x/net/context"
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ empty "github.com/golang/protobuf/ptypes/empty"
grpc "google.golang.org/grpc"
+ math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
@@ -36,16 +35,17 @@ func (m *GetStateKeyRequest) Reset() { *m = GetStateKeyRequest{} }
func (m *GetStateKeyRequest) String() string { return proto.CompactTextString(m) }
func (*GetStateKeyRequest) ProtoMessage() {}
func (*GetStateKeyRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{0}
+ return fileDescriptor_0aefcd34784e5c0e, []int{0}
}
+
func (m *GetStateKeyRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetStateKeyRequest.Unmarshal(m, b)
}
func (m *GetStateKeyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetStateKeyRequest.Marshal(b, m, deterministic)
}
-func (dst *GetStateKeyRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetStateKeyRequest.Merge(dst, src)
+func (m *GetStateKeyRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetStateKeyRequest.Merge(m, src)
}
func (m *GetStateKeyRequest) XXX_Size() int {
return xxx_messageInfo_GetStateKeyRequest.Size(m)
@@ -81,16 +81,17 @@ func (m *GetStateKeyResponse) Reset() { *m = GetStateKeyResponse{} }
func (m *GetStateKeyResponse) String() string { return proto.CompactTextString(m) }
func (*GetStateKeyResponse) ProtoMessage() {}
func (*GetStateKeyResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{1}
+ return fileDescriptor_0aefcd34784e5c0e, []int{1}
}
+
func (m *GetStateKeyResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetStateKeyResponse.Unmarshal(m, b)
}
func (m *GetStateKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetStateKeyResponse.Marshal(b, m, deterministic)
}
-func (dst *GetStateKeyResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GetStateKeyResponse.Merge(dst, src)
+func (m *GetStateKeyResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetStateKeyResponse.Merge(m, src)
}
func (m *GetStateKeyResponse) XXX_Size() int {
return xxx_messageInfo_GetStateKeyResponse.Size(m)
@@ -119,16 +120,17 @@ func (m *BlockHashResponse) Reset() { *m = BlockHashResponse{} }
func (m *BlockHashResponse) String() string { return proto.CompactTextString(m) }
func (*BlockHashResponse) ProtoMessage() {}
func (*BlockHashResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{2}
+ return fileDescriptor_0aefcd34784e5c0e, []int{2}
}
+
func (m *BlockHashResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlockHashResponse.Unmarshal(m, b)
}
func (m *BlockHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BlockHashResponse.Marshal(b, m, deterministic)
}
-func (dst *BlockHashResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BlockHashResponse.Merge(dst, src)
+func (m *BlockHashResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockHashResponse.Merge(m, src)
}
func (m *BlockHashResponse) XXX_Size() int {
return xxx_messageInfo_BlockHashResponse.Size(m)
@@ -158,16 +160,17 @@ func (m *SlotRequest) Reset() { *m = SlotRequest{} }
func (m *SlotRequest) String() string { return proto.CompactTextString(m) }
func (*SlotRequest) ProtoMessage() {}
func (*SlotRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{3}
+ return fileDescriptor_0aefcd34784e5c0e, []int{3}
}
+
func (m *SlotRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SlotRequest.Unmarshal(m, b)
}
func (m *SlotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SlotRequest.Marshal(b, m, deterministic)
}
-func (dst *SlotRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SlotRequest.Merge(dst, src)
+func (m *SlotRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SlotRequest.Merge(m, src)
}
func (m *SlotRequest) XXX_Size() int {
return xxx_messageInfo_SlotRequest.Size(m)
@@ -205,16 +208,17 @@ func (m *BlockGenerationRequest) Reset() { *m = BlockGenerationRequest{}
func (m *BlockGenerationRequest) String() string { return proto.CompactTextString(m) }
func (*BlockGenerationRequest) ProtoMessage() {}
func (*BlockGenerationRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{4}
+ return fileDescriptor_0aefcd34784e5c0e, []int{4}
}
+
func (m *BlockGenerationRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlockGenerationRequest.Unmarshal(m, b)
}
func (m *BlockGenerationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BlockGenerationRequest.Marshal(b, m, deterministic)
}
-func (dst *BlockGenerationRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BlockGenerationRequest.Merge(dst, src)
+func (m *BlockGenerationRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockGenerationRequest.Merge(m, src)
}
func (m *BlockGenerationRequest) XXX_Size() int {
return xxx_messageInfo_BlockGenerationRequest.Size(m)
@@ -258,16 +262,17 @@ func (m *ShardBlockSubmission) Reset() { *m = ShardBlockSubmission{} }
func (m *ShardBlockSubmission) String() string { return proto.CompactTextString(m) }
func (*ShardBlockSubmission) ProtoMessage() {}
func (*ShardBlockSubmission) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{5}
+ return fileDescriptor_0aefcd34784e5c0e, []int{5}
}
+
func (m *ShardBlockSubmission) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardBlockSubmission.Unmarshal(m, b)
}
func (m *ShardBlockSubmission) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardBlockSubmission.Marshal(b, m, deterministic)
}
-func (dst *ShardBlockSubmission) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardBlockSubmission.Merge(dst, src)
+func (m *ShardBlockSubmission) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardBlockSubmission.Merge(m, src)
}
func (m *ShardBlockSubmission) XXX_Size() int {
return xxx_messageInfo_ShardBlockSubmission.Size(m)
@@ -306,16 +311,17 @@ func (m *ShardSubscribeRequest) Reset() { *m = ShardSubscribeRequest{} }
func (m *ShardSubscribeRequest) String() string { return proto.CompactTextString(m) }
func (*ShardSubscribeRequest) ProtoMessage() {}
func (*ShardSubscribeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{6}
+ return fileDescriptor_0aefcd34784e5c0e, []int{6}
}
+
func (m *ShardSubscribeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardSubscribeRequest.Unmarshal(m, b)
}
func (m *ShardSubscribeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardSubscribeRequest.Marshal(b, m, deterministic)
}
-func (dst *ShardSubscribeRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardSubscribeRequest.Merge(dst, src)
+func (m *ShardSubscribeRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardSubscribeRequest.Merge(m, src)
}
func (m *ShardSubscribeRequest) XXX_Size() int {
return xxx_messageInfo_ShardSubscribeRequest.Size(m)
@@ -365,16 +371,17 @@ func (m *ShardUnsubscribeRequest) Reset() { *m = ShardUnsubscribeRequest
func (m *ShardUnsubscribeRequest) String() string { return proto.CompactTextString(m) }
func (*ShardUnsubscribeRequest) ProtoMessage() {}
func (*ShardUnsubscribeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{7}
+ return fileDescriptor_0aefcd34784e5c0e, []int{7}
}
+
func (m *ShardUnsubscribeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardUnsubscribeRequest.Unmarshal(m, b)
}
func (m *ShardUnsubscribeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardUnsubscribeRequest.Marshal(b, m, deterministic)
}
-func (dst *ShardUnsubscribeRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardUnsubscribeRequest.Merge(dst, src)
+func (m *ShardUnsubscribeRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardUnsubscribeRequest.Merge(m, src)
}
func (m *ShardUnsubscribeRequest) XXX_Size() int {
return xxx_messageInfo_ShardUnsubscribeRequest.Size(m)
@@ -404,16 +411,17 @@ func (m *ShardTransactionSubmission) Reset() { *m = ShardTransactionSubm
func (m *ShardTransactionSubmission) String() string { return proto.CompactTextString(m) }
func (*ShardTransactionSubmission) ProtoMessage() {}
func (*ShardTransactionSubmission) Descriptor() ([]byte, []int) {
- return fileDescriptor_shardrpc_76de8ea78acbb041, []int{8}
+ return fileDescriptor_0aefcd34784e5c0e, []int{8}
}
+
func (m *ShardTransactionSubmission) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardTransactionSubmission.Unmarshal(m, b)
}
func (m *ShardTransactionSubmission) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ShardTransactionSubmission.Marshal(b, m, deterministic)
}
-func (dst *ShardTransactionSubmission) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ShardTransactionSubmission.Merge(dst, src)
+func (m *ShardTransactionSubmission) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ShardTransactionSubmission.Merge(m, src)
}
func (m *ShardTransactionSubmission) XXX_Size() int {
return xxx_messageInfo_ShardTransactionSubmission.Size(m)
@@ -450,6 +458,45 @@ func init() {
proto.RegisterType((*ShardTransactionSubmission)(nil), "pb.ShardTransactionSubmission")
}
+func init() { proto.RegisterFile("shardrpc.proto", fileDescriptor_0aefcd34784e5c0e) }
+
+var fileDescriptor_0aefcd34784e5c0e = []byte{
+ // 520 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xd3, 0x4c,
+ 0x10, 0x95, 0xf3, 0xf3, 0x7d, 0x30, 0x2e, 0xa5, 0xdd, 0x26, 0x69, 0x30, 0x08, 0x55, 0x56, 0x2f,
+ 0x2a, 0x21, 0xb9, 0x90, 0x4a, 0x70, 0x83, 0xf8, 0x69, 0x28, 0x05, 0xe5, 0x06, 0xd9, 0x29, 0xf7,
+ 0x6b, 0x77, 0x68, 0xad, 0xda, 0xbb, 0xc6, 0xbb, 0xbe, 0x08, 0xaf, 0xc1, 0x1b, 0xf0, 0xa4, 0xc8,
+ 0xb3, 0x89, 0x7f, 0x92, 0x56, 0x2a, 0x77, 0xbb, 0x33, 0x67, 0xcf, 0x9c, 0x39, 0x3b, 0xbb, 0xb0,
+ 0xad, 0xae, 0x79, 0x7e, 0x99, 0x67, 0x91, 0x97, 0xe5, 0x52, 0x4b, 0xd6, 0xc9, 0x42, 0xe7, 0xe9,
+ 0x95, 0x94, 0x57, 0x09, 0x1e, 0x53, 0x24, 0x2c, 0x7e, 0x1c, 0x63, 0x9a, 0xe9, 0x85, 0x01, 0x38,
+ 0x5b, 0x91, 0x4c, 0x53, 0x29, 0xcc, 0xce, 0xfd, 0x00, 0xec, 0x1c, 0x75, 0xa0, 0xb9, 0xc6, 0x19,
+ 0x2e, 0x7c, 0xfc, 0x59, 0xa0, 0xd2, 0x6c, 0x07, 0xba, 0x33, 0x5c, 0x8c, 0xad, 0x03, 0xeb, 0x68,
+ 0xcb, 0x2f, 0x97, 0x6c, 0x0c, 0xff, 0x07, 0x65, 0xa1, 0xaf, 0x9f, 0xc6, 0x9d, 0x03, 0xeb, 0xa8,
+ 0xe7, 0xaf, 0xb6, 0xee, 0x0b, 0xd8, 0x6b, 0x31, 0xa8, 0x4c, 0x0a, 0x85, 0x6c, 0x00, 0xfd, 0xef,
+ 0x3c, 0x29, 0x70, 0x49, 0x62, 0x36, 0xee, 0x2b, 0xd8, 0x3d, 0x4d, 0x64, 0x74, 0xf3, 0x85, 0xab,
+ 0xeb, 0x0a, 0xfa, 0x0c, 0x1e, 0x56, 0xc1, 0x25, 0xbc, 0x0e, 0xb8, 0x6f, 0xc0, 0x0e, 0x12, 0xa9,
+ 0x57, 0xd2, 0x06, 0xd0, 0xa7, 0xca, 0x04, 0xec, 0xf9, 0x66, 0xc3, 0x18, 0xf4, 0x4a, 0xd0, 0x52,
+ 0x1b, 0xad, 0x5d, 0x0d, 0x23, 0x62, 0x39, 0x47, 0x81, 0x39, 0xd7, 0xb1, 0x14, 0xff, 0xcc, 0xc1,
+ 0x5e, 0xc2, 0xde, 0xe7, 0x58, 0xf0, 0x24, 0xfe, 0x85, 0x97, 0xa7, 0xc8, 0x23, 0x29, 0x48, 0x64,
+ 0x97, 0x44, 0xde, 0x96, 0x72, 0x7d, 0x18, 0x10, 0x1d, 0x95, 0x0e, 0x8a, 0x30, 0x8d, 0x95, 0x8a,
+ 0xa5, 0x60, 0x87, 0xd0, 0xa7, 0x10, 0xd5, 0xb4, 0x27, 0xdb, 0x5e, 0x16, 0x7a, 0x35, 0xd0, 0x37,
+ 0xc9, 0x5a, 0x59, 0xa7, 0xa1, 0xcc, 0xfd, 0x6d, 0xc1, 0x90, 0x56, 0x41, 0x11, 0xaa, 0x28, 0x8f,
+ 0x43, 0x5c, 0x75, 0xd2, 0xb8, 0x16, 0xab, 0x75, 0x2d, 0xec, 0x10, 0x1e, 0x4d, 0x73, 0xa9, 0x54,
+ 0x12, 0x8b, 0x9b, 0x46, 0x5b, 0xed, 0x60, 0xdb, 0xfa, 0xee, 0x9a, 0xf5, 0x65, 0xf6, 0x42, 0xe8,
+ 0x38, 0xa1, 0xf3, 0x3d, 0x3a, 0x5f, 0x07, 0xdc, 0x13, 0xd8, 0xa7, 0x62, 0x17, 0x42, 0xdd, 0x5b,
+ 0x96, 0x2b, 0xc0, 0xa1, 0xe5, 0x3c, 0xe7, 0x42, 0xf1, 0xa8, 0xbc, 0x95, 0x86, 0x49, 0x77, 0xb7,
+ 0xf3, 0x1a, 0xec, 0xc6, 0x11, 0x6a, 0xc6, 0x9e, 0x0c, 0x2a, 0x13, 0x1b, 0x39, 0xbf, 0x09, 0x9c,
+ 0xfc, 0xe9, 0xc2, 0x03, 0x42, 0xf8, 0xdf, 0xa6, 0xec, 0x0c, 0x76, 0x2a, 0x07, 0xe7, 0xd2, 0xdc,
+ 0xfa, 0x93, 0x8a, 0x63, 0xdd, 0x5c, 0x67, 0xe4, 0x99, 0x77, 0xe4, 0xad, 0xde, 0x91, 0x77, 0x56,
+ 0xbe, 0x23, 0xf6, 0x96, 0xde, 0x4c, 0x65, 0xd3, 0x47, 0x4d, 0x56, 0x3e, 0x26, 0xa2, 0x7a, 0x52,
+ 0x9d, 0x61, 0x19, 0xd8, 0x9c, 0xf6, 0x29, 0x0c, 0x97, 0x13, 0x89, 0x94, 0x9c, 0x63, 0x9a, 0x25,
+ 0x5c, 0x23, 0x73, 0x2a, 0xfc, 0xc6, 0xc4, 0x3a, 0x6b, 0xe3, 0xc2, 0xde, 0x83, 0x4d, 0xb6, 0x19,
+ 0x15, 0x6c, 0xdc, 0x4e, 0xd7, 0x8e, 0xde, 0xd9, 0xc3, 0x0c, 0x76, 0x0d, 0x41, 0xc3, 0x2c, 0xf6,
+ 0xfc, 0x36, 0x3f, 0xef, 0x41, 0xf6, 0x0e, 0xec, 0xc6, 0x17, 0xc0, 0x46, 0x25, 0xcd, 0xe6, 0xaf,
+ 0xe2, 0xec, 0x6f, 0xc4, 0x8d, 0x25, 0xe1, 0x7f, 0xc4, 0x77, 0xf2, 0x37, 0x00, 0x00, 0xff, 0xff,
+ 0x47, 0x57, 0xac, 0x7d, 0xcc, 0x04, 0x00, 0x00,
+}
+
// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn
@@ -686,42 +733,3 @@ var _ShardRPC_serviceDesc = grpc.ServiceDesc{
Streams: []grpc.StreamDesc{},
Metadata: "shardrpc.proto",
}
-
-func init() { proto.RegisterFile("shardrpc.proto", fileDescriptor_shardrpc_76de8ea78acbb041) }
-
-var fileDescriptor_shardrpc_76de8ea78acbb041 = []byte{
- // 520 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xd3, 0x4c,
- 0x10, 0x95, 0xf3, 0xf3, 0x7d, 0x30, 0x2e, 0xa5, 0xdd, 0x26, 0x69, 0x30, 0x08, 0x55, 0x56, 0x2f,
- 0x2a, 0x21, 0xb9, 0x90, 0x4a, 0x70, 0x83, 0xf8, 0x69, 0x28, 0x05, 0xe5, 0x06, 0xd9, 0x29, 0xf7,
- 0x6b, 0x77, 0x68, 0xad, 0xda, 0xbb, 0xc6, 0xbb, 0xbe, 0x08, 0xaf, 0xc1, 0x1b, 0xf0, 0xa4, 0xc8,
- 0xb3, 0x89, 0x7f, 0x92, 0x56, 0x2a, 0x77, 0xbb, 0x33, 0x67, 0xcf, 0x9c, 0x39, 0x3b, 0xbb, 0xb0,
- 0xad, 0xae, 0x79, 0x7e, 0x99, 0x67, 0x91, 0x97, 0xe5, 0x52, 0x4b, 0xd6, 0xc9, 0x42, 0xe7, 0xe9,
- 0x95, 0x94, 0x57, 0x09, 0x1e, 0x53, 0x24, 0x2c, 0x7e, 0x1c, 0x63, 0x9a, 0xe9, 0x85, 0x01, 0x38,
- 0x5b, 0x91, 0x4c, 0x53, 0x29, 0xcc, 0xce, 0xfd, 0x00, 0xec, 0x1c, 0x75, 0xa0, 0xb9, 0xc6, 0x19,
- 0x2e, 0x7c, 0xfc, 0x59, 0xa0, 0xd2, 0x6c, 0x07, 0xba, 0x33, 0x5c, 0x8c, 0xad, 0x03, 0xeb, 0x68,
- 0xcb, 0x2f, 0x97, 0x6c, 0x0c, 0xff, 0x07, 0x65, 0xa1, 0xaf, 0x9f, 0xc6, 0x9d, 0x03, 0xeb, 0xa8,
- 0xe7, 0xaf, 0xb6, 0xee, 0x0b, 0xd8, 0x6b, 0x31, 0xa8, 0x4c, 0x0a, 0x85, 0x6c, 0x00, 0xfd, 0xef,
- 0x3c, 0x29, 0x70, 0x49, 0x62, 0x36, 0xee, 0x2b, 0xd8, 0x3d, 0x4d, 0x64, 0x74, 0xf3, 0x85, 0xab,
- 0xeb, 0x0a, 0xfa, 0x0c, 0x1e, 0x56, 0xc1, 0x25, 0xbc, 0x0e, 0xb8, 0x6f, 0xc0, 0x0e, 0x12, 0xa9,
- 0x57, 0xd2, 0x06, 0xd0, 0xa7, 0xca, 0x04, 0xec, 0xf9, 0x66, 0xc3, 0x18, 0xf4, 0x4a, 0xd0, 0x52,
- 0x1b, 0xad, 0x5d, 0x0d, 0x23, 0x62, 0x39, 0x47, 0x81, 0x39, 0xd7, 0xb1, 0x14, 0xff, 0xcc, 0xc1,
- 0x5e, 0xc2, 0xde, 0xe7, 0x58, 0xf0, 0x24, 0xfe, 0x85, 0x97, 0xa7, 0xc8, 0x23, 0x29, 0x48, 0x64,
- 0x97, 0x44, 0xde, 0x96, 0x72, 0x7d, 0x18, 0x10, 0x1d, 0x95, 0x0e, 0x8a, 0x30, 0x8d, 0x95, 0x8a,
- 0xa5, 0x60, 0x87, 0xd0, 0xa7, 0x10, 0xd5, 0xb4, 0x27, 0xdb, 0x5e, 0x16, 0x7a, 0x35, 0xd0, 0x37,
- 0xc9, 0x5a, 0x59, 0xa7, 0xa1, 0xcc, 0xfd, 0x6d, 0xc1, 0x90, 0x56, 0x41, 0x11, 0xaa, 0x28, 0x8f,
- 0x43, 0x5c, 0x75, 0xd2, 0xb8, 0x16, 0xab, 0x75, 0x2d, 0xec, 0x10, 0x1e, 0x4d, 0x73, 0xa9, 0x54,
- 0x12, 0x8b, 0x9b, 0x46, 0x5b, 0xed, 0x60, 0xdb, 0xfa, 0xee, 0x9a, 0xf5, 0x65, 0xf6, 0x42, 0xe8,
- 0x38, 0xa1, 0xf3, 0x3d, 0x3a, 0x5f, 0x07, 0xdc, 0x13, 0xd8, 0xa7, 0x62, 0x17, 0x42, 0xdd, 0x5b,
- 0x96, 0x2b, 0xc0, 0xa1, 0xe5, 0x3c, 0xe7, 0x42, 0xf1, 0xa8, 0xbc, 0x95, 0x86, 0x49, 0x77, 0xb7,
- 0xf3, 0x1a, 0xec, 0xc6, 0x11, 0x6a, 0xc6, 0x9e, 0x0c, 0x2a, 0x13, 0x1b, 0x39, 0xbf, 0x09, 0x9c,
- 0xfc, 0xe9, 0xc2, 0x03, 0x42, 0xf8, 0xdf, 0xa6, 0xec, 0x0c, 0x76, 0x2a, 0x07, 0xe7, 0xd2, 0xdc,
- 0xfa, 0x93, 0x8a, 0x63, 0xdd, 0x5c, 0x67, 0xe4, 0x99, 0x77, 0xe4, 0xad, 0xde, 0x91, 0x77, 0x56,
- 0xbe, 0x23, 0xf6, 0x96, 0xde, 0x4c, 0x65, 0xd3, 0x47, 0x4d, 0x56, 0x3e, 0x26, 0xa2, 0x7a, 0x52,
- 0x9d, 0x61, 0x19, 0xd8, 0x9c, 0xf6, 0x29, 0x0c, 0x97, 0x13, 0x89, 0x94, 0x9c, 0x63, 0x9a, 0x25,
- 0x5c, 0x23, 0x73, 0x2a, 0xfc, 0xc6, 0xc4, 0x3a, 0x6b, 0xe3, 0xc2, 0xde, 0x83, 0x4d, 0xb6, 0x19,
- 0x15, 0x6c, 0xdc, 0x4e, 0xd7, 0x8e, 0xde, 0xd9, 0xc3, 0x0c, 0x76, 0x0d, 0x41, 0xc3, 0x2c, 0xf6,
- 0xfc, 0x36, 0x3f, 0xef, 0x41, 0xf6, 0x0e, 0xec, 0xc6, 0x17, 0xc0, 0x46, 0x25, 0xcd, 0xe6, 0xaf,
- 0xe2, 0xec, 0x6f, 0xc4, 0x8d, 0x25, 0xe1, 0x7f, 0xc4, 0x77, 0xf2, 0x37, 0x00, 0x00, 0xff, 0xff,
- 0x47, 0x57, 0xac, 0x7d, 0xcc, 0x04, 0x00, 0x00,
-}
diff --git a/primitives/state.go b/primitives/state.go
index c5b432fe..0632cee6 100644
--- a/primitives/state.go
+++ b/primitives/state.go
@@ -3,6 +3,7 @@ package primitives
import (
"bytes"
"fmt"
+
"github.com/prysmaticlabs/go-ssz"
"github.com/pkg/errors"
@@ -1150,6 +1151,8 @@ type BlockView interface {
func (s *State) ProcessSlots(upTo uint64, view BlockView, c *config.Config) ([]Receipt, error) {
var receipts []Receipt
+ //initialSlot := s.Slot
+
for s.Slot < upTo {
// this only happens when there wasn't a block at the first slot of the epoch
if s.Slot/c.EpochLength > s.EpochIndex && s.Slot%c.EpochLength == 0 {
@@ -1158,6 +1161,7 @@ func (s *State) ProcessSlots(upTo uint64, view BlockView, c *config.Config) ([]R
return nil, err
}
+ //fmt.Printf("ProcessSlots..., ProcessEpochTransition lenOfEpochReceipts=%d s.Slot=%d c.EpochLength=%d\n", len(epochReceipts), s.Slot, c.EpochLength)
receipts = append(receipts, epochReceipts...)
}
@@ -1174,5 +1178,34 @@ func (s *State) ProcessSlots(upTo uint64, view BlockView, c *config.Config) ([]R
view.SetTipSlot(s.Slot)
}
+ /* stats code for test the memory usage, will remove it after we fix the memory usage.
+ statsMap := map[uint32]uint32{}
+ for _, r := range receipts {
+ index := r.Index
+ _, found := statsMap[index]
+ if found {
+ statsMap[index]++
+ } else {
+ statsMap[index] = 1
+ }
+ }
+ validatorCount := uint32(0)
+ maxDuplicatedCount := uint32(0)
+ minDuplicatedCount := uint32(99999999)
+ for _, v := range statsMap {
+ validatorCount++
+ if v > maxDuplicatedCount {
+ maxDuplicatedCount = v
+ }
+ if v < minDuplicatedCount {
+ minDuplicatedCount = v
+ }
+ }
+
+ //fmt.Printf("ProcessSlots s.Slot=%d upTo=%d lenOfReceipts=%d validatorCount=%d maxDuplicatedCount=%d minDuplicatedCount=%d, below is the stack trace\n",
+ // initialSlot, upTo, len(receipts), validatorCount, maxDuplicatedCount, minDuplicatedCount)
+ //debug.PrintStack()
+ */
+
return receipts, nil
}
diff --git a/shard/chain/manager.go b/shard/chain/manager.go
index 12e35a82..b87a3f29 100644
--- a/shard/chain/manager.go
+++ b/shard/chain/manager.go
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
+
"github.com/phoreproject/synapse/beacon/config"
"github.com/phoreproject/synapse/bls"
"github.com/phoreproject/synapse/chainhash"
diff --git a/shard/chain/mux.go b/shard/chain/mux.go
index 06f3cd50..156f09f7 100644
--- a/shard/chain/mux.go
+++ b/shard/chain/mux.go
@@ -2,8 +2,9 @@ package chain
import (
"fmt"
- "github.com/phoreproject/synapse/pb"
"sync"
+
+ "github.com/phoreproject/synapse/pb"
)
// ShardMux handles the various different blockchains associated with different shards.
@@ -55,3 +56,17 @@ func (sm *ShardMux) GetManager(shardID uint64) (*ShardManager, error) {
}
return manager, nil
}
+
+// GetShardIDList gets the shards ID list. It's useful to enumerate all shards
+func (sm *ShardMux) GetShardIDList() []uint64 {
+ shardIDList := []uint64{}
+
+ sm.lock.RLock()
+ defer sm.lock.RUnlock()
+
+ for k := range sm.managers {
+ shardIDList = append(shardIDList, k)
+ }
+
+ return shardIDList
+}
diff --git a/shard/module/app.go b/shard/module/app.go
index b8c55f1c..076757cc 100644
--- a/shard/module/app.go
+++ b/shard/module/app.go
@@ -2,6 +2,7 @@ package module
import (
"fmt"
+
"github.com/multiformats/go-multiaddr"
manet "github.com/multiformats/go-multiaddr-net"
"github.com/phoreproject/synapse/pb"
@@ -19,6 +20,7 @@ const shardExecutionVersion = "0.0.1"
type ShardApp struct {
Config config.ShardConfig
RPC rpc.ShardRPCServer
+ Mux *chain.ShardMux
}
// NewShardApp creates a new shard app given a config.
@@ -60,11 +62,11 @@ func (s *ShardApp) Run() error {
client := pb.NewBlockchainRPCClient(s.Config.BeaconConn)
- mux := chain.NewShardMux(client)
+ s.Mux = chain.NewShardMux(client)
logger.Infof("starting RPC server on %s with protocol %s", s.Config.RPCAddress, s.Config.RPCProtocol)
- err := rpc.Serve(s.Config.RPCProtocol, s.Config.RPCAddress, mux)
+ err := rpc.Serve(s.Config.RPCProtocol, s.Config.RPCAddress, s.Mux)
return err
}
diff --git a/shard/rpc/server.go b/shard/rpc/server.go
index 275a322d..0ca50e92 100644
--- a/shard/rpc/server.go
+++ b/shard/rpc/server.go
@@ -2,6 +2,8 @@ package rpc
import (
"context"
+ "net"
+
"github.com/golang/protobuf/ptypes/empty"
"github.com/phoreproject/synapse/chainhash"
"github.com/phoreproject/synapse/pb"
@@ -10,7 +12,6 @@ import (
"github.com/prysmaticlabs/go-ssz"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
- "net"
)
// ShardRPCServer handles incoming commands for the shard module.
diff --git a/testnet.json b/testnet.json
new file mode 100644
index 00000000..a720b810
--- /dev/null
+++ b/testnet.json
@@ -0,0 +1,2058 @@
+{
+ "GenesisTime": 1568429537,
+ "BootstrapPeers": [],
+ "NetworkID": "testnet",
+ "InitialValidators": {
+ "NumValidators": 256,
+ "Validators": [
+ {
+ "PubKey": "a7b6ad3e09a5cfe60ad2977f4d3eb9603aac6fe6b05bd0a4c0776ff3e6ca359e5ae07720c40f4ec3b4dbecccc85300240414ac988986d74aa7c30efd30091b1fc6d8f993086bbcac7d817c2c929dc7c992f346993d13147de601de7c8c5669da",
+ "ProofOfPossession": "8410c81d7ea1efff99b53a6e72d336e599febdfad7f01f726c2fe39e722daa2fd71d5001b2215b1959054f8d52723986",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 0
+ },
+ {
+ "PubKey": "a19d4d7d491805d7245ff209602f4b140e9839145bdbca4efbfd26b16cc71d86cfd66c1f12b05c7ead070e2d8854009919092aa6acc8f3abae0cc345b95dd553b31781fa90e7f338f0ea225663c40842c10c924e35a236ed2b4c44622e4e3661",
+ "ProofOfPossession": "ac80ead7f7f7c9686db41f964ce3825242fcff3d69af72309ec942816cd073ebfd7a805fdddcbef8214437ed8beada35",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 1
+ },
+ {
+ "PubKey": "97138479ee7e3d44261a40582e8b6d6592d6367b1e3f81316fc75c928e327bbccd3aa7053282a90d99482381569ebf880b6f3654eddf040f2d7f7da39fa6a18228b2cba25f35b8d3b33c01e27f3eb8e5cbbfe10d5ad8d732a5978a041c06f463",
+ "ProofOfPossession": "a596c216cf0667901b738d3478420824edc188e7a0848bffb41061a77984095746b8b53e3d01e0a8f08bf67a871f9cd8",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 2
+ },
+ {
+ "PubKey": "8e9d262b84737956cdeea295fd63c7399861db2a8f2c88c25c4c2c34349477503123ebd74972877174800486f719b47b0f2250dc67bc0729661f6fdfcd987db342f39cefd9773a6d61812d8766de4ae149b9fad121e9d9c3aab2e561b606c2c1",
+ "ProofOfPossession": "962a047dc6a4b92e0c6d2be849ce2361b4dc3a2b767df729e88d0c50cbbf9e833146774710e0b1729cf0183a300bda80",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 3
+ },
+ {
+ "PubKey": "ad351d25cc116c7ab6090fe361aea56aaed059d73520b9f2dcc3e375a0f9e7a06c07819846c12fe83e596ab3d1eb248b11d994ed3976a8066491c5c5b63315fc5fee1ace83bec530dd8680d6eedb615cbd98905888eb8d87bb76f8fdc04ea0fe",
+ "ProofOfPossession": "b55227328bcce6f841c50a2940a441eab8a88fe67073b6c8a5db80382e38bbcd05694284b0178cfc30765e33e41af564",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 4
+ },
+ {
+ "PubKey": "88ce4de264f804ff5192580f7370711cf47602ce22ef305ac3b61b90c331e8a85000e38eed8dc0ff887ce3c813a1fac4126aa346970412fa27dae778bfcb619aff35974a63820e974d1c4d47437f7694c68e62b9cf1a87a26fe57bccaa6f29a6",
+ "ProofOfPossession": "ac4448d7472983e95388324546b8e63d101eb34525d071c5c0378d7c9fb0a42fcbaf2ca49adb2bac961279757f5ef905",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 5
+ },
+ {
+ "PubKey": "b970b4cf4397e34fa6d7c155863d660d34b08837234cfdd7fe74024a60e2ae0932e9e9879e5d0915ff20b5d5dd7d3221179996cd90fbc2298a3207a199ed1f395f42c5d63e8b9eb17e205f0a1f9ed49d67fd309277b142ba82073afd310417f4",
+ "ProofOfPossession": "a5f5318aba5b54fffaa2695e6b165b3914d4ed9af719906a975f14015a8f19ae6e15ec7dfcb20b4d4dbf63d385d4ad09",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 6
+ },
+ {
+ "PubKey": "a2b68910c7789d14486406e88fc245a15f7a14fedeafb671084b5d16b85778b733303f9fb1ce8fe739a8f7c30c21ae300aa0cd6ab3d2bb1c8c7569f3743a194df736a064ee35a5e32c88b5052579146a759b82e21a5f520d28e138b252cef7ba",
+ "ProofOfPossession": "ad7518d329b6b75b548ebd59fe9dcb6b3b34f5501ac415998c41ccd64957122c1477844d69b4daabdfd5574cbfb6f16f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 7
+ },
+ {
+ "PubKey": "a7da3628c9abfc51ab8c04282ce4287268f92c480f774e77074acc2cc78ed2e34ccf22aa7828789c1f6a7b83f0653c51081b2cc8a02e17089c5bf76391c80af2228d01b3530de84f942405a77e73a36a1ce7c3ab471bea0b3bbffe4302f780b3",
+ "ProofOfPossession": "a5f83c7dee1f8656588d78c77d047b4581aa61a32843d491e3bba44ccc15b729394e19e29d3057d24cfbdd8b42b0e531",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 8
+ },
+ {
+ "PubKey": "82e226fd4841c2d9314a93ecb0531e670365c62c1cd14861f2454a529e430e347effe97537343cd4fc20cc82bcd6620719c7e8e60c829bfbf507f2f4e39dcf7d4c0ab4faea167404e8c3837a6c820653928216f0a08e5daf7269ca9242aba4fe",
+ "ProofOfPossession": "b53b848e3122833a1c66862be97ee352809950f724786a74286a919ca7e35121c03dad14184a75359a5ea1b281042c9e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 9
+ },
+ {
+ "PubKey": "a40aab69baa7e61674bb9a48aeeaf2dace7cfd63a7593cb2bc716a4c811543b220cd3374ada6924baa0d480f02563c490b764693e470104731f9659c241fdc6eed10ee8b0d685693b61940bc7885736e6ae00e6130ecee2135fb2a86b9b66d03",
+ "ProofOfPossession": "a1534d2e8c52ec0154608e05fda6e4e14ae8be1999850a0718c1723b6066ba3b15e29f1032f62f333a42b3237cdf4bf6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 10
+ },
+ {
+ "PubKey": "83cd2908749d84ba48ff5ac7f23036de35a33d8e591b93e8ace6fc03906dc18fd2d141a19f40e65fe2b7a472541e3aae092d1ee7e342b48c40c7ab5f576d4a33b0540b6dbe252d3445c2bb09d323b4d4c6b4cd59184ecc22890d3ac24f2f647e",
+ "ProofOfPossession": "93f6d70dfdb55e461a9881ad5fa4d2db72ec37416320ccba1c059d93f7cc34f0aba88b4bd77407554a17453d306f187e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 11
+ },
+ {
+ "PubKey": "a59af11554cd236effd030f154f572130e1e978c719ab403e129425961376f906820f3d1222b759ae9016032be4fccea0c6f9c45d7a4901bf1986a9a2b0e309ed00c747e38b256b7acf8568309befb9d03ff9f3832a299ab1a733f9f9ab70cd3",
+ "ProofOfPossession": "a5bfbf2417a5c6495fd5d5e9f7b45fd18898feaf6301c61bd51f63028eec242b705fc10f9b17ee1cb9e00ce2bf821286",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 12
+ },
+ {
+ "PubKey": "97ab6939e0327a3e20fd32c7c33e7d2aa1b5fb979f01e40674b986492baccc092dda05ac1656c86751925811a348b11e18e1136ad0877e0b068a58ff6674f55cf5e70e659a0fa6c5e989091db452dd6e0d4c8174e3be94d8af603469b2541e36",
+ "ProofOfPossession": "84d45d4bc1ce1fc2452bc664707369eab23cbb1399a7c01396f612404bc2eddf88a89039784d3d59cd3ac8f6c20e2fcb",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 13
+ },
+ {
+ "PubKey": "96e83c38503518865260de5b66c7546837ff48dd336b7cec73d454a0e0eff022229e36ca553fddfa4448f74307f4a2501138be9107df3a562bd3287d01bb51c56a7ca6d2a70eda01fa84ffe243fed87e5926c062d4bc85e748b76baa3db80558",
+ "ProofOfPossession": "8de6b56526ac0b1e8ec8663b8b81d6ed621e22494681f0250a18fda2574853c1665900abbde8f58b23cfd300d4bc12a3",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 14
+ },
+ {
+ "PubKey": "934c923731b2605a174a170a8db3ce33e8e111d89b281124f08d2daae230d6f2681e6db2b43185a0352c9383806121b108f6a76d2ab4c0411f2384c0f688769e4c4ecbbeb67abd9c19b98e4f1e9b998368d630f1be611c8574166ad9d6af5082",
+ "ProofOfPossession": "8769bb4c4de04f6902bb3429b2efff0ff064cc508d64ced25b0751b01833d7962ddf0dfebdb8eba718017b2557750c5f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 15
+ },
+ {
+ "PubKey": "945fdb06457eccd7c1d4e7164e4492fbed6f30df9f31646450287dce992066376fd6d4414c7327bcf4f65d997afc73141878058bb2a1ede75e2df9eb824456a948d6702aea2c514f275ad06c19ded7e1d916f02c0153a73a9631ae1cf75933c9",
+ "ProofOfPossession": "957c5f2e14373266d062b76d9efcb282f5af4a2d205f462a1db284e071b2b1aad429a178ffd0791ac1813bd3ec35f2c0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 16
+ },
+ {
+ "PubKey": "a54551b172858f81f5571149c76bfd19e4fc633df03a24098baa15fc881a2034a5990057330b9fa42955413be79964e615976a843c46ed2a29f2d3810656dcba7fab4e2b74dd62644802ebaaf651f14207d4265fb28cf1ad74d3a8d504b7c89e",
+ "ProofOfPossession": "88b0e2b9072e71d1ebf68bdb1f247b6109935704944c6529eba77c041856fa87152f27704672e39fc24e676cd51eb9d4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 17
+ },
+ {
+ "PubKey": "961b589302316d443846f57a6718f7ab6151bd81781cdfa8d7dbdc17875f45a3488ae99dd671e8c0495f94a4b2c967df114e0fd1e36a98ae34abbcc0e4f8db8f92895015f7e679bb90cbd95ad2e573074af9e92821da03d809ebecee171ff6c5",
+ "ProofOfPossession": "a607f0cc76d54a16f4436c7dd7ab5a13f17c2be94d6013e25471c6f64493bd3048dc2036b1485e82da8b009c2e275668",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 18
+ },
+ {
+ "PubKey": "a98396f8b46e5ddcb11a1c111cdc8090cb43110556d64190cb188bbc06a1123aa84838ebdb79f9583ba683b1aff752e404c32535f32c9102ac0e9681d51a17e7aa1fcd06f0e70d9c9b56cb8f37fe387800d0fce352974467b4b3429d4845cd0f",
+ "ProofOfPossession": "a1efab9edc5becf74d204057cb7be8dcf867ff2518e4ea09acb4307d9441607dc1776e8c2ad04126532312659fa5985b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 19
+ },
+ {
+ "PubKey": "90c0c41475b694a4839e4ae88f6eebb434dd36214d536a1b44b9f98e3d87b38291fe6c515fde053309be22a83235dbf4041672c8673d53fbe2027da2672021f29038377de6a3aaa95a58d53f9d9a513d3242e23ce361c3af6353e9a1e7a79498",
+ "ProofOfPossession": "a2fb9ece3e7b0471a0134f277b339a8a4ddd4ed010173c3ef14bec34c2f9b6f9c3dc4357d71722d1554733165e00de2d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 20
+ },
+ {
+ "PubKey": "96b991ce2afdc13952928eeebcd28db2207e413bbc0291392e15d9d9b7a03f2c419ed212f05dbf26f092e86938f295950fd741cfddfb7fffb7aff9e4cf94c75783b9dd7e12693bff581ff91e858c32405ee28d8eb11a2dad36a812f47e20d23d",
+ "ProofOfPossession": "b8136ae3ce9ddf34f47b110c98d4c60eeb695349616d41c65c39c76ba63e1ba109a1ca92a4f1cf10732df8fc6bbeb0d0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 21
+ },
+ {
+ "PubKey": "aaf2fbbde844a6e5562f98a41bf551572ca5783eb2d9c30da1e35e87ba7a5bffb9d67a983af6fc628d84ea709493cfb10e9bc87f39862ae18d6f8949c9c91f2fa0bd4fcd8500b733a8d9ae6a5ac9ba697d70c3b3e40ebd143eb19ec5715e37b4",
+ "ProofOfPossession": "80ce8877074530618d38be94dc129117ccf6d6507b738e76429c6d12f667fed38f9ae282014aea052c4fadc2ec20189c",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 22
+ },
+ {
+ "PubKey": "b4227eaef678101fd092d4d5efbcc180cd7965602cc5e1f66cd602e717825459ba558e295395672c64eddbbcbbf686b413a6e4a29f467dd9b72957699fcad07200e6397bbf4b8031e64a4892884c6b66170c0f2063e828f3a6b28431cf7d2908",
+ "ProofOfPossession": "abe6a0ff13255605e12026f34d2096bd6732c43f398851b5414b6060fb890a1dfd1070f086879b545f204ab2eb552c2b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 23
+ },
+ {
+ "PubKey": "9553e1eea10cbaccf4d2d19337c5be132b4efe4d48dcfa7cd5641d001283ead531473017a3c318945ea5d7eda7777aa50c32b45c321dbeed014596b2e658869c1661a5f9301a5b5e0b0cb391709b903d979c31c3121c3155a965f9d2efa15a15",
+ "ProofOfPossession": "8bd6e49c54945b77960686a597c2ad082330bf72df2a7b982733f4c48950b445a4adf585073a305835d680a48f403b98",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 24
+ },
+ {
+ "PubKey": "a0189d3c4d350d3222158dd6460b0b5cd9ce526ddefef4680fa912a37ceca0675f0d892f3e93c4140effea9b9ab699b413847597267e5b0d3910c071fa785b461d17a79b970e69af256bea819fe216f8f631b051d24e273589a6f931a0255b3c",
+ "ProofOfPossession": "b5e1eee8422c8e2e2d82d50c9dbd8cec9d1b9d98037743a5be6cf76389440674ae9ef8a289c94fc20680b6c79fa3044e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 25
+ },
+ {
+ "PubKey": "9069d05e2e152272745e457f29d72fc17889bf152978af8b02837be0e57e4376d7f5b853c30a9055fc240e34220b94d30e3439452bcc5aafd106db8ccbac43769bbcf828ba468ee46e48a1412211a0de0c1335a5725e10931f6b9e35cafae8da",
+ "ProofOfPossession": "993403f6b871803daf562b7d0ff90e4b1e6b964d8fade5842c276224c5a921f02b625d8bc87871c92bdb432e852fc154",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 26
+ },
+ {
+ "PubKey": "92f358cc073ba457bcdfbe858190e450b0da99246a00865d7a2d21bc53ddfd62182ba9a9c7760e76ca9f38decb7874600840ac5b32bda0f1ef6a0fc496ebdee2649978f4571966ea84a57d8395371823ae161e250be37d33089b2713403aacb1",
+ "ProofOfPossession": "a66aa5f4a3ef2ad27da663f26cc9a409b6bf8d4e66c9bfdd850563d5dc41ffbec40a533690645e2f48b082f7eb27be1f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 27
+ },
+ {
+ "PubKey": "8e23e82b25e7a54954f675d7c4284e1d2e2522656267318bbafe53f3f141ef84a4092435376f11813090396cc883d0210278a3f78f78a657d540cadccb1a2151eec3ceffd9971fce6e999113a5caad55328ccf8f420a46a6f5660ca7b5df9558",
+ "ProofOfPossession": "aeae1da440afa8fac8553e5dd4ac6915b4a5fc756ec0c5c95421f6515e53f5dd0fd7453de1ce3ded7b3f6df0ad55c0b7",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 28
+ },
+ {
+ "PubKey": "b6a4d9fe64a07305f531d72aa0f1662134851b7f9c9092bd58d097287e138e2b038a2a9004adc567f3bf1187f31b543c0f2d23a6c7e99c05c2c847fde3488986301cc18d8d22a2ff94708aee5e1dc598dbe7b8a9f06f6cf1b2dc9a0cd4cb4b98",
+ "ProofOfPossession": "a2dd74f4e33f869920566cfcf27c04df4c0ffe3dea7712618042524fad3b4cd6e8777922abb5838124f1a72aa77fc9ea",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 29
+ },
+ {
+ "PubKey": "a7b3a78178a1f7b140c57132942c6aff14dfb6326f4f2ca50299f87f53fc10440f72eee8183f4ad872795abf574fe4550fab44b73d38c95279f319e7fb3ecc19e2b8b7df08dda3521887036777cf0f1f3a6ac42ad2769cd7c9607322552b9f48",
+ "ProofOfPossession": "aefa78f263b0546eea78a6b9d903de76e93c1ca51183a44f387ad7975b03debbc38251f8f3471534f48e3447617bffb2",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 30
+ },
+ {
+ "PubKey": "87f5c01a0667b7260b92768479d859427f4f1a712b868b46c268eaf2b7da335ac290102578f09132491df377c77811580b49b140a66a50a36f22bdece0692d37cbefb716a93d80fe1dfcfe2e9aeedb3c14e1fa8b973646c76e37c1a2d5b1b5a8",
+ "ProofOfPossession": "ad814d4d6f4bf7bc834978f3c3187bc5781abc94b558e97ed8146f2b52b14b04361f1ddd59c39152d53abb65dcec1adb",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 31
+ },
+ {
+ "PubKey": "8ae6735f4a2fda9fa185174691119946bfff994e3eba91055497da5be9c0ecc2557d7bc9e1d66d8925e9fb408ecd100a195a98b0d9a5cb56d6717213acb8c34d6b08eda2f0757938de9b84e4c577c484c6da034c25f88c607c1d4e22850ef798",
+ "ProofOfPossession": "89468e87c429b4326258b31a4530cb301a5d00b29e2c454fd812bfe400e3972c746943e470d7466887a088ffd6736601",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 32
+ },
+ {
+ "PubKey": "b49dd5281004da10ad8b9c6e7003cd18c98bfdf3ba108a139f174e4b6fc32a080d5c36c48f117c3f37c9024cb077612600259ce24ea906f5c8056c6b5f42eaf4c82453f4d7459787eb41f4fdee184e80f760a48d4d99d0a7c739afd830ef6cda",
+ "ProofOfPossession": "b666b663e621dfc78669c14998b29f3f6fb6c8fb101561dccfc5d88416ede783f92b18b7e7d4c9e3a6f4f7034d791374",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 33
+ },
+ {
+ "PubKey": "b74b24e6f01ac4d8c274f97733cb867f5e527609487d191ecfd33c7cdd6e0a2d0118e8836bf15b7a916d6d4b78f116ee01979f5f36799575846ad02af23a50a848019c623874b7bb04d232732e1d38f550ceb7fa3d110241c361c3d66da2f6a9",
+ "ProofOfPossession": "83a2e9549e2dfd6b3ba27079b9738d34986b7c7e0700817050dd36024fa21d3d42567c76e6d9bab31ef3aeb65963536b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 34
+ },
+ {
+ "PubKey": "a72a7bbfa3ebdafc16f445ba70738d01cbc24df146d498acf0f60781fc54361d44740d6d603a9a212eea92fe802d58d3127b316b08b5bece8022541e7560197ae2ce2b0bd93a6d018bb3eabb3925885e5cfe3b709a9a6f7e636c6df7c5eac167",
+ "ProofOfPossession": "90a7e1a11903e615d45d5fa92a9f917af20f31884761b9f279a9fdfdd2d2b1dec7102541506d44051aa51659b7a9d0aa",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 35
+ },
+ {
+ "PubKey": "825dcb99f7f790450e8f82a8924230e3676c7b21fe007decdc4a72f2e7e71a312902229468ef22a699753bdf46eec7e1094ddbcdadff4ee91ebd9423a3cf05649f8b85d86a8b4c906c9235a882b5d86013a7d6d73115bc4324196d5306e2cf05",
+ "ProofOfPossession": "abd460352b8b96d3ea7614976caa745c6161dfc6a08b0eea4b9eab95e490611ba204b4e63c3b79e4961af81594418a6d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 36
+ },
+ {
+ "PubKey": "97c08a3c0a697fd297a6fdc9dca1e3cf2fc5b711424bf2db2fee6221198b897a45ad7f73f386fac50f941cd29efa95fa182a6631d1197748c063740d5ebbe66e98cf8b433ac307a07d2f52ad1fc1ee5e67e8f175c1f49fe7fa844100b8c0bde2",
+ "ProofOfPossession": "aef43b852b2745c1e3f7111a6534f07f1c731c139fe61c2192d23a4a62103e7a84af2f32a36f62e540fc20456f607a56",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 37
+ },
+ {
+ "PubKey": "85b1d34c7ea89f97a08f79361171984c111d36d40366d3917e8fef9f5dbf5f3aa4c47b9237b730be9f8d016f19c3c24f0af8353c0f01a341d826c50f3f6940a356c59367f71a7baa7e10f6ed09943b2daa7d35641f92510d0749e778ab31ae9f",
+ "ProofOfPossession": "b5f39bd68f9f9d78c9e817048384800a9dd8da5fba2bac0b8afd29b5b939e95eacba26496d2629ec6e1c3d959ae27722",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 38
+ },
+ {
+ "PubKey": "a091d0fede3bad6ec01b31404185afc79f827134261725a8b3abe8c6a694844d6d87626c87c335a642171d5ec786e48e11cdd7bbbe22edaf947fd56bf51987f71b9be4ed7880bcac1c1efb34b71caffa21de650f6c731102f3c64247b733d3ee",
+ "ProofOfPossession": "a0bd3565cf2ecc3fa58f20ada35fd34a0c8f8db9d40273c33677df81da7995e2c518f9ceebfa9a0a993097bc8644956b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 39
+ },
+ {
+ "PubKey": "919657df0962d1cc01a7b141ae9bc1c2f44dfbe1a5b8af55f7daf6f3c7de070e49457998b1623a8fb125537fd68866840092c0a24c722d01d1188909cda2328ba22956dc659b6f4a530f160725b36ebb7c31b5f0250fe25447aff2ef2182fd60",
+ "ProofOfPossession": "95d68835d4c252688f76aa48392906929fe4a586506c7fbbfe3fd9fb733bc4bb23cf620352639e62fa0bac59350cf490",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 40
+ },
+ {
+ "PubKey": "990afc960b9566a0f8c749bbbb76d21e3905244915931e7573c1293acfe4c703281726b380945232d87a20cf38d271170939394e0503b0cdb5a9f15615f39b5a89b11d599ea18f4cec4558c90bbeafb0d87614264bcb0879a6fd1b60e3915dcf",
+ "ProofOfPossession": "8eb9cf5a64871e8723f32c54f650b736cdd40bde1a5f4d1895c6e6b8d8f9339616d29a93d0c944f1c12bdaceae455229",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 41
+ },
+ {
+ "PubKey": "a1e6f61a2f6453b24ffa5865ffe420a928994e62ee19c7073cc13aed54b458d7a5f8af7e03d0f96662d1375ccdbf119117aff72cc2413848deda31f269b1a8381764be79dddbd87f3fc898ba53c2b2306a0ae0d54a00a65604e43656bd017050",
+ "ProofOfPossession": "a2f2d3201b89155d2e4e01eb2a4f8417dffc1c70db07656b5a4009427c8a3ed17cff1c8547b84a1ce0ded0ea60256ae1",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 42
+ },
+ {
+ "PubKey": "b55d77a13e7a63150c37977331ced0253aa09f436da572363e26052d60f1fdd1b92fb92bca329c509157f6d8926d3f9203da99404a44e066c4815eb7b9e59756853bf9317a9472bf5a02c79bac078d0954d34e775f0bb94da660d0e651cb79b8",
+ "ProofOfPossession": "97576b71a67f03a26a0f9ad84b83f0543ff357d1f0cfe71c9f0090a890b66af44180820fe15ace86950b1d9ecafb1547",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 43
+ },
+ {
+ "PubKey": "a5daab0f25fc86c758c027091c3074999133ecf26e3fe013d6b2a157e6fcc2bd66811b55e5f28332a5f7bb56215c7ac510090d8765048a85bb4410130e06437efb4f431fb11a0c24ce6cc535df73acf4eefc712426b3ca00555f83803425c5ea",
+ "ProofOfPossession": "b2a4561dcf03c259045ec0dc116a78805ad633039c20e5715c40eafb6e554914dd0ea13e246dc0b25ee4f96f85eef441",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 44
+ },
+ {
+ "PubKey": "8c3c9e1063b7195a9e23f225e5759778300a69a401812c7a5aca22bc76d9f81e946860efde48dd4134a9b8b05ccafbf104d3ea8eafb19958564bfc0458709d19d1cf8674e6e4ef80a3e8ccf7ed00b28db720fd84802f5c2747552dc69990518a",
+ "ProofOfPossession": "af79f5b526ddcbf42bbe4727b0b0b9a065508c9bbd4632fca0ab8d45b480499f6ccd54318fe6b94a8558c55f799b74cf",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 45
+ },
+ {
+ "PubKey": "aa7873ff07f26fe7591358e03c75c501dc103b11c2257ffef35c99fbfee73db61b306cd66b32e6129660345b6da8e4b303eec3fc9505dfc12380658fb37fbcb2f485bd68df20458f22258e0ca07ba9ff7664cb670953229cf4bba07f2bf58c87",
+ "ProofOfPossession": "88fcf55381207b836bbf31a7666e9aaca6d774392a3b62fba4681f92da7875c2b987eb87824c14c9cdaef496d3efd024",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 46
+ },
+ {
+ "PubKey": "99baf84be872d6d0aba5f48f765c91964c7e7fb0b28b7414afb9a66dce7919677a37170ef4cfd05e101d4dbf7683921018f170e8902ac2fe83d1f63745aa65c16031374b2ed2425723f9da723b39934558f07f0b8459d681cd146c702ff3391f",
+ "ProofOfPossession": "b3779c30bfd4dfd6f0d9e129771178c85b1093e2ecc4c3f247c59163c5bdcccde0d00ba36db25ceb5ed3b54b02e5451a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 47
+ },
+ {
+ "PubKey": "aa41c090e5b9efb011d581caf18c8ee3666c5d5d92d1c81556e44db581392e27b9efa5b86996864ab0ca6b7f28eb5dc6097724a351a5e98a6970712043db834d6ba79c6fe888892a4c1cd30313b54bb1ae229a5a12af73868f05f71f02515ccb",
+ "ProofOfPossession": "ab4e29f422b6bec2a756fc3fdc08c562cfc5eef4a183d4e828f4a540f97fd526a30e6cc17f3549e2e57d2cfe0fda879b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 48
+ },
+ {
+ "PubKey": "973ada24c3f4249fdcf4edb025bc82b75cf068b0d555823dce556343dab19f5723a8eb53e449de319a9a3ca7aedc6ce0178379a244ff1822db35c4e77f5ab5188533ff350bf3d43a25392bc04a274c0015dff95c4b3e826ee5e4325df779e996",
+ "ProofOfPossession": "967f4e8b54015f4b7127d3e3d002726b8d1bedc01356210e580e2d38c7e7c772eceddf90dfb10ae3201bcd334aef4423",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 49
+ },
+ {
+ "PubKey": "b3d9e2e6cfdad944f5c4631c3b62b65bf1dffb6770031d80aa1809d3cd2c50b3e03f3f53e0ca259ea0d2c5a5ab99c2f10d961d2b9d6c5ae644f661ef4d8b56c405637bc086291d3f364ef7c8a584814108dea36a6a083bd6bf0c7d374cf7b26e",
+ "ProofOfPossession": "a32fdc2c9816b49fce1dd8d1c60a69ceec939380c216f9ae1b0c225d51ba050beb0dc9dbd785583ae23e7209f511015f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 50
+ },
+ {
+ "PubKey": "8d6944771a746ec1bd5551563e561e2588811e4253f0ea3ea3c708317a3f75e168c74e25c41aee22ba6b3d715dac3d4e05512ae3fd6a4bd3c41f5acf417ec6557097c45eb928c2893a67eb10b27c46752e7a6b850ccf3d359af8ff5d5ff72a8f",
+ "ProofOfPossession": "b946c8094c29efc1f0d44307ea58cf39642f7d0932b8ac9c3db96c70d42328caa453c50aed9afcacc4f84db422cdf944",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 51
+ },
+ {
+ "PubKey": "b5b738968bcdf4f8f628026d32c26ff343a305f9f7dac839434fc4567f0a66e3451b831087dbbddb17c9b525d4a722a00a0ac0dccf5f15ffae6773f805aee5d85d42d8a173d639a3ebde9c7c3f968b32a2ecfe8824b1108afe3e55b43e2b4bb1",
+ "ProofOfPossession": "84be71f77d1a4d4b88d0ce775e35d6533bfdc1d5aee6a5e666e783f0761b62921807955850dc5e8535b9d623d8238297",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 52
+ },
+ {
+ "PubKey": "ae3285ad738c80cb3a7ff12200246a13b42332c3dbfa1612ad5c5cb0c093fe89d4611d6935453b8cf5b4e74596b0a19814dbf480223c52e0775c9900a108ff5150cffd1a1141412ab02b37fa261d9ff651c2836a1dc647c845847382860547aa",
+ "ProofOfPossession": "ad5308442487af30195a2d509136aa1085d602ee85a2b35500968f0ea763736c555e0e06da40c412ddeb99141ee6ab83",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 53
+ },
+ {
+ "PubKey": "8e75e8b0aede9885e2877f7323b768b3d98c89729fbcfb10678f0afc7827556206b650bdb4600bf9fa97b5abe52681a70c2638ea3c5db163659dbd3fb9239a8ebe11ab6da7550bdd87ceb2b000fa3f4d6243eb5d54ce4d6f7337ff64e305cc54",
+ "ProofOfPossession": "9962e47215e05e7eb38209af7b43a9560fbf37a605073bd07ab1f22fb47e7b4ab0be886d7a062a20f64c0c2fdc17cd36",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 54
+ },
+ {
+ "PubKey": "8883cdb15adb4a15663abb695b812c6fa990b34d9ae531e697ed6adc9e7dee88ef276e4da2ea5397d8a3f1240f57c37912dfdc72338c73f4e319655352f1059262d66f5864886e83d9ed36db0bdf9a8c597eaeb7c2c65ee2f1ee590372fca10b",
+ "ProofOfPossession": "83ca3b60636a75370fcd42e2e84d6f37c0ba9eeec484c4d74ea8623e768f058c88d75aa6f460dacbc29432e81ffc5443",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 55
+ },
+ {
+ "PubKey": "b5092663dc36f32428a20a04b37f5bc1ebb3fe830534b31d1c8e4f7f537066b1e813599002fb111c840b707f2c218cf61544687590131f9a5cc13dd4fb2fbf3e48c434ef1f4673f658aae696da15285076908bedf900f4d919d71d4c66d032fb",
+ "ProofOfPossession": "98d164fd7ba8a1ece51b90f1414ed662ca5e24e8033e51835fa40d6a634daf247b65372c92f4069b22d5ff85b1319912",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 56
+ },
+ {
+ "PubKey": "a734b1f65be0df55cb2e7aea514845f430d80ec8d17fb88497dcc1bba4243caeb87694864774c5301b7a4bf8438dfb0b19b87bed21a7804c24e5e6904a60e3c6cee67236981b76071acc3a4d6327937adaa35e941a0119a44482ada9e00d451f",
+ "ProofOfPossession": "94c81b283d8f146d2648cb724037e0ed2ff3b90ca24fc019e2ac935caebbbe373c6c8c09b70f08ea14619fb87dfdbc52",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 57
+ },
+ {
+ "PubKey": "9853e7ecba5a512cf344a41f5319dca7ad614273f55d7690534b860a5d9258819ff6c14df1390bf11ace3493836804a20915e3c356d0e0d83ae5940665d05a3c7cef5ff52297070586befbbc61112a983be266bd6e14310a9a232082100df824",
+ "ProofOfPossession": "ad83b4854a0daa02d76cce274646992ea3afc6ea45f38a475b7af448e9cb1058de3821efebd5d61bf6ad07ec2649c715",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 58
+ },
+ {
+ "PubKey": "a0fe25245c28338af9f05b481bb0e0e83ddd0f61082b72155017561d747649c5ccb1e6cb084c8139c1764a9b68e69e0511a071c6010025a71a124b02557513ba7e00407eef6951282e2fbc2434785619f0e1abda588e15a5e97d363bb5dc4296",
+ "ProofOfPossession": "aa4cad284c321752b68dcd98332bc779e695147d78e3b262aafd6088a160fd2d54c1978bf4cd696262335dfe955a0033",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 59
+ },
+ {
+ "PubKey": "8f219f90b2a4c62be892444b15c83e8fab259c9e720b6a0101dbf2a21a32bb9d976e68c633b2529e76d15c2b4a10c84c18f846ca9cac100470d0f15e84d0fbf5e0e6833eb4224a2dabd4b873fbdb82bbb49cf62b30a5132f01ba5a2a5b1cb92b",
+ "ProofOfPossession": "a6ca7576b45953b757dca4f073be18a787390b5378765f8efad63586d36c5d255828eea7521767a76ec9a86d6d1a8c5c",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 60
+ },
+ {
+ "PubKey": "8af52958d9a0eb6641353e81ce462ee51dba211e89277f69d64e21579c844ecc9a9816b8761699364c99d48c36f5df58167c58651128c53b2504877bcb7a969670229a5a2d2a7aa3d98bcd1a7363d20c006adb197e5d76a35afbf0a2d39fd455",
+ "ProofOfPossession": "a0adcb9eee2abe60332c5db0b6c7967a7329572d220b551436700ed07ba65a7f0fc5d0649a8d42d907da4f66dd0c62af",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 61
+ },
+ {
+ "PubKey": "a33977f327823d6086add9c7047cc1a6b29452990e2ad44ea4822aceffa1b9ba46b6a6a2efa3c60614d30dfb02904f95141fd954fa6a1a796fc6a05f83f7fc182e660d5f87fa29c3cd54131ca915ee468435483719cd8c22539dfff4fa484062",
+ "ProofOfPossession": "94a956ad2cb55a65c707cb995c154553539e2bf012b414d24f041d56b067e09899b1b894fbc35d80621ed95ea75b86a0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 62
+ },
+ {
+ "PubKey": "ac4b315dce26733b65fddca92706ec1c0f9e7e48ecb25f62e78d03b90b0624c40014d24687017a85bfaeed3d66722aef0d1156b9aef2e80077d2ef93e4f4234913f7025ae5e1ab34baacd0e12dcd4d591d01bd58cd45fd78c70568c12b1699cd",
+ "ProofOfPossession": "94c6448ee3d34f4624e45795f270fc992d0f921547356feb7ac30d3a09ffc6968da7fe2deb487bbe621efb47a9c7dbd6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 63
+ },
+ {
+ "PubKey": "b1bd1141fa75b07785d5ddea483c9e17c42fcaa292b160b3ef97aa610ad739a87d04dee0d166b2c4651bf39153d4f3250720968c214b6c248a7e1ab0d098fc988e434f0b6a9cbc7930ce646e369ff27a83fe3c8eff179a1ee8d5dc1699125769",
+ "ProofOfPossession": "817f2a8ec16929e3977f2aac33f24067a352f9fe78057019c585d7a5704b59bad6b754b3709bb23fa72b78ff3c2071c3",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 64
+ },
+ {
+ "PubKey": "b3b1c0ac997ab7496d5137646b008525ba6a313c8599740e187cef69a12bfe9b278ad399ce67c1fe031e675f02abc2a910bc849b3528a5405542204514575b15ed932c97ea2f7f7118f0b879df4040e3ca5e9fa179649db53474f03463c46dfa",
+ "ProofOfPossession": "8bbdb214bc00f59c87a76babe644a63f84a5923a7ab45abb85f13dd3f630a067bd6bc3c96cff690fb8152d46c813f0f9",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 65
+ },
+ {
+ "PubKey": "82dd4a046524ab2fde1a67183b29ae75914e46c4c9ebeef15274d63abbea9a96c673390a310baeb9f58391f7d0cfd05717ec1084c4fe3cbf684b37eba42c93c6bfe697b5515f60529fa85ab9ebd5f2bd7a40ee406d05061754f0346958b83ecf",
+ "ProofOfPossession": "802d24f0d4984341b75ea18e5afd132c7973294014a1c6232fef8a76a865f79d28a64b9fdf514c25e78156340e768bd6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 66
+ },
+ {
+ "PubKey": "a265a0cd53e6d99f2ea47df7f55442b769ed4e1527c1b2a7795e94db90c34ab1ff53ba04598b230159bfa3e474a104f3017dfbe96bc7aef5db651fec1a37651636b7753b2349415a2c50fa8cec21d35ac5e68915038e5bad1be1c0fe4917a1be",
+ "ProofOfPossession": "8afb0c8da405bc8f54e5a0dec93c30aa216d72ed302a6cd2bb8269ad8170349ccaffb57a3261e56d3d60ab4facd6e0b5",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 67
+ },
+ {
+ "PubKey": "97ad18a85cd3d25f629cd39c1cc69626fbf599cb8973696163c322663fd77e7135b85a22085fb95d0474b7f51cdd2c4000e0c0ba05f78ed27e48db75b7b69cd4e5319e38df943e2fc86cd5643770483ca4d2f803f0a0a3182ae3b826c014ae6d",
+ "ProofOfPossession": "b9efc5bbcf4cae32fbc910feedfadae8e58125c415d02c7c09538ab3fb462168d9ba038e78e2895d4d7dff7393b314f3",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 68
+ },
+ {
+ "PubKey": "987ae2cc7020def0aacc0e1ee711aed9ca7616b05ddd72c9b660a1b0d37d00cd2578bae0926591fbe394eb334b796db000cd37816adf7c69449241549d6f08736697ab282d129e9f44161d9d86e839c4509e3d4dc9a983e0d86d824df6212cab",
+ "ProofOfPossession": "96bad6025580ed130f8bb1c7dbffb43bc7d0712e1cb12ed233e35e7555bf859d7a0ce7212c2cd19898c6ff140666ca47",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 69
+ },
+ {
+ "PubKey": "8dab2bb79d19cca638fcd8945cab25642e95f15140d4f004b07ca2c617ed6b69e70911bc566e559f4dc9c2b70f5cbd270ea4037fbea81455550b47f8042e92b8f0003fe8c51b50dbea4531ffd49e89de3770b54b2027d7d69a26c67055a9992d",
+ "ProofOfPossession": "af43f5ec2b318d69f412c04c481ed6b3f343d97672238fd9b83b85d25f5125a3df4d484677825d9ffe92eb84d93af03d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 70
+ },
+ {
+ "PubKey": "8d759e0b1a8cc55901c578627c7758fa960407540fe4222bbe237f257f01cda6b4ea7199629b698175b2b932891cbf1a04b332c45d0f5fb35b2d96fad15dbe10701b82795d2d73f571b0602600db752a762b604ba5dbd08035c401390ec17128",
+ "ProofOfPossession": "a94d503fc8feb293c683e2c7e793872b88705fb89afccc95fc1479ccf4973226a8e969f5c399b08ee82b1bd3b2b6ab2b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 71
+ },
+ {
+ "PubKey": "8f6eedf2d85a14abfa99bbf2810da1008dd6554149239143b27f0da6b5d73f9999bd4d0749846fdcfb04438065e446fd055f62dfb64802e017f59f1cce886616fb303735523a87718a253d53d11544d9563bf3f4261b40eac5d055d1a875a8d3",
+ "ProofOfPossession": "8d71cd1e1dafef8546806505eb7dfd9520eb78a17de333d3cef5f9cb0483f28bcfec534873c5f36f0d5d7304eff31a5a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 72
+ },
+ {
+ "PubKey": "af986ab511a5621f84e9038d6e45eea6f87b851f8660a5ca89ddb12e8d6b25727e45e258dd39786fed4df5f9595d0ed70b2bb862d090d2d7af886e50cbd9cd97ab810e8a0338ee201dd9e6d1a9adc71933f4832a250b17f9819da2354f304d96",
+ "ProofOfPossession": "b4878e440668bd8f96f002c5abc12124287b75fbd220f9b80d8468b82d2dfd718fdd8a00a725a502776db720b9666fce",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 73
+ },
+ {
+ "PubKey": "af969c348471c2de18e612b6f51ce7842a57e9cc4c77d566abc9d05b0a2c7a026a84bb330d0b0c392a2cc0e7ebfb82fb12166fb023e7c0674867db02e453237f25850dc6c9d09563fb89b80049cfb26c042c7e1e584183391e88829589068c31",
+ "ProofOfPossession": "a94171a792e0fd70d3ec7c1f17d565099423cc669e323e983dfc4d5666fc35849534a67ca5d3e317f517b97a0be01a5a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 74
+ },
+ {
+ "PubKey": "a96e7ccc4e35eb3b6f344e756377e5b5dcee45340ad5fca0461417ae6b70fc87c1fb405b927474a2d1b1b934189da0b80de294c3a76f58899c6b42c072b7556455fceaba1ededb20a98bab13600c642456e55e6ba91f9a98e6287b68d470b435",
+ "ProofOfPossession": "ac983e1efa31bb43b20606b813c157a6be7e2c48481933a47dc544fac87e4f4c6aa6ebf6ae8afe0ead4a39ac2ce95e07",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 75
+ },
+ {
+ "PubKey": "a61469d10fac83a04a173031523b92654c1fe8c4ebcd003c866b914eb733b7df12a8ca97b20f95e454fad5da04ca8c93165c798dc573cded81c0b3b11e3f3938654de413320f5798f544e623d7e7392032429ae51fc6c513e453c6260fb8df1a",
+ "ProofOfPossession": "a51f5d5537c4ef4847ca56a20549f92a0eb35b04dfdf11a669fc5b80d3172ce64f491a7a91c655649a9345d01ae23e9a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 76
+ },
+ {
+ "PubKey": "a083f9d67b1c75519995af2320208ac4455c3fd658bc214733303ef845b8d2fc5a21ff699b31a72f35c758f23dafd34305dc329d88bca508f59c2d74757e7b1287371fe614a25218cde6dbb3fea508f254a9df373dea46fd91c41f5a2e793f0d",
+ "ProofOfPossession": "8af6142982f621a041de9aae1ef8181add49c9e3abc7cec527ef36f24d5c8291c9dd256b548fd2edb1dcba9adbce628b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 77
+ },
+ {
+ "PubKey": "a0a0508750786d428f7e4d34132bb9ff890679754f7ddb7ed8475845919e052410be3142ecf9bb85c2865d23e35bb72902183448e725c29c7f841bffa9eb83c00081c777a25e47f8b43531fd085bc3a62233700a345ae6ed6626f3e37ad21bcd",
+ "ProofOfPossession": "8208f676584e5965d83ca4fdbbee63e72640dab6d353f4fd73faa2350d1fb1e2f12cd6ff39661142d91d575f3c004928",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 78
+ },
+ {
+ "PubKey": "89d9d2c345f30497935462bfc929cd01ec6e5ac0af69d4ba21d41d63fb0bf3470bf6523a95efa2f555c13f569e005df50250d40947f0e0d9717e459ff872abc5c0cc9daf6e1e87a22cda96fc17f9736bd9a991eb88963b3684f965c4c203fa81",
+ "ProofOfPossession": "a1371c877617f83fc751cd9900e21d7fec05e233c28ecfa02cb6e03a51f1e4f67c1b9e3ebf48c00e6a6ecfac3779354c",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 79
+ },
+ {
+ "PubKey": "afd33824a1ce246f48ada2b26bd4883411710e54d5753c517d35fa320d462dd168a9dc3d223ae3036ffffe8ed3e6959e00b43841d3ce04277f728eed32ffcd570c6c0f0017736834abf8bafad77a543d26f4fafe8ff7e59af529bdd32dbcefa8",
+ "ProofOfPossession": "88f9e46dbb759d7766d58b3c1757a69ca3eced4c52bd1e4fc05aa8adf134e2ce93c4e00a86087b5beaae74f80a8e8668",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 80
+ },
+ {
+ "PubKey": "8ecefdc385cb170ecb9831f4a57b20eacada9d60a3b291ee04fae645d09788b46b18b531ba9adb9885064fdf0991f7a3130d107136d0fceee3ba8bd575430cb168c76c12bc66c67ebac5772d53fe0cd09f40d24c61e03c642fa01daac63ee1e9",
+ "ProofOfPossession": "925daea8c80241d65fd5e7bca801ece72f3153aed496011d7ec240bc5d8500a03f61a8c76fdfcae81c59da3f090a3207",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 81
+ },
+ {
+ "PubKey": "941c63cbf533863c571f8fd6bfffaba52a8c83aae16276ea46f1c78531620613d7a7004203e3f0cf61adce92908566d204a1e73b271e2703272f59a3b120c9db4bc82bf0f610b43b1e251c834383e705ae196c6b458eef4a311ff2b2ae9f89b9",
+ "ProofOfPossession": "93cac127c98d417795d3c5a7f52177815b7c60da5ec66994e66ace2d4acc27dbc7bf3e44b8d57a22cfa0974fda8bb52e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 82
+ },
+ {
+ "PubKey": "a380ef477b6dca8a55933e07c0cb21111192b4c57eb6e547fa1f1b4fb9a2b4ca43d9bb5acb7936019123d59346c8e74e0645eea14abca1f19a676e8ac32ac27a507fb15bf0c4e223a79b933dd34c52c79626384a3f1df15a66687b41eb253a25",
+ "ProofOfPossession": "a53b1a604e73cc63201cf5dfdffb9dc9e57bbbebb2010a866aa6b41498b66f6a7d418569e88fb9d90f9c702a4087b08a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 83
+ },
+ {
+ "PubKey": "af3db6cefb4ab9262fd9ec9f859145481e3b598917705735576e581bcd1e78237f232c9fb1cc17017372dbefd7e0f1ec0c991a8b18492976bfec42b90971d37fbd05966caf4a23054b418e70d2cb0f0446922b9f1dcbc79c84f10e96200e08ee",
+ "ProofOfPossession": "96f306b7d828b7db083492c33fd04bf7d6bb625a25b2159bf893aaa53ee217a4230b562cbe7fbb991bf6baf7c0d3b432",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 84
+ },
+ {
+ "PubKey": "a0c0c0345331eb8994c8b2e6abc854b24293ade7e8626d4b65cf780fe0e2904f8855ba52d2802f457126def786be295c0552af27c9d0d4ca780d5b5fe186baaadca68c4211641c047a192602ce95e276a51a4af85c26c5123c5dcacd4b3f4c81",
+ "ProofOfPossession": "b945b516cfa804d08c872b3cd00ec5e40618e888dfde6f83520563e2f2f84440ab2ef5e9b96c3d8e3cf55c6f73976cf4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 85
+ },
+ {
+ "PubKey": "b6ab889aace6cfdf4253037dc3bd0d0a8b22b5147e9e47353dbf5475b7bf5123ff948efe00bb9553946ef5470e493b0f0035c873e2ed329bd5834c8566ee0d94fa0372c97acd0fed95884308f00b3c940432f39d9256f8ebdc1659a63043d487",
+ "ProofOfPossession": "a3d8228da7964e3d4b87331d7aa49d2793733aff80d42a07ca1aa806fb96468098e58a460288ea0971fcf095f427d304",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 86
+ },
+ {
+ "PubKey": "b43bbb4feb0376a4b1b849182a6450ffc615d9caa5e62fcbea9fa8da7777f3e1d5366d06974fbfb33be2f0d7fac276dc1372dcf1703c90c5caf245f8630942c5cd34256cf69484bd96bb0fe84e81566260b7dff95ee90cfc7c41300c92334cd4",
+ "ProofOfPossession": "94868bb10b7a8acf1adf8e526cfffd9793bf8b29756d52f2d622795a4e72b740de6a6830ff2f86da6437034332cce1a5",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 87
+ },
+ {
+ "PubKey": "8195211562a94117cbc9a763f9b92724587d7f0b2ef33808b19abbdd65e5c3de422f92f1d966a54598f6abf6b7b2ddc70d16657c693fd564a6ca3ebc422b82aa637150cebbc11011301949a0f35f9ea72a0fd4cf2fb176fb60ba7b682674641e",
+ "ProofOfPossession": "89990e14269367ef9f4cf79e687ebc35e790e7fbc52c6567a8a804835da20585fbd114aaf949892ba52cb14d646624fa",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 88
+ },
+ {
+ "PubKey": "b1a8f7214f1083530cc9be152f7300802221b47d2fe6dc02c80bc588f873596b7db879052a1b5aa8a121bd5357682d390d64652daab6458e036b68d042754b5e7dc7462c887d28b367d95d9825c034a0fcf929566da6e1946a9acd56e9a165e2",
+ "ProofOfPossession": "961ad031cdd1252374764baf7845871e2d4d3cc4303257a18aef28fd0b1ebfa6cc7141c68ee81f8395ae78d061bef50d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 89
+ },
+ {
+ "PubKey": "917adf09d708edd58ba4f6ac4f6e49812e176f25fcdccacd3958b4dc8c83beeccbcd7243045037543a1686a2ff14242909b52a6c0b420c6db2435e1f65e8094e6b3379746a14f87d652452cea8c41e886a87c5654fdc1e60b761281eac350531",
+ "ProofOfPossession": "af779480a5c62aaa5ab549144d7d7ae9ecbe47631ec20984f90c629318d7620507752b2b0ed54094e7b52c78abfe55f4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 90
+ },
+ {
+ "PubKey": "a533a57673a0a7e6da1ee42a0a3810af6dee613a8d8b8a1d9b0486e39d2f115bfef71c8a17cbf5a1c637a8f6c344b7040b423fb2a743c94ae13a5e102019fac2775dd72bdcb43aa6ca222119b50518f7722f974fc73f53914c3543c47f63a761",
+ "ProofOfPossession": "a66a94342a7fecd6150cf14ce7b99e025cda772f03f89f1fe9705ca013be05384d232a5c9959ced13d573ac3dd98d7da",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 91
+ },
+ {
+ "PubKey": "911397d298404402fd4cd5acd93b9fe0e91d2dd1ae8ff8309ee12de4bc4c3307a12e4e0397f048d7ade2339e511db3cb0d2aba473e24260e556dca5b35b216fa0df3c41ec50887469803665849b620595b381d16f94cfdbe56ebf119c1510d34",
+ "ProofOfPossession": "a691f2ecfdd4077d0a1fc1415925a7e63cf34fdc31849cfe98c03e6f42ccd38effaefdef9ed9335fa1eea108211b14a9",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 92
+ },
+ {
+ "PubKey": "8469a09731abf4285f237249f6ebb29f0a9eeebeaf5e9f788c2e18bf425cea3bd9bfdf5b6778d0dcc03c238ecef2518d147bb53b6a993c33b09500537f91fe0fb5495e74d81ba75a1e756e993f9048180e00bb5477ff07632fc7df9080c2114d",
+ "ProofOfPossession": "b4827b40439929a3bc33e5c042cb5b7ea4f69c95a5e0f1a59c041d06a39eeadd48b143d60a88295e063cd5ee36a0ca9c",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 93
+ },
+ {
+ "PubKey": "b8745877caeadc45510be15efd48a8217de64b7d1302683e73d375082a84759a48d6c8a0715c013534d1f192f9a5c6510610551a784c9f5ac1755b283c70d44d8d679b73f328f193a2960fb2dbb664deca96c70a536da94dba5dc5229d38c7af",
+ "ProofOfPossession": "8d102c1616fd15c54e7d9d79a9b3d9b577170745754d2d8d7fd9906f298b46602b3610c3e2927818b6821aed38c54af0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 94
+ },
+ {
+ "PubKey": "98107b3246f7ba2c4caa2705a35d25ec36592b8b90a96cf9fd4544e867452649a08424a73685a7eae23cc43c95f3f85f051d3268b249f39e66a7624eca7307406779e998a4c2ef1c32f8832f3a16d70b943914109fce1c1550dd76f1ee486839",
+ "ProofOfPossession": "a087dc11e9b089808c2417cd0ddd1c0ca59092b7278f2ac96788cf916e98433ee38dabb0e2465882d17279b462951b4a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 95
+ },
+ {
+ "PubKey": "ae5f6d9aefb3daab164fe55391b0561a3fe165af225360392c11e105957e1a3b65954e0e78c4f59a3a7f9a5a578ae24519a9f6d1898078ab3294a52360552ebe7db68b8fc77904e678e91a2c0bbe0a7cec9c84291f7e782a73ecac922d6a076d",
+ "ProofOfPossession": "b9f8a654f922288c7e2b433356faafdd856cbe2334f698c38a9e7f9575f116432ddb61126a85a03b1ee5d516d13fb7d6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 96
+ },
+ {
+ "PubKey": "b8f0b579a9689a0107f3318a731fa1e2c44820ccad85c678e2a0685eca09222480128b57768d6ce76d80266a73b36d4e1193dece4c92c4f4da4960865c2306151cf0f55a496fb3334a7fa8f7fdc6575e88cec189fa556b12d57c0583eb5e725a",
+ "ProofOfPossession": "aad2d6cfffed13eb239e69ba389ae0d5d980bedfdf224e9cc222ef6e0ee2a11c795d2fd3898206c42f35d00177eba09f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 97
+ },
+ {
+ "PubKey": "b25fab0ea19d924930e1e9c360fb199f7f741076b90bc471d351b07d07c402114555052aaff48c4358697bf5cf24423c15bb188ee5ff55e9c51fde86719d76fbdb166b9f343876ff6185ec65ebcd8d8f518c636c036109dc7c768a3fca3f4e09",
+ "ProofOfPossession": "ae2878d12a5828fcf417156a9b1201c9101aaef4cdb1231438e18587b3e1ac653a0ca75757681d540d346dd7ef0b81a5",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 98
+ },
+ {
+ "PubKey": "837ea4dca4f09b3f8d944490e486674fbb99e42f9c553179bd4fb0004ccbbaa49b167ea92fdcb493e75c1d1498f4b0950abfc6e253c1ad050afa99d1149578d7b368821deae2a33c693c7fc3865cb745a92573a18da74b56c67400e3d36dbb47",
+ "ProofOfPossession": "a171e6e533290d5f3df8ec7db5b9fe4842e81e5e6472830e90f82617b6737d6bbf636ff0d798f22e6de90ce0783d38e6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 99
+ },
+ {
+ "PubKey": "892fd2013dcf8a62229383de0cc35b9371236a314a21298f2c53bce44a3b19571b9a30763f7d94a1bf9edf7bf1174ceb0d132d8f147de45e0d2d8da761d06a73a714571c4b3cc9234bc429dbedbf4e426f1ab4b71d5f5cfd670fdab3484cd033",
+ "ProofOfPossession": "afcbe2553d55805d3dea46db0f3a88cbc4339c2c7c5c8e21c576fbeb7b98aa18594c6e31afbcfdbeb3b98702a521adbf",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 100
+ },
+ {
+ "PubKey": "a5769c432709c4304ccea34080f33a7e6834a0862186bfe90737b8923ab25acc6c151a76eb5cc8c316123628812ddf881747457b06f7b76d2ee4f535864ce6874b7ead65020424e43fdf03cb8a95717bc957c13f9459259452f189783f6e5cbe",
+ "ProofOfPossession": "a285c55c68e25814d940701d81b4da35d44cf83f79a32083ee9fce238b86223c5b3926e8412e273703c28bacb7d187c2",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 101
+ },
+ {
+ "PubKey": "90f49c677773371b189c244d3f5e69ed4909d937b01446361659b50c6358ec2f7e453f4e76240a7d40ee0c56447a984e0e244ea851db95d09b4ddcb5c8718920f4e217328b13df433e553de45d5b07248505328c48a6fc2ff986b41b2638ad12",
+ "ProofOfPossession": "963131b58e85dedbc369c09160c55b47d18807a9ca4258bd72f419a63dd7755711833a4c070d7c35063a6a932c4c76f3",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 102
+ },
+ {
+ "PubKey": "b79f88b93b6baa741d872c3e59e4c5ef232a380585f89d0cb9917f2a2a59ca68b7d553d0050487670565cc347cb6045e0491e2fee3b64946742af566cb31beb2152a435d0e40fd63477278ba99176235ce8caaf62428fc8cc4a9da2d981133e5",
+ "ProofOfPossession": "813f0fe3618aa5f0ec1ca49c0b348951b5f21305b00df380b2bdd2802268a02b372e1b259f908825ef36146868558178",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 103
+ },
+ {
+ "PubKey": "89481e4cfc08bcd4f253c79ed3494b261656f680a7eb7cdf37cd34db8026197fa23b99fcf5636d26f7921e89c9ca82ce175acbd0082c110fb131fc273008e9f34f5a732c722f149b7b546e9a7cfd819f3d12ac8458f13435d4dfee299173b443",
+ "ProofOfPossession": "a73843da932ef75b3eefe905ee57f84448118098db176ea86ba79696ba530074b319bfc4a3f8b1ce0208b38d91b9d559",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 104
+ },
+ {
+ "PubKey": "81fc98e223f3babd8aef24a9bdcb8dec9527e1e7fce203ae20ad55eceeece5c2fa8e595399eb554946dc4f25a9e346c90b6d441ff582924ecc6b81b59b618abf2e646762f2425d2f52f2a01d882ebcd1902b0d3f1fe382df98ed702e2e5d5142",
+ "ProofOfPossession": "8c627cca23c376ccbdbccf036bbc50a371550095e4eaa7731d752c1691a6ee349832cb8731af9f38e6677bfd101dd965",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 105
+ },
+ {
+ "PubKey": "96cff242f484ef206f7ba605cf90daf917410aa51ced00089e7799ebe0ffc0085f89ed8663be1a9162f174aa05e18ed70cea1f9f2a406863d1cd0177d091e3e9a13d58a03fcc30d71dd467d21f44d318d56dd5ae4f1bb95326f47e9a844549f2",
+ "ProofOfPossession": "802a6a3416ccd54883929200315e8acd4ca3d33b996b4253b1d172e4d1e6cc5306c89b44e6cd3317c40359b031e14be8",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 106
+ },
+ {
+ "PubKey": "895bc20c4d2409e4111d11acb9793322786a23232ed901503e99a740948d41a06d474b702e9374084a6fa9f7e80d8a45153ae65d7b03e3980570ebe4de646af348a4bd6611baade6d158adfb791b128ad02720198b579b06c462dc5a6f8243e3",
+ "ProofOfPossession": "acdf55cdaa40df46a155ede4558c1333e649d0890402c87548bd9224495745cc6ab90df30cfd9fa9102905e75169c786",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 107
+ },
+ {
+ "PubKey": "8caf870b4ae6324f2a536d78508598588f3251eadfead6cbc10bc3e2e4997a60228744c5c1c4627b1397c004bcdd4e8e0e0466b660b7b2a994ed4f6a272983c25ca97cab0d5fb85452c935a7ba779f25ecbb98a0dd52c9050e78100fcb338111",
+ "ProofOfPossession": "b0ed0b58b00f0f1fba9b388206ff5b3966b03161dda5e43d4663f19ebac88fb06d2e2b51f969bca428a88bb2f816ef16",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 108
+ },
+ {
+ "PubKey": "90d1c83e79f180830bc86ad215201e945dbc348923cdb5b2408390ac4b3a4680e11ac32770d7deece6ea5bc4d0b18157031227113745f084ca2e796579f10d05442ddf75e01dbe48414ecbf2ab32c95100bde927f6329007851223fac9558099",
+ "ProofOfPossession": "a1af79006b15324a2cdf54f4e4451dd51a51bcf7a58f7d2b05fc4a86cf4fe88a3c35944a8363aec317d457a2481af789",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 109
+ },
+ {
+ "PubKey": "a311e092042d82ecbbd3b1ded5e082e28758cb61e5c4fc8c217096288e114f5f0040cba47b8a135630d37b96320143560e66fb409ba396379c04439d013d34cb6a2aa2efce5d8811128ed098ca2e62c3d01a0e072c31e925be5cc8a7bbf0862f",
+ "ProofOfPossession": "ae88df8767974d756835518e5c4696c677b943ee9068e0df8c9ee5e5c15dbfb0e3c62b04774899f7ce4a22fe344f9173",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 110
+ },
+ {
+ "PubKey": "92f586ef5ab55514c6bd85ae69cd0e6102b908d19e2242f811cb183a577627cc28fda13356a92be89e5064ac6d0f4828135c43f4d61f0b9861524d8eb150f3d1b00516d489b3db8633b1949000c8a54b4a11fb845bec83c410b256d9e16934f1",
+ "ProofOfPossession": "94f6266579bb24d93d24cef6764b7acad0081ae1f54c82a095c063d4a9c8ea0e99581c8bfa81970b0f0d149407ea895e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 111
+ },
+ {
+ "PubKey": "a272bfa89192961875252fb68368cb60e72edb806f6cd407aad1302a8aa294797c9df2d012c7515a586995ba9b1d58220b5b78b7ebbb9394c186e969ea45fcda0f5283030800643bdf6facec3c4c0824349be6d561e395cc6c6defd560aa982d",
+ "ProofOfPossession": "94291bad71019dd17d5a3173e423e56afbfdb0832a84dd3139eece9b7c1097bbe2cda1a400fe90f97682aa4c8fb680e3",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 112
+ },
+ {
+ "PubKey": "aef9049155d38803d797411c8cead685bdf5096fd0067ed85c784982ed09bcca0ccace476b9972d5825bbe4ef551e5750e394d366ce3a279ee7682e11f6ee4d0bc9c569f534b16fff7e824e3e2522214df2b65b3a6c1e6dc0fc781e1c021ecdd",
+ "ProofOfPossession": "b48d271ef1d3946f8aa2cf98dcd56d5c70f33fe11c71d4892e0020b16897a318b9515a4e700e3a987582aa38f2b730bb",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 113
+ },
+ {
+ "PubKey": "90789aee575437e59ee0c9c524033c1c38dcd233efbc063d6551dc6f5fedb1adf6f18d3030e12e220f29f172e9f237b7059754273cb36e72d140263309c7eaf70d80056244cdaf1067492e0cecf90d2475da8ea9f3a17b5073acce8513acd4e6",
+ "ProofOfPossession": "a15aee0e6c034ac538701e68ea42add565938bbeff2eccbd84d5e7d9478211125b4b9ecb59597730b59c6a4c5dd2065b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 114
+ },
+ {
+ "PubKey": "8219d23353a3a271a7df06e9ebfa41d8bfc9a8409af5adc07fbc38c94390226cfbe1b5e67fff60ce19c247b40e80754e08ace2b4848588db851cf4a039593e33be1978d727a3e6e894fb76cf98a65c45b5350ae99827e14a05e9e4bd1f4f8db4",
+ "ProofOfPossession": "8dd80d2546c72387a79855ebbf31c1a7c95afb0358f8a44fef851ad8dca6523e529c36f280c18848da0ba4d869493dbb",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 115
+ },
+ {
+ "PubKey": "8ab7d81e50c4bfa2af539ee49abdbf981e686d81d3e62fd031d54e345d77d0250129e187449b2d438e2946b6332ddce91059bf615062bd9b25cd4bd163c69200b17fdcb6bf5a4ee20c4338ce1b9c131ec953d367591c23cf21aef620e57b2f6b",
+ "ProofOfPossession": "96c8af6033491d7ef9963eb49bbf9e4f3a5927165fea8d690aacd823b7962914f3ac4709c7c01b513b4be56d4a217f98",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 116
+ },
+ {
+ "PubKey": "a7400a22cfd1fdc646fb08e9fddc513d7be12096af52adec494eca5638e99c3c45ccbb3b96ab868df883909752d0bf120812365fbfdb56d3d2b47ae8047f0d28929ce879301509fe2618873ca3f4f1513e0490a2d7ed00af8c463bf1e0e49665",
+ "ProofOfPossession": "8217c92dab05500d05224433dfbe02be0f7377defd8e60f448f8b0e990d995e0742d8d30a213e81d39c9d9776b2d8efe",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 117
+ },
+ {
+ "PubKey": "909a78cf331a098f1a29691883e4e5b727f759d53369137d3291fdb56b105b4eac479418758ffce64cb795bd49a3339a18e470ae5aaad60bcf7fe9a610f72c7a7015fb786d6e43bbe793a0635d99a0cbc2f79166f206ebf531cfcc8c0c72da3d",
+ "ProofOfPossession": "ab29ef115577fb8355622b596f0dd354c2ab1b10cc3d016399e581103fdac034c1ec1d1ed4cf81aac9a33508f166e88f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 118
+ },
+ {
+ "PubKey": "95eba5f8e3c19adab64968d6af8c5f2ca13315a58813b14c76c2eaafb5cd651585f6cd6464bd7750c8ff6f3cd5e7161f17353bcc5234062d943dee0bcaffb164d1b55f3b06e62632d9b56f97ffc23bad92999c3f519d71654d899ba1f5fe6ba0",
+ "ProofOfPossession": "b68f993fc12250f12eef2fc331e71c65c76883f930dca2064445f176f5ad8b2cfc984b2a0da2da2725480983eab4e0c4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 119
+ },
+ {
+ "PubKey": "b9fad1960b18206e175e7667b7ee0184fb2b0013be168f34b6da5b56e61da341072477c5516d36aa9177ac4d22c624a503a692c0764c380960197e46235efe22bbca8c059a5b36d2b9ef91fc6d7bb177827733ce3974a711d489e9ec4752de47",
+ "ProofOfPossession": "b5b0a5f435d386e847f9576998a21627a77af346befbc647af0612fc2a855079c908f4cac66c4969350f219c2d778154",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 120
+ },
+ {
+ "PubKey": "a0fd76f7ab67cdec4b59eb0562372bb699aa746dcf6bd1e6fd14df33fd6f539efaca7eeb0df4a6ff1bffb88ae0882eb714f79f14018971d5f700e3f5d1cd2cb33d460ab756496b8d0e8de67d6b1ecc46574be8262b037623cf8844e65a410242",
+ "ProofOfPossession": "b8b0a785ca7472fa3aca15baa75c37f3484899b901a73c81f02fb8c491edf39a8292684227ab39350b6087b8ce7d9785",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 121
+ },
+ {
+ "PubKey": "a84ef2bb0dfb6731af4c63171faaf1fe18752875dc6d5e4daa2b5fafcff1cb8f55ea11ca915771167e31ef3a4743e684153b40c6416db8ce6f3a75715fcbec420e31549758e12f79de161463c6c6d682381c4d2802cb879803bceaace158c933",
+ "ProofOfPossession": "95364d2aa8ea666622db770160d24e5df8e3944785a05f9f90514ea117b7200f412b43d3533c820486799c839d0ca3e1",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 122
+ },
+ {
+ "PubKey": "a84f8d47a0e1f4680963d0432b6ec744a3719f534f5051cb16994373e932f01ac3cc9162c6cd55e15e8d6f865e6674ad0270ac1d65212ec25853c273376270bbd63e76bb324a0e311431c9a4d60e374b6eab8e1ac5ce1956038146668f6b75fd",
+ "ProofOfPossession": "a9cd4853729d1f2d15eb5d3a62fe4920634fb94100c555925da80194d802a5161246e41c3f7a0d1371bad83d4e52411b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 123
+ },
+ {
+ "PubKey": "9069bd15349027a60441cf44d8e4c4d3c53941c64393c1b2d14bba7e96a218f336210a4a95236bc16414a88dbb58737d035adf6056042c6cd0bf321dbda0aee2268e70c6d6f9c6112dd393bec36705d9a7643c41286286d5898908c0c8150011",
+ "ProofOfPossession": "b67504f36d4c4f0e8589802a259817904ffeac2122bb3022d4eb4ced6a2191d54882328c018b3cb33ebf6e24fd6cb1e0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 124
+ },
+ {
+ "PubKey": "8f36bf3608489fa1340a7b38ee6bb8b988ad7fd9378f300cca3ac3446cdeea6875fd703bb2fdd141526f783b0c012d2d0cc0aed9f92bb18eacead0a7232a1108c79a0e70d71f36b676e92cab2019dd9cff27e568bcbb94552223186a419cf258",
+ "ProofOfPossession": "b452ab29aedadd1323b3fb03886fd49a80422fbb8964dd5a3308dc20c5e974d52fde06b8bf5e0fd2b2a4622960a9d5d2",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 125
+ },
+ {
+ "PubKey": "a326fcfd19fb744816e8a9c779a63698b6451ba76e64f3c3a43cfb0634e38d569d5e7539ef1b8d80438b895dc0e52b610e0009faa40ce21e229160c27d23a8fd0691cea677031cbbfa8d0d559934f13787836d53117fd4d5db5da6adb3ad380f",
+ "ProofOfPossession": "8fac007e8d778e28fd2c64f2722f25ee99fab2689029067509228beb636a211dd4050679300f0bf228691076cc3a97ac",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 126
+ },
+ {
+ "PubKey": "a93a773bcb23d7a919d2b6944bcc296f333ca638c7f14c25857aabdc480117c54b3f2a4ca5db704d8c2ae8048d044ebf09227f5e3f3037e106a66fa54d18009868e7d28ee09765051e49c2e3b433cde5635e8576ab7afa050e2bcc2f1b19aace",
+ "ProofOfPossession": "ae9529a27ecb1de7643de2f51758191ddb79593bcbee88fd1b7f0b7a6a5d4e9e4dc7e09b00cae51a07b1c09f28de4782",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 127
+ },
+ {
+ "PubKey": "90485827bcb86895d0a0fc8b455169ad3efb5993fda004acbc16fbe33cb1684a23e534635b47f8c75380c4b6ee1ea1b4147f02ff53b1925e68dfa3481535c47f1122534ab971cac09f26228a07fd13d5d4be69c971de0afcaa63f19ba8eddd8f",
+ "ProofOfPossession": "997b333e8d59705177459cc149d5bb442069eb55edbd3bcbe3172edbbb60e9c23cb622c0f0e42b8e046dbf575ae21daa",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 128
+ },
+ {
+ "PubKey": "8bb0831e613c13e6072b53e9436c2f9045781b0546e5720cdf39276d22b4ee4f87f1c6e4980b42eb8d373fdce095805600c7abb902e6837f431e0d7823d66f4bdb9b50c534c3ea914acaaff03952dbe99b3803e1aef499b79c4e3a002929b930",
+ "ProofOfPossession": "92786bbc51922befedb52d2ce0e0bf6908a8a9e2337fdf9760367f767d7bc2fa178a37acfedfa5afc809f2225f571d34",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 129
+ },
+ {
+ "PubKey": "9788d44a313888cb4e4b8bb96cf4cb4fc294fcd4b1b68e1e830a30d9a4ab92b591a31f99aa51443389d5cd0b5e56938a0ddc940b6b2293fa5bee7a4e87435fd44006a7e6c94fa0effc90b44244877e5a1679e28dc6378ee8ed2c070072edc730",
+ "ProofOfPossession": "8921beeb814832a343b561395b144f4f7deab4369adf79015aa2142aa1e390afda5c6b6d285054317de2c25cb575ab3d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 130
+ },
+ {
+ "PubKey": "9302df4514949dc8970beda5c4a6375dc1a1fc79c4894b2848b2a4acb870486432f648e803b78f69d6bed714016745ca18a273b0208ef0decb70788969aba516fa2dfb6a5fee63394a6129701694770a5d275aef73689de9e0f102cd374ace80",
+ "ProofOfPossession": "ab728e64b67a6f042c0fa4b21807d420be3f40ce90dcb5234b3b3c117547125d32b8aa002ae9cf76c0853252392e3e23",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 131
+ },
+ {
+ "PubKey": "b3b9a3b5d2b58596690a9138c65b6bc801e4384ba537ba03f5913066e8c58be0a265841f35a35ac2672bb7ef052c92d20af1d82bc8f634fddd7032b7023a86874c3c39828b7d66e5664c1d84464f6b4fd2a640aa0b7461a89662f90746c1cffd",
+ "ProofOfPossession": "98e066ff3127ea2cce89d26430f13ac5ce372e6ebb0236bfec792de56a786d9dd53240b7a5aad92401da1bc1201730ef",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 132
+ },
+ {
+ "PubKey": "afd9fe61666d21187fca69826bb460605928a6c711cbe840c2307a79403894ad1dc7fd6c983fe99c40887792450ab80801b53b61fddfff3267c4ae24164c6a990d4d9864008dea328beabb2c758cf39e514205ef55a73a447853944e657db638",
+ "ProofOfPossession": "91fd6ae14a34e79603c38db613fb83e265ccc499a4ebc9aa616422ce66a4cceeaa1896711b3505ae52aee2e617b8c6db",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 133
+ },
+ {
+ "PubKey": "b7c1b8337a24ec6a6b5e34117388b2ec658f24607db4a9de5a919311d1aa924f2b6b5e61fd1d94dd0a9101abc2b54b930f237930cb47f1699cd9df343137fdd20a6815dbf2f1a44f5f21899c9659c525f00445630aeab5f8827af9205341804e",
+ "ProofOfPossession": "987290bd09f0996a338ec00e27b7a08e6e5f566081bfe90555dece8734e732bbc7f6fe182ac86b159763976aa81eae53",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 134
+ },
+ {
+ "PubKey": "8d751aabff3ceeb76f07c88c6a49a72c276a7d7ec9eee1089a810ba35dffe96b94ac9623a339118462adbfb9ee53b984184d027bd090b970680488cb43fe3154c7627b25ee78004222c3402a7f991d77286933cc0f28fd86671b67c10d09f0d4",
+ "ProofOfPossession": "91348a55d8f9fe25a173830808b28e643f54d4d82b43290b9e03673626491ca3c8317887b7d799065220592ed19e946c",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 135
+ },
+ {
+ "PubKey": "b97d842a205c8e26cd4aa140243a5fdd9422583943a7d4dd8d90cc9bb0d401a96be047301e512eb707c139169fde265108f8cbcdb82e7ad4cd4b788553b21345ee556e9b6377dbdcc6e6400697af63c372f516f342fe44fe4d3e9225f483a5ab",
+ "ProofOfPossession": "a93f0bab6bebe584e43dbb765a40f4b2820531173733687c532074b6e4db395e210707d4061baec216383bd15e099b39",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 136
+ },
+ {
+ "PubKey": "a76d3c10997ca7ecde6e4470554efeba45e453acf5abaa79216c3c531e68dfcae217a15bacbdecef46549d93b0b307720e61368b9362d55301d1b584ba8352fba06fdae9c2e487cb639645323206713a810d8b9fbe34e64516b11dcf1e9126a8",
+ "ProofOfPossession": "802815962fd21efb846eda013cf44ca14b072af080cce715eda753041ff60611f00915df2b03745db34ac40f02817d2e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 137
+ },
+ {
+ "PubKey": "848494cb12f9becb3f8a5a97e107ce37d69304a07b6c848d7d84f87f4d1a03114e038a127ec32666a8beedecdeb9138f17935be605962c23df6fafe4a89dfa1d3fa7a5f2f764953f97c23cf07708aa365148c89dbbdd3210cf3df8a8f01e94bd",
+ "ProofOfPossession": "90183f3391ee64410c387968058d0714777aca2f5136774319abfaf66266e64476da1840e45088b8fe157603a62e3b79",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 138
+ },
+ {
+ "PubKey": "a60b4baeed220c73877b05e63767fc38ab49bde98d11ededda31c545964191ae360de199d06d993b9b236a4ca75b8a840a65ecb049b82c92256a9b321af59306230043aba44fbe45346bef5346f62a1563c36a981f0143510c6e91cee026204d",
+ "ProofOfPossession": "86772d4adf94735c4b9e13fce1b8bf0cbe53c13cf963f63a7eaba2ec4d16457063a622c49b91c4cf1453314908b0fc92",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 139
+ },
+ {
+ "PubKey": "969a8f41165b6c771091c3e6fe59fa119a1c2f4fbc13d2515ad96c5814cc8281974a79b70bf36345e12207599c062c2b0a94b1e040c02e4f13e9d8f137e9d0ca0feff06c075623af0deb470013394a03d79c34e9892ee2df4ede0efbd9553de4",
+ "ProofOfPossession": "8b4d95e12d3e36b915ed7d50fd459d1ace4b7cd47bcf1b5f26ad2502a850af9ba85b5279ee81466dbf6887e85eed668a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 140
+ },
+ {
+ "PubKey": "901bd4bc01a2bfa691c1c8cd0a301482dc1ec19293fba04a41df29a66721a2ef3d178097c77ead0a4329ac886641397b099650b2d27d05a3ba8e559bb5268f472898baec1a13164c69299176e40abba3f09b13deb9a62935a54640b7885d6549",
+ "ProofOfPossession": "a9123a0fb9adf5c1d02c318554a0620ccd95b9d339ce169fd5593082a7e8a2cd4cf9e9195c51f4be57e461994b26c8ca",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 141
+ },
+ {
+ "PubKey": "8970d4059fee285ce16ad920379f447fbf44db158826e269b219d7fe43c5af7b86cf4f06f1cfb0fbcac2da56e4f130780c18df7004544a620c2f48d740b71a77ef9bf9f94b78082c7684839e517aa63a1326dc5845588fb5996c1b2397d79126",
+ "ProofOfPossession": "8f672c71cb7054a6f49e5306f978d1b0f666806010076f840a0c7297c6e40eb4748d5bf530bf9dda801b31a455d41db7",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 142
+ },
+ {
+ "PubKey": "b2142de085c576bb86d127c542cbb0d741437d4163ae8e5cab357ee5645bc3fe272cd863a5147906beab7691cc13337814657e770a08fd03d4eebe989f5c1eb441ca9cfa3d6a6814ef3cc099f42995beaaa428ea0b354ef2d4d4033e5125365f",
+ "ProofOfPossession": "8abefbfd204bf50884097294ae5b6cfe247f4de7d97571a35ecee5945bd6de252cb007b93a6b47d607642e3b61c5447a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 143
+ },
+ {
+ "PubKey": "b52e3324597244b516231cff0a627b628b662b0c3ed106127bfb3d35e5d8d137f10e1e5a38d750cff71cf8880fc9013915ebc635b676d7a072014c2b38e94692927359c593053ceaaf77581b3d5db2746ee85b2b0840dfee84ba219b858285b1",
+ "ProofOfPossession": "82aa5b1ee217b1faa0becd3b6e5218e5bca450a9e2b02afabe6418b33ab26fc170ef84a3a17f148c2dfad85269f7bc41",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 144
+ },
+ {
+ "PubKey": "ae40278779911c19027369f727d6bde4810e681c8c982f2149acae5dbd427f9c72d2792069064b8655167510c4d58cad131e1f5e4592b5660fbb1a0fbf29108adb009d5cfe3b5db4a99e9a383a1a7ff9c3e0dbccaaccbef2147f454f08d2bd8a",
+ "ProofOfPossession": "99cd90e05a78747c441239ccda134f0dfd2c819236de26f5e8abd83b184775a8ae768a9c972569a0101317754086f6dd",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 145
+ },
+ {
+ "PubKey": "b15a178902dd77ae87b6a32f8edf8db54963fc43e44fe7f1b05b2955d74e025ad135e4690b4867b8eb509d37956241c1093c7e80df97d16fa32f020ed79645a82f04e931932c50aff0b3e0e6adb8d56dc2d1a31f3d331886f6f9a7fe1e84e25c",
+ "ProofOfPossession": "86ccf1ea1b350a9b322572895253af18687639365047a6a944084e9b6496665a783032d945164446f509d74d0c24f07d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 146
+ },
+ {
+ "PubKey": "8e7bd3e51afc04f42ff02b16231b635ccdfa845d0e0baddf12895ce0020343ca10164ff799f8e72c52467de81b36251f102c062079f29dabb09756dfe4192b09bb7dc4921b72baea2988fd67fb832cc8116cd7dac6f64263db0030b538c0a482",
+ "ProofOfPossession": "a9e2de0427eaa2b0d9f23802537591a62ae54adfb80df535af6137429d494299636d0d33397c64810475a0f92f091c4f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 147
+ },
+ {
+ "PubKey": "a60d88206bc347dcd4f54f10892751b01ddbd5a76985a42a3bbdcb10092b41da05c7139bf84d0104ac7bee7273681430145efb07a15e4dbafad6998b9299863ed2d59ddca997681512241f23117bc9f966e79081e10368f1c029e418f4866578",
+ "ProofOfPossession": "a2ecbb4826a689047fdf7512c3e36c35d5fa2d7f1ac17d73b396b23d035ded36bf66bdc18d610d11b99822198bd4fb55",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 148
+ },
+ {
+ "PubKey": "80732f4f57920b166ddb9347652b90a98d31e31d37c78848429821cb4d3035c3a3864d5477a64f78026d0086d1f499150c8dd661215193fce3e6fc881dc715451de4a27b3b5ccba38d7d9191f8347743a0266ddf42a788b709510a6506fdbc7e",
+ "ProofOfPossession": "81aea4a892afe9b6e21ce854944d7db755cb35ed19d5295f2495c72bfb38bf45fc0f58cebfcd505fec1fa6b081bcea51",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 149
+ },
+ {
+ "PubKey": "b14d69656677941ec036781d6a713e42ddcc0ba6f306e4f6432b8db9fdc11841268ca8434cf89bd6a2358d4daeccbcd500164fcda52b48be94e499098acd2cdeff008c22c1d3d35dc30f26ab649a6aa22e8f471f3f8c39f148fb33900a6f5ea0",
+ "ProofOfPossession": "998c14ae2a5788fd0efd5cb8943f53c1dff6b4c810173a443c56b8b65548bc2cfecc139a443450fecc8581da684478c9",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 150
+ },
+ {
+ "PubKey": "a2db94d00f83f10647b374006acb3892c881e0f7a546f7df272480f6d8824b915173da24077ba56ee2d245a5c778601d07e2e0126ccf6d997aa76066c76221b4ca64850dc899babc5c9e2490bd4be732b443741b07d8417aa039668eaf3a0c08",
+ "ProofOfPossession": "a6734cbe6efa46adc1cfded36f91f3ee0de533160cea67de725b50335338234250cc8b61bb2d7691abf93b0195f926d5",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 151
+ },
+ {
+ "PubKey": "8ac8b149d09f3608167e0f216d25f4b0ed1c0472917f23757e4f999ad30f1aa1ba00dcc9c5185ac8b8cf918755a5c6e101b7e5dc0ceda124a438ed301f6fd571bf2abbf248a7ba4076651ab3c3fb3b5bf1b348b08ad8dd0536578385a423f605",
+ "ProofOfPossession": "97246ac2883d76864bb28a07486043aca3220b09f2215ec5f49e9a3e334c7524de3c8e20e13a08e4facd3c03bb11631e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 152
+ },
+ {
+ "PubKey": "82bce70b7e72f22ce05fcec6dbf00d74a130db83ff2a3b9649a072ff69ea32a6f34b52ffe4e5a26fc1fb6887f789cd13183c1ddaf0d25bcd186695f0c96020f5c263a06d72d35f266f1183c02661ea57c79f0e51228a1eb51e7ca3db962812b7",
+ "ProofOfPossession": "866a1d9d240fea3f9e94bf0d37fb1f2fc10fed73a43bd13029f0692ffb8e3fc188159766cbc1eef8f6c9cc0d67bbda37",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 153
+ },
+ {
+ "PubKey": "a082fa04e73f6b348df86686342d494e79a5d498710187714987160088e86927685b25d0fedf5835229a9af6a3be860d04decb34b7a82ad4185f58930dbb25691689a9c95a169d10ec5291adaeac2a93a2a784c44a3d6be6c617504d5af86c8e",
+ "ProofOfPossession": "ac5199208ad3b39d2980f7b3f205d951e28da589fcdf689d1f62649ec92d3a9240389fb32a384715b9902792c7d78b2b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 154
+ },
+ {
+ "PubKey": "a12b6beb78daae75cca52124fd44c174a2a8f1a91a4d91edfd10bccff2547bdf4cfc5d96e25c2dc38f0056ea6c198611101009901210e48feab371ec37921a716b5d16347d0c095cdf594a3ecf1e93712ba42980444b52858cf24c9c8b08444d",
+ "ProofOfPossession": "b5fe7588da8c06aac90a1ee32612bbdc8ddba747c7471c0c020bef04e4dfa9d7697347efd66099dc429feffea6206045",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 155
+ },
+ {
+ "PubKey": "a12b329e4834d5c2b917c7e052fad0c1ad8ad7ac1feea0342ed9e5d5b58ecc54f4765a10cb341680898b5060e5cb0c0e18d3cf4d6bf478dcbd1f14bc3d383aadb8e5c673fa407b27ced02500ccdacca873a350a0e207910435bf80180df6c273",
+ "ProofOfPossession": "8c364ab08a0fe5683e6f583960cd83f772f5165f3c4d844eddf4ccab89ff5201af00f3fecb305dec651763acd1d69026",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 156
+ },
+ {
+ "PubKey": "a5f5363674eeaa5c898bb1db7f19cdda08fb43e8b2c617b17a981571b034d76d019f6e8d30533de1fa805385664f35b807bb581754b2bd75a5f13ab154b73e373dec80443191c254fe12b091de650d37c997e1a310ebea3e114e61d74f498a38",
+ "ProofOfPossession": "a97a5e61fbe188f65933bb8a63537c2e55b3c85fec76579a82eb720099426173b45f7e286e271baf834f1ae5a2e4124d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 157
+ },
+ {
+ "PubKey": "8c032ba1728daa76f1a71b2f5d4175452f205d5ae67c9ce2c96b7aefadee9876083662bf18fa12569d4b1596494438b70a1bc24fbe652a0671cfceff2cfb72cfc9dd06372feff46b5ebc934e0aee35fa5e906fb6156e17664669c0ad07c9600c",
+ "ProofOfPossession": "a2e835cf615a2863f2312ef31196d68e488bd773a19a7d6579f4f0a495358069759c5313ebf26ae7e866d9bd5ce6fbe4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 158
+ },
+ {
+ "PubKey": "80344fb28308996f047aa41ce4085294112bbf110fbc95dd238f3daa888dad4ed6d551e25abd958c46253d39cdb8e6551400371d7e09411753b6383a3c9fdf715147f032292fa54c3d40268a2b50c484b48ced545d6bb896326a62b26f7b3604",
+ "ProofOfPossession": "89e9048b6a2f7c1f3d8b6211d5268d7ac16a5ff2c99ff42126bc836a3b19c4498e40faf6fbcb0ececf1f083e893f8c7e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 159
+ },
+ {
+ "PubKey": "8e220e079f28fdddf4cf4f7ff7d6d43091fbdfbae42357a232cee543a755e8819034998be63d59bbd0539ec75327f1ef0aad395bcf63b2976a3195fc49b2b435d88b4aac0da43e1d79c128eef86e860ffbbc014e10c6d74bdff77f2de76ec300",
+ "ProofOfPossession": "ac18bdb065698f168b07694379e99176013f699d7b90d59f065570604a7bc4e738ae096f0ab18e579d4724e3b96dc2da",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 160
+ },
+ {
+ "PubKey": "99944552ecc26896421525f4452d016ebed4bd6ae7ae2b77eea123aefa44865e1dda54a3e1f46a8784d1024f8a7f004f0d232d9957f381734af8557c563707f9a94b03025e18471809e9875d2ea7e537803e9ce85bdca21ae71c1a8d4c3245e3",
+ "ProofOfPossession": "987fc3df73028f17c7a68993259ec1331d0264132dde81f62bd9dd7267843bce55705a6ceb53270d12b9369912d6e58b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 161
+ },
+ {
+ "PubKey": "9825e87cad5a943065b8f2629657e8b1245e632cd17fd08bb89f61f2612a43db07ab796cf9661b0d3649cb04f0712a3207001b98c4eeef4e312ae58fb5424bb105cf84c2c620fd72c25eb12513e937f7d21ed413e08734732e6c9b1cf9a363ef",
+ "ProofOfPossession": "ad15f5be95a99122dccead67a9ca5edc60f2547e3239f3620753e398945a976009d121dd3fbda73e5c0623878e158230",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 162
+ },
+ {
+ "PubKey": "91588dc53860b89a34d0ab3ef79c10ecdbe26ac892d439eee62bd17a10706309ae101afaa030c96df84d2b6ea782785600e14e60637dc07dd53bff52944feceb082927c742e4202f89e4ef624e4314ce3fb251b2be07577073d03d69538f3d78",
+ "ProofOfPossession": "b523fd6cbf8e3b051b913223c84941ad138926156a22960ec7d33f652937d0887731aa819a7cf9e95daa746f673e30fe",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 163
+ },
+ {
+ "PubKey": "8326d516e4d63e9f70a304f53c1eae159c89f4aa1c14bf825fb593db7e141df6d4988a821cb6c9be72fd95d9403654d1122840e5507b09e6a2a154537b1af4cd2312edd1c947c0b6f0f5152e7ff58c654ffa949881a9404c422bd6ce62bea62d",
+ "ProofOfPossession": "933bcf14955e56938c1e1b25796f30a6efa9efcbf51ce5371b4b8959e594a5de364e9be5dd6712a9df452a0b7fd35961",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 164
+ },
+ {
+ "PubKey": "ad4d20abe2ca5b198fecc2f6d79330d7ffb419a4aad0c21c1cb2594ee80af35f22c63a7c526b4feccfa2522d33c413a106461423cff71ac7507b5b2d21f6a0f72f36ac86d7c38b58d1c68adaa47e1e4cd57839ffe0e77d1497fede897729ffe1",
+ "ProofOfPossession": "8d7a2c485c8cad570adcbdca7c6bea2c8898bdbc37d441618e76d97671ae288dbe45defbf481e99faad184172a0c81e2",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 165
+ },
+ {
+ "PubKey": "b3c2afb758db3fee40f65218ed85b60eb20f6bd776ad9d100e58ca674222ce1319505db37c6bd2078a818ac2761323520d9161e2d3479fc73a856b141a5f2e851a8bfc7dc6872ef70acc424e1064340fd873abbbefdabd4eb03e3e93b79ca691",
+ "ProofOfPossession": "a26f81772a6a54a3517d8f6d9588b24a3d1bb0425db03e18e53d2e08027b533585b2b50144fc55c30622b726a75b8c0e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 166
+ },
+ {
+ "PubKey": "a2034821a70be3faf9d74df831ec0f9010256dbfecec689fd726f539e68ce28d29c8acf05af0ffe5f31a13622e72585507b23d6aabe03c9432a5bb6553fc9b375e53d07b83da468d9d56733727c23e557e2f672d0bb2d23dc49e2e78c8acddb5",
+ "ProofOfPossession": "8dad67f13485dc13f3d387050441c36929fdea7a0382703f0385b5fe98e8024d8ae8eccdc307f3023b99d827c83d4a4d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 167
+ },
+ {
+ "PubKey": "91c76f0d3ab7f6143211d96d087378b30b517a2b55a57247219585c7d27d590ec2878b57464cd8f578ccadeee87d33fb0c7541e6f76444d11ea242e0128d3c78f5ff7d69b3e6504033e0982cab34426712ba1ff8a217cf2dd225dcfb3f0083b7",
+ "ProofOfPossession": "966e9c23a96d280df8eaa50ad1c9761601b333f1b3b26a84b0fb0c3f2315f03b3d5fcfaf8bea4cea64e82e9eecc7c2b8",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 168
+ },
+ {
+ "PubKey": "97f85fb70103189d843bfbe3433239d3b68c5939d8ab44c65a66a94b09f8a74c4695ad683ef50c33c39c85ce15572f5e1658f70b05d53bd77e83b237a1ab61a469312ffd898a9ba45c52ff6daacd0e09ea8326d08d77f82869abc977b2f2c910",
+ "ProofOfPossession": "8f1c7bb3a1075ac4d1a6be5e9508421aff91c68129e23ba5111d92ca6527a1d161d0bc9d77ca5cdd7706ab8ae753fe53",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 169
+ },
+ {
+ "PubKey": "b12e35a11c3366119ba6773c5cee54c41b2cffff9ad697078b62d42f5d39d17bb8be28b1c7486a2695b62cb79880146f054c460a711f1999381fd0218280738db077c27f4e046b6694eaf51860b82b9ef9b65c32b1fb3f272434d6cb1e593cfd",
+ "ProofOfPossession": "a1aade06a5b41f2a3fb5e5aa99ab29be00eee274dead4f97c818cae12398168860d1d6b87713108ee5fd766054655cc8",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 170
+ },
+ {
+ "PubKey": "a701caf53ed5651c0922ba0e9c06d916e0b3bdbadaf6907db4663438016d532021854b20f612cccefed28b043e221f7004dd25f223b049bec2dadc470959aebfd43474733db9435bb180ecbd5de96c0b8c2fd755d5e80a16d183a9f54b605369",
+ "ProofOfPossession": "936a15c5d10ccd524f39abaf53592418ed0bde978449b3a2dd76cbff0b71612af182341ca11bbb6882316f6a51b7964d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 171
+ },
+ {
+ "PubKey": "a806b4404c4a4a99a90d274ed2b4536b45b1b8239560f9d4a58c6548db3649fc96f4a90001aa5f85ec455c80f4e9c18913078a7fe7c1113f7a2e4300aaafca09d07623fb476a22dc3a8541341e1b4b572da6e8a341a48f3cb44e4af2cb4eb109",
+ "ProofOfPossession": "b964bacfe0b88cbe8ae136900153c0cdcb4fa805066009776c2e8e00f5e4113077c0a6f6b52cdb2b1674400e0cf4d9f7",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 172
+ },
+ {
+ "PubKey": "a68afe6b6beee54cd8ba3401f4e58a0d821a9fd36bd5da881d4ac6cebf547456c9a1aef0456a2ac73152d77b8594ac3e16aed4569d94dd70bb2bf08cab0960209c6f66037713d072fec8345e6b324685ce896b68196c496fc182067bf4dbe8ce",
+ "ProofOfPossession": "a87a9585796ffdec7dca7eadcf15074695398d9dae726c9e14f0644531d83fa1a1d60d360a56f18ee06cbfa67df448a8",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 173
+ },
+ {
+ "PubKey": "8bcf066c7514a91c3622b53d2a77c491757a6ec066106004eb30ce9202827e445ff440216041f551ed75c48dd9961c990a3c4aafd3b04ec10eb68c6d66045bc3ed7f1a36cf97b737cb0439112d3d72511cdaf00b73f1db466ab2043b85be2f74",
+ "ProofOfPossession": "b85b3737e44a148237b4a24b935d84a64e82c0ff22659fecb706b0d680fdeddbb6f029627a03b1f1ed380c0d0119ed44",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 174
+ },
+ {
+ "PubKey": "a7140eb969a1b18e81741976e7b3517768745e50f650cc86fbf8fd888afd9a1ee614bcda040386029af1be174647d8b70684970647c9e832fb2b266f02f669d10d0bf0226a4e9f18860d1b2ebb88eb984c767c82d438cc63dda7ae086593d0ff",
+ "ProofOfPossession": "a6c9751acb864ac4c7b2c2d2f81de138c6dfc11194ddc85f53259b36d9ca1d35538054cc95024dce8d1da946fc2ef2b4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 175
+ },
+ {
+ "PubKey": "a128cc053796e5fc5fddbb2b34e84e487f9bbf6ea3c757af4c3dfb17f81232f0c547bb7d373b29070665ee7467b1a5e205fd8fed56917b3d64ccf1aa0e63fef505eb43ad0b46f6408a3ac671ae890e3732b9338b3df184d2a74a395755553983",
+ "ProofOfPossession": "8d8379bc7921eb20048094d91b1559d648352b0957740320778ac2ffd2311cb78cdbfa7311de6ed029c4bf70276f7829",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 176
+ },
+ {
+ "PubKey": "85f4ef0310e2019fc0a90e223ab9e12b78e1c491d9ae01f2fb6fa05b039182a52b1a36fe050a0eca4ba91e3a554503b31758d3d9a6fc3ccf40562d8a08fa4539962f82c1ed8cc6087224dd39ca8b8035ff7c40f353d7061daacfac2ac3f38c6f",
+ "ProofOfPossession": "ae2bb72620103c368a39a529ce48e597d213f420627a883580e4fd04798fa542ac63d21ad7d8e6c8f4baab5b4fd7738d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 177
+ },
+ {
+ "PubKey": "b9c4089eff4126d40d65baf9b76e9ce8e01c475dbe9deae72e549015ef4b1d724d7f19ac904195fe6ce91d437953dddb0ad94b25e727551d77886a002f4541161cff26eace8a0ec693d06689031685eaf6f7a73f370410830a37c29a4d678b14",
+ "ProofOfPossession": "8a3d34cce76062bd4066b9f9b4723c7ec3a97137731efd30d454a76ef46aec1ea22290a57bbd5ed6b2b600324b093bd9",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 178
+ },
+ {
+ "PubKey": "8b52c1aaa57d1309b8b83cdcc6d4a96b105eda37a1aee51f2088c0c8a4387ad4cf9e2ff7a59dfba3619bf9a0e3c74e38017c829ac092edfbbe8dddc2171ffc47310297a8fbe8c3b777368d6804690c50e3b78cf0f973d2f2ab8873780ef28658",
+ "ProofOfPossession": "939fd1bd541c5d8ff3a1d3dfcf6c8ca2018c43b504861332d84d3dd54dc6e33237b94036cff6034f40218ca1af1e33bb",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 179
+ },
+ {
+ "PubKey": "8dab360c7240b047ce7c46c337f73c7c909096a7320b04b5eb8d966f40492095a286eb19b524edfaa69d4a62952438fa0b017e690c832dff4b39f404efb7d2cf0bef71333e4492e4fb3ff436c67d2edacd0069305097957cc56c670b1c512c27",
+ "ProofOfPossession": "89b928992bf8054a2b15a2bd99b891b0c654dfb2bbce7cb558b57108f8947a6a7a5ca6c5eef05089105552b51f4d3fce",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 180
+ },
+ {
+ "PubKey": "86fa6d0cf4621e24c30218f843d443667ba1d6b693d52247f8b0027c0d4cfd3986d049bd2c94ae67f93c6baadff0f36100ccb3e117d1484467e0a877beee1a4ea972962163c5e3ff2d724d9f96b109050a38dc3c3621bafee6d1300398f5cba8",
+ "ProofOfPossession": "8db50f93e20364182df9fff6ae2e1696c6deb4d0ca6435440f97288288b0f5b85d2b942580b545753df899aae8d683d6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 181
+ },
+ {
+ "PubKey": "a4e90c5555b0f5f4cc85f4032b36faca1b43cf8b727f5c12ca281c34a0f5dcff4b9748e55c47261825dc86c96af99dd109e115cded89c4031d44c1f134c25ee6cc2495a904fea5e3cbdcf831f007013409ebd91567445028968110d072ca2f30",
+ "ProofOfPossession": "97f44fc60404ca8c4f953959e7ccd28318eb0bb9f4dea716a5028cdcc7d679f481641564bc8745456babf752e063c783",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 182
+ },
+ {
+ "PubKey": "b4805e22cdef29c900bad2b1b6a098c6d571245d84fccc1731609a41fedc0c81889fa9dbea1f1da4703d4d3abbacaf9a085dd14b9417bda5cc7d1c25e887ba3adcc4c6d5ba4c723755d56460f6111d936973c5e438ae11de7dc8a073995c76d5",
+ "ProofOfPossession": "a5fa429a2fa390a36690a66cea19b96897ea9887f433f17e548a8c5d132a6652224ebc0e0c20bd812444ae233004abd6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 183
+ },
+ {
+ "PubKey": "a144a39ae3eeeb5ac3b19db6f4d5f1933c5048754b30067c28240d5b9ef8d6f27f955e6c3700eb3b01b6b617ad9859df0c7e3972e3fbf4fb380404ec657dd9821c28019ec7a7e82cfd0a9915b0029e7d67fe64dbc2d34f4658bd7194aca7bea3",
+ "ProofOfPossession": "801cc2dd2a3bc48389fb615533a865724f19103bbaac863c3d30b1888244b2dcf7d775970223bb92803b6d52b05454ed",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 184
+ },
+ {
+ "PubKey": "9273698352df71ad71bacc5dbf461bfe6067d89928efd918b82e439612c09080a7b332cb20fa96a4ae7c339d3f86028b150a811808c793d5007379ee42662931220734bd9d3955b188a3894514c7b065c294954ca85d58714ebf83bef1eba72d",
+ "ProofOfPossession": "b6b57889062e3655f5e9860e97c73651b1b7e3807d641830fe1bbef9bc15e8f797df4805b3180a0c6782a023523bfc2a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 185
+ },
+ {
+ "PubKey": "a21e1f0a2fc66fff01e5ff9f1479b726b48be9529506f09ce6c1e05f5a9077e2a2f3f7f4d12b48883a6ebe23284281b10d2bdf923316c674f34800f94442b8ab342fcd97a06ddd0a8c8e0ce3ba4f34292330c7f81256cdcc3b7a01a06af7040a",
+ "ProofOfPossession": "a74c0725ecd702d8c4795abc4d81d3e7b299731c26312b363323d91a2a18e28ba91a9b5cff5db3519c6f0fe9b2c62397",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 186
+ },
+ {
+ "PubKey": "ae6766063c95312a9c38f7a93887ac2c4b47b004f963e04b38335a0e8946b541d2d722f16fadd1951d0bc2c35b986d8207cd17a876d42ddc0d1d512116abc90740aa679814bc9ee4b5cd9b343921a1ade6466a9bf97dcc13c250008caf178cfb",
+ "ProofOfPossession": "ab16679097538605c009d974891e28607b1fe589f979342cd789642b7ff073485766b66f7154e40cf451db76b0792478",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 187
+ },
+ {
+ "PubKey": "983c9e2403338d06178d5563b26e631486ed7cde3142a8ed6c827cbb2a50027fe34397ab8eaf6982491f0476c90a9dca05ba6fe000f7b17736dfa8e24a45770fda33f5d77a2e0faef801e0963f4583aae0b8e237382b7eee6e52be7288dbfd8a",
+ "ProofOfPossession": "8e7283d2170201423f1216e55c63e6215ff8367d0c0725d28a6eb291e01f05e98493513c1dd8cec65a3573a0f01eed04",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 188
+ },
+ {
+ "PubKey": "a33eb80eb15cb11475290145ce1ec2cd02e3b5babd32cd26042a71ac35dbd781577cf03d0376c767d7e59c6939d0cc4e1250e8e6d9831947b9a395ccc35db28ed073820e77b8196d4d2c11b0513f24e794a5aa8a7bff949987c1038dc8b7fc92",
+ "ProofOfPossession": "856cda9fec5cc9a3fbd82dd63b0a328f88b6234120c3b1334cd282f8ec5f27141f7d752cb4cf64d9b2749fe2000c2fe4",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 189
+ },
+ {
+ "PubKey": "9712f56a2354458efd878793ad3a27016ec8181d97d4f66b4260eed8175f558320facff24ec07786942a07a221e3f2080ff50b31744030462eab41d48e4f9de907b875a59e7ed3db08b42b9394f5b4896d5cd224fdf6f2ee2fb6fa47e5b17221",
+ "ProofOfPossession": "8fbc69bb690f36a0faecf4420414cc3dc26028e9e39f3fcd346915a7ff9bfd6ab4c452fee3716a8f99f99348d6848ce6",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 190
+ },
+ {
+ "PubKey": "8812210caabd97621f1cc1381db8f797c9dc70a7adcc2fe0ca83bcdaaa963c2b091583652025c95ce94654585df6a45e04e97024f3a22e22f20f6ad597451a4427122b53307414e213a71cf99f45f1e122704744291129364bedb7004f2d1eb4",
+ "ProofOfPossession": "889fab3d49d3d16f910baacca7126b6a4bcb380fea9d5e91ad1ad2ee9691824dea03b6041ade9db31e680be4779f08d0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 191
+ },
+ {
+ "PubKey": "a01f957c13abd8be2cbf9a7ce79358caf6733ac361c2a253bd6640013308c1cd0092bea9481d5bffd9a17b5067243eb71185c562e42fe17015173f97270aea902e88ab5b49702f6fc11cd538c4dc0aedf801dde32e0abe156d07e7af3aacb4c0",
+ "ProofOfPossession": "aaf5fd723a4a8825c5ca0900c32748dd2c2feeaa34e659d7cf0b218fe038bcbde307ce9b15d57666398435d5eb4f7b20",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 192
+ },
+ {
+ "PubKey": "ad0248181fa421753d8b3d6affd69c0b4dffdd9837d71019e875384cde29a940322dd0b207c7570043b687896e377eed08dbfae4c94bd4a45473db8958469011666598b33706a05fdb399f81a97e657e866848caff22f9f68f7b2debf7381991",
+ "ProofOfPossession": "a514791aa8282fed4631aa211535aca9e45dc350a5e0e57597c4083e6f4d34b76e9dd3affcfb43d5e9182131564e3fb7",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 193
+ },
+ {
+ "PubKey": "b16bbb881d9eada7125e1158f88d3eb2e5875e28a52e2ed69a9b0f55196eba484c216b27b35e562c1148a49cf5cd48bc08a0ed2f8bab19e11af8866960f365f475e03fe7ab91e25cf162ff9bf812f75c1fcc72d1d6efbfc1c56f50de9492d63e",
+ "ProofOfPossession": "b37f94f4851f1e868a204afb623a70c030d77640f77733e1608eb4cf85fb7f54ff0424f7c51456f459be63959e79a320",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 194
+ },
+ {
+ "PubKey": "b1dc7c6f48684cf39ed816e32473f4cbceda6d976074d20bdd523cd03b0001b0cd7e800dea7e2b82c8a061a6dc38d4e7166aaa67b7dd7a6ccab967e79e84b4790ce58df6257c3397aa9b2c1ece5f4a015e8327800ca43d0d01dd985a39d8cb42",
+ "ProofOfPossession": "97c27014405cf98584b8c185175564f7bff41144b4ab8681a5f94021cded74dcf5df214f58bbeb5f59b17cf906e64bdf",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 195
+ },
+ {
+ "PubKey": "a2ef5d0110a665249d402b1bc4cd992e08937b0345a77e98740d33e21efefe21aa9305e47acf4d142fba3ab4012544fe077c412a103f1ba06c0d442af7007c40c61d9df4238703f9a8add7383327de90fe31027ff6ca1f77ac2fe69c0b1e015b",
+ "ProofOfPossession": "a5d58026f6181c0c3f2438fa71c1be4f69fc992eeecb505cf0c6f6dfba60ed46d9fc2bbc4ab3356b81fbfb0d5cc80e82",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 196
+ },
+ {
+ "PubKey": "8453ec6b3063ca434fc647b34ea8f8afb99524ad51c00cc25ae774217be461d5bed5658f3cca040e6008ac3458c9ade5124c7bcd07c65f894aa700aa40788b26d34f751b7271e630a2bcbf86441fabc9dec2b1ddd38bbc182ecbc23d66424e1a",
+ "ProofOfPossession": "822a3be9c0d00ebd6e06fdb07c97fc8e3a0b527f907c2adb813ef57a4e5ab60ac89f5d2578bdc8fededbd98a714fb88e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 197
+ },
+ {
+ "PubKey": "8cd3c3ab25550e25d48711e890f8a1e2cd1f8baeeeb02e85ea69d8239774fbe901e398411dc150b2d29c73beeb6a92100bf26cb6cc1234db1f93b06765f9c5a69c632489e05d2145879a1cbd8a216d3cc5291077bb91641989e1e64467aa20c2",
+ "ProofOfPossession": "8ba878e5642571855f98b9c9f023300cac2e584a93547124a1e08df3cec30e25f07579cd0f40e9105e3e49a60c3eb21d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 198
+ },
+ {
+ "PubKey": "ab6aab811e18bfb4ab1bdd5ce0b3ea0c9eeb0ca3a96e41d3396f65e79254fecf21fb01a6d9d6cfc5e0977ca6f7ba685f123747b767075fe53f53e29a172d7fd639385da776ed439d9bc26dc17e6f7322e13a65c472f6ce72691595200c8fa237",
+ "ProofOfPossession": "afeab563f25384a4a9db2e4d112b4bc4550deb3cff80e0ec53e3b9576f6be59a7ef174e61ad33014d7c41eb2f2af8c87",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 199
+ },
+ {
+ "PubKey": "8f349ecaea1dea1a71f22385250b1cce05be0db04f554af93d69724a97d852b76e1e63d2bbda9874d3d894c3a1a7d9f506d622be182aaa5a277d46e0bc152b05ee82675fe2741493bd11756c983e79ff3994f0d41b5c789f6be670262df678c2",
+ "ProofOfPossession": "89dd815a22e81e3c45702c62082b1a50317321210b4800e6c549b4ef1f184ceea3aad75312f3fa7fd2fe72fe4b1efa2d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 200
+ },
+ {
+ "PubKey": "8eae0da0416501f055ea6966bbe858914a76e7ac82d1b7b92dbff4a9fd78ebacfe41720926415b0eef1824f7b9e156fb0129d3d38987b2d78987f0c6fa9570c4f508d32faf1881ca7d763b92d2d615cb1f82a74aeeaab7f21e1ae5f69be9a2ca",
+ "ProofOfPossession": "8a6a247b883b2f6ba775d56095efb37ca2bc572e6d4971475cd513ca166b831188d47bb1fdfc8d0cfd060a5ccb3cb039",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 201
+ },
+ {
+ "PubKey": "b491e956cc7432c2f4d17c3b8c2f37802dc27658adf398cda9b6499a68555ef1ad0d00b3315bbbe10df38b0ff07c9b590ea385f43ae6a83cd30035b0110b049e5eeb5da8e46abdec5091a1ec5bf33a6c3a9351c3a85b1e8b9f0e7cf3aac393ac",
+ "ProofOfPossession": "98d194c63fd1afece458164bb44094ff74c074d0a3091b0252354495de3342d14f79167a5971a0d5acc41b08d1508f98",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 202
+ },
+ {
+ "PubKey": "ae087f67b690441504884a3533113593f2eac73830ad0fc7aa0772f18d3207356c1eb96d0873b3ec60a146897cf027a3101f78dae603c38467a5710c1a5341f68452f356315672ab6108d8c75bf12507c4b45f61332f5a313cd5fc9a0ff2bfbf",
+ "ProofOfPossession": "835ee6f96cf4ad8bfafdc6f7977b930aac3c3d1641d6aa6c93d740de8b425ec9dca61386b19064a18a7cee32d3ef3f43",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 203
+ },
+ {
+ "PubKey": "804a227a42e83db0f45011d402466b25dfdf34b655a4561aa1cd550cd889811b7b9ed76f21f81e677637d2fe4c819510161c2d21546fe7b3b59b2c22d951877a596735aee8b0d3d4ceca89d72dd5c08feca59345ddf7756c18c869292bc8d635",
+ "ProofOfPossession": "b418c31c00275eb1a74e78c98efa432ff66f9d8075f77c4fff0a68dde122c528c51c3f41bae06c132d9f78f43595df3d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 204
+ },
+ {
+ "PubKey": "a9310176b0d9d930852f3a3d2b64d9a1cd861cd2b933bc20ee2eb19f8de937217afa744aa29a892ad71feb222700bc72087f2494278d1c1cfbf153196212980fe0c092ec847eccca9e75f86547f1cb2e131376824eb6cbad0dc4c6e945100d34",
+ "ProofOfPossession": "97affd35b3bdfed2c21f8201d426dacc249b53d8d2d6468022c2a4409447728caac8b29812e0db8861e61fd59e5c7219",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 205
+ },
+ {
+ "PubKey": "996f4ae9ba68faff027e8c620257ea67acdcadbcf11a3fabd13d0cf319588cdcbfb879fe6d57143c3a400183e2436f9119993d2c2d27cc5fc62f7c102ee8ce3f5e555fdaa34535a64ea8576f9408428326538cab90098fea6a5edfbc61628efa",
+ "ProofOfPossession": "b11ee19a77001bfff002b508ad08411954578304ba0ff7575c5a0d4cecb10f348049c75a1441f5b134ca0e3fd237b579",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 206
+ },
+ {
+ "PubKey": "81be3c2e38205991d0eb1ab06e0e7846540223b62d751c9520631350c32e7fa158c52ecc6e0b296a9a6c9d897a91a5a11846f6752be803ccae836891e44690fcac920edc9bf868596fa9daee6e16603c331d2c106b722f3f58a33cab738a1745",
+ "ProofOfPossession": "996c451ca2f866545dce5f6916e61c443529dc88264a63ac15d4df0e96d252e95b14a0c201bc7f54cfdc357d3e512128",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 207
+ },
+ {
+ "PubKey": "a076c8809a2adf7c2fb43a97481c9e1a4f0acec082d3c979d5cd05428056dfdff32ec036adf3c0907b2bdc3d6fcab812143609e4a6017a188dc82e81b31b6f98f5e996b581819275e76d453899ea99cbd41039fc98c92a7412a46b5e98866e52",
+ "ProofOfPossession": "ab8a96a993bfc7c0619ec6e445d2b21525a5b29f6d1fcecd4229f0094a2c35c77a90be1050d18dfc52a72554ea2bb931",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 208
+ },
+ {
+ "PubKey": "a7b0bdbdd6a4f1fbbc418a7ef572948e850b2859b86a31e19ae7e30dcbd32ad577098f3770c11adcd47018da3bd3ae7d05038b0e231998418a244dbd9f5e00040396741c30fdbd316e763955518250a87c1534b714b0b30e86c9a9b711978c45",
+ "ProofOfPossession": "984cedc41dba7bbcd7ea0093ffb95beca718d352573314d2e0d55d86aa6b707e9e2e8e5ca328eb0bfd9465193d59e9af",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 209
+ },
+ {
+ "PubKey": "919fd6037f49b2ddbab3344990a286a7bb0b30b594547e97db01a50e228cc653ddea215633cefc329215fad3b41e1f0e0f772a22c6cd964ccf67dd8fe1f01cb5866b319a51046f34e6ea9520fb66bc219023ee608ca83af2ed78da58811d7479",
+ "ProofOfPossession": "a0d797d1fd1d559cc4106b9a6110194a4aa4f96fdb803e4c3fe269e489c81bd9d239d1c60eb1397bd05d46d8568d00bd",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 210
+ },
+ {
+ "PubKey": "a6f49e2ef1701e3074988921252b328aa8180fb562bb9b27641e7d2034917a5e3db37a243694b9a3d0d4c7aa093d4838036842b64f3fd66e77175ad1809415c5f31476ccfaa779378aa66751e54da3fd3c88859d304d9f8fe074b4087958e6b5",
+ "ProofOfPossession": "a55601c0970f421592b8ceeefae45339f62391cce3910e78e012227b56763d0fed2a5e7ba9f7c00067d806c06175fe25",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 211
+ },
+ {
+ "PubKey": "88127091e147c8540118af9f089bab90ff06e4a8d1aed5fb8c0eb0358ebb021d1adf8ee491f8bc54e14ca1f03a4d4eb60a726050a2dcfc6f84e3a25b6a77a078da25303f90cf453448002e477877551b4a862d95a886b1ca71087985f17b4282",
+ "ProofOfPossession": "93321058c6e7e93338a0a9f48893d17ba69ed9d3585a2ffa3add34dca5bda6c8e34f2979590221866866caff0793eb9d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 212
+ },
+ {
+ "PubKey": "82db2bb9d92d2755a41df48e04873896a3f7d523121c6188d388076eb9c2f4ed259939b87b23630ad884543a8e79674a07ebfbe0a6af4ee92c59334e78666dbfff9ad2cdefd45656074c3ef0f09435cbb8873117ceee88283693a56061b4dccb",
+ "ProofOfPossession": "9910d5f734e0f3b500ce3fe08dabb28e415d0997962d9c44a59ade7761dd69d26229a5d2e5a7327c09db870f2f952718",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 213
+ },
+ {
+ "PubKey": "9403f6d797a6eb131d93b3528f4d1db6f641bbdd790559bc324a5196bf4cb661199b153d3b64b5df64a1da783121deca19528bd3de676f36b832ce9c04b4e7f897b25d2bed1b3a49a37e0f2cafe4b08dd74d12706cb31ab3a6459d6513f0a53f",
+ "ProofOfPossession": "8fa26ddee8a84fcb9c88602d1c6c62dd6137f006f769fff780662560b071df91906e5a1b77d7d9811afd628eb7fcd8c2",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 214
+ },
+ {
+ "PubKey": "98693d3693625e7971ba3a82f3df36fea3598a058ad0a7b53d1c4cb20eb06af720fb4db0aaf095cdc9d73bba1aaf0b9803d679293d113bea63337dd6467cb911a76f89cd8ecbcd4c623e8fae2db6d55bacbed011710c88e794722f455d537275",
+ "ProofOfPossession": "b4f66151370725e5e83d0aee604044bfc92b0348ed76c4874cdbd8961fe4a6f2d361141e0b9758dde500eb4500236cd8",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 215
+ },
+ {
+ "PubKey": "b600e3fb381cfbc3f1e1151b947e76853e8ae6d0fc9b405d96f6f0c976e6b8c5885c10e679c4ac6ae9578f35dedb5e75046dc6179dcb84d2e93b02c97e96fe80adb9ee19a5468503eef0eb88f27a9d8c6f13f11ffcf3d3a31c57f23c963b4386",
+ "ProofOfPossession": "8316c8b0392c7998ca2ed855238bd4d5b5299427bd56480ab0b968a8c5d4fc7f4559376ae84bae124c94abb3b770f165",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 216
+ },
+ {
+ "PubKey": "99cf351f8b7978765dab4dd8114533f3cdd48778f0b5a97d957a1d2e79b4bf5a52ba785c3bbb6468df18e491dc3a70d914436799329ab5f3c222c42aec1dc66b79bc8f35bfe959f56783823d9993e489edcb4f89b3dd21d1f572caccdbcfab84",
+ "ProofOfPossession": "b26d9a56bbf56de52b04d35a421603fb3ca879d5ecffad16658e0f2b754d1ea2cd8b40a3ec449c8e62b04207a30210dc",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 217
+ },
+ {
+ "PubKey": "ab526e194b1d4468c9f24798feaa4a88a6ff6e3bf8ead05b0d9cabca3480d49d175508ec973e09f9be8bfdc178d8b91e038571f345bcd279b5784b68317130af84a04e05bfd503ff1d4f0fa3a2966c9cba61ce0dd5d38dfb9aa0139dd915b90d",
+ "ProofOfPossession": "94655d01ebd6c0681bcac08795e275b72406e721045665ffbe6cebcf480502bb27698212d9b1633b337738c9b5780371",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 218
+ },
+ {
+ "PubKey": "a4c698b8a7c530633c7139538e3471402d10e122ace2a20d6e368fef9f1ad300c3ede703aa783371a31a8d2e3390ecda0b8e91c2baae047265779423bafa917ff3068ca2677426aa11ebae74767d6a3c1bc370b9c933368b8f8befff4db6b356",
+ "ProofOfPossession": "a6afb8a1e10b69acacf33c13f2d6fa43584e88ee785dc9609ff1118be3170a201e17af73a5311aaeec61159606981440",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 219
+ },
+ {
+ "PubKey": "87604d0ea2d6a3e2d372f312ff111d6e067cf2c6b564b05e0171e397484c11707da6542b727e3ddaa1854b6a2141dfdc0ddf2f9fd3ce7ad2e6decd9aa1e7d4f642c941c48cfa60ef770241a0dd33119d3e20f7c922a0cab6ea6ce55674cd378b",
+ "ProofOfPossession": "86bba10689683b3671f70ac832051538a8b66462a22ff9c02f37786ea3c39f0b4670053f3d46a250c1dc88eb933ebea9",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 220
+ },
+ {
+ "PubKey": "8f30fde3c94e8b7330d0dea7ebed284bd008f2def046890e558e10e1db7d33f83f73ae44be96e81ffc00f9b5b43a29a31849af3ca5332fd8152803aaacff00d991890404d4b5da1c98fdf119f430cc9641604fa188b53d8c1878aee798893db6",
+ "ProofOfPossession": "b895677d5adc8f56fe2417360a206e9f189b067f9e94a4f0b77c49466dd1a93c4d7b6cb6feb126b72ea5bc747ceebd6b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 221
+ },
+ {
+ "PubKey": "b2532ec3b175187e83a13637115fd6c4860058cf52c986eb8d6d7c833ee08dcfbb6b8d7c4ef561e21e5dad7676239da507fa92abd633c48908504beb44f805030ff969b520cf825f40e50daebb09278d9a52e5b3621eb9f8caf47116183a525f",
+ "ProofOfPossession": "97c345189f0ad6a37dcfde2108a4ff19fbd193ce50db6cc0f8c9caf71f7d56afdc1e45e10351d4087c676bb73888f48e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 222
+ },
+ {
+ "PubKey": "8b2ccdafdd96034d283f21ab632fa62c41ec57bec789300f4f7472f08547125813153a05b49877a0dc56b436421e8fa315e30cdc0f3b0dff69bcae6a3c4c2ff80ccd7df8561956cd432c14560fd3251cd91b863f95dd30835baa15cff4d4f0a8",
+ "ProofOfPossession": "aa9a0feb12260016ca01a72d26741679481cb792538bd79817ffddb3f39e4f7e6d38482bd1430ec8457328560807e4fb",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 223
+ },
+ {
+ "PubKey": "a8edc0ca377e1afbdc5b5fb301f61a9f2943ebe2b96669deaf4dea7e8e0ad8cca82c1d4712d32ef14f30fcb0cdc51561038f8ce07449bb96d5e63825e3160aad09f916c1ab1cbdd339494b62fb433d6618d1ddb9b1190e7af7a292d61f446199",
+ "ProofOfPossession": "b729d9a5476ad6ac5de0dc22805bbc39a12d38e6c235fd78868b45c0f8b92190cd3c1d9116431cfaa969167ef82198d5",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 224
+ },
+ {
+ "PubKey": "822a0ed41cc6ba22b83d984fdbc6e64e43393c11f7f0f7f86560caeab430de50800d0bc277e4e30254a638da9ee5d272105eb82e5dab114f6cea2892edff1dc84d4db012f07e6375e5980f48b6d8a8b5e0768d00ac32a65bcbf71abaceeb3515",
+ "ProofOfPossession": "8d6066ca7994bbcd04a9c5429db1b1df923a6677ae4ef166e117e0ac909d1eb3bd3c2774faaf3df1cb75904b3db8733c",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 225
+ },
+ {
+ "PubKey": "aa05c013131152bc841421ddb143ebf225728a25a702f6d3c658b1eb717e08ac8018a877e35f8df79afa777ce34ed072177f8c94672c12eeae0f14c0e92cab2bf5f7d7f0289858859bdec6f7e39fb63f2d4741b4f74bedde1b9e50ab2c7afe51",
+ "ProofOfPossession": "b341f8bf7db32c3829e0a177b508ca9b590db5f5d0397189a09f87668fc58e4cdaef88f8bfbba844b4587e0a49e7010f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 226
+ },
+ {
+ "PubKey": "87f3aba4999f4fefd21eef06e946afc23142500bf5eab74b047348f198e8f9fce56811a299d03b4daf07a7a25173ed13058811b3e5dc60e468b4a33209393159896257872d8381b79895f5b7b96009af5112006232c52f6f2e22bb8ab692b958",
+ "ProofOfPossession": "b07f37ef6548ff1e05dcfcb73c8e042f35b8984e0bccca2c1fd5ff42a0f73097bf2aa9ad5b6644efa1cf1ab540f5f0b2",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 227
+ },
+ {
+ "PubKey": "b8a52babc368063d0f62dd1b8aa8326a046bbc40e48c3281c48c5e117cc81be992b9fa9f13292d5bfe39aa9bf0db25fd13636711866f5c423816535edd3fbe0a136738509582a2aee89ffa149754452a7cca52d1fe5c31ca84fc145fc0db828d",
+ "ProofOfPossession": "a1433e94f58f6292e911398ad89a26e74d75c21a423d54e9ece25a0f21a5d9b26a4eab2323af4eb8290e731ebc1c1c2f",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 228
+ },
+ {
+ "PubKey": "b91e8cf60a0eb0763f8153ded8fff52aa80d971cd5b11f3167297af1c259497c005a8223daf53e3a273fbf18d39462f4037ac939fb2940a8395c2e920987dc77dea46bd99f00870b6bc8bb03991d18e6ffec46cde1b4f45a3d10830532d96351",
+ "ProofOfPossession": "90f67ed41f3a02cdc0fff0fce8ecaf77f4787098106ef350ba854f2279d4066f32834f913e5ed65cf60e167675ac8224",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 229
+ },
+ {
+ "PubKey": "a8b12d094e400e4dd909a09cdf55bc2ec6c1959405940a2d96b4e337364f15a0345bff3eebcb2a0f29fb3c9f6e99dc7b07c10770f25e07b0a41b624048ba6db4188e1b396ee66fb28cdbfcf711bebd5948ff36b2beccee42e7e03cc8a655b1f8",
+ "ProofOfPossession": "94431ac7b103f80ed68ee697cdd4e868b5b11352ec83ee6ebf9114fb97924b75974ac93ca7529a5ffb4bf1805546550d",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 230
+ },
+ {
+ "PubKey": "a85b754d3a6902cc7ecf5fcc0d5861104392d993d60109f553eb08fd0a739c858182337d9bc81ff8d61075aa333497ad0f2bd15d243cf3dad1fadd90d9086d0af9c67ef39e6acade4943278571708ae0001f217f2d66e6a7065f249e7e753a47",
+ "ProofOfPossession": "b4986ba159e9db173162c64610d0203891888bbc7b5791f749fd9274d8018ccf477726c096dbca01e2b36a1082906ad7",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 231
+ },
+ {
+ "PubKey": "89f6fbcb0d85d78850e1faaaee913212964e4bd1e75f744a4246718d6a9264f03e174dabf39b112bf6079a77e4ed81a705986cfbf5f7875c2ae666542b01adb597ac20b19559e8ac36e1fb9ff78669fd5fa4c29537a4cc82bfc5ae1624f2f04b",
+ "ProofOfPossession": "b765931ce3d2c4be7675f9e0d0eb519192de529f8ca9850269ac23e3129b512e1adaf3ccc49014fb176f1ef0a3225a8b",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 232
+ },
+ {
+ "PubKey": "91a9c49b1d9dd9a67b6232df617586549d91ab98869ad9a88bba21253cce426aa5abaa27b6f2a8535a4c5964d6f4cbf30922828529dd1d1accf5fef523500dff288430901135ad3ad25007f3a7a945b2688e42b3526d66d20e470b9dfdabf800",
+ "ProofOfPossession": "af35759842b942795e46eb0e1320d5ead68267377766c1f90d3fb8590e76a2261ddb19846900bea4015c08fac568b57a",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 233
+ },
+ {
+ "PubKey": "8d66416d9c0e4a0caa4071a31bf50f72057e0d17d517575d2a03ed4eddb7e0e894a4eb5b01ece833496aa1f529824b8d106470c536a266392660693f703452897f2dd7bafd9bfa6ef505036a9e5a183f9f0b5eeef79c26d068cac5a186c9ea14",
+ "ProofOfPossession": "94299e6e72a0e1ba15758aa10fff9e415887e409ff312d2c7283cc5ea79b8b10a78f93875387d954229b39e4a3b65968",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 234
+ },
+ {
+ "PubKey": "abfdeb495a0235385245d0070d77faef97bf3369765408dc0c1ff6e28c058101d59dbe29501406d3157f8ae83a376108177aadf2c809b419cd3fad5b0a649e19d49658a5caa39b062bbdfe3e4e9e5a344d16949a7faf1e8f8931a4c603a2a3fe",
+ "ProofOfPossession": "a56e67f24bd8b73b480a62092fb505ad7c5e6dc11798242db5bc576c8609c6b8eb0635f9b7efcb9873ab4d863c66ff45",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 235
+ },
+ {
+ "PubKey": "8058f17aff644735ee6ad562511ec660090e57bce8dae693698e6f642a2fa99ddf5abe3770f209e1b7ec9ffb730562cd03e17f4b6c476e6f97286d876f274dfb5b745232ff3a9723133ba89fbfb5087206a12a5c060f8226b6a04616bddcf14b",
+ "ProofOfPossession": "b7e795e5799e9a6be0412ca81dd86b6b100b88416b56fd63768aa58b7fe64a8f7957812e4e2f82508f5e36a55e758dcd",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 236
+ },
+ {
+ "PubKey": "a4eecba7f794f2acf80b7c3a3e74b1db5dc032b7706b6022ff1f6b7826f02a228244fe5b42fa1c27fad8f0bad5a05a7517ee4f285a7bfeca4a7f8af1d6f13c70ce379d67c564d77288ae3078e8e4df9226a2f198ac070b1eba63685d64363f43",
+ "ProofOfPossession": "aefd58733dc399f2ad25b1d64ecd8527806e55a73380adc7b4454761309a43d51063e642279a7d33a63364fdff4eccf3",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 237
+ },
+ {
+ "PubKey": "9580b49bba586edebdfc41f477c411ac53ac1b07cbb0536842a7b330396fec3051c00bb2dfb834b228dff49a2fb82e270a32f42ebc4757b968b2a4b2ebfd878f973b38600a289b106b1ff6b16a8d00d6466c02f139ecd1b56a19524c7633ef1c",
+ "ProofOfPossession": "b519361560d886f091e3ee4e2bf7bdc08fcf4dde32b80ae7067995c71fb295848eb6c955b7ef17f36aa1d3595dc81ebf",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 238
+ },
+ {
+ "PubKey": "a47087812417bc16039073e7a14ce65a3c708d29c5693651a87ad08400619055d3e2d4c10c27c7a66fe30674880c3fbf1260614994c41be94d4191763568c10aecf7193d8e2247cd77f21763baafce48b3ea2c2d4fe91073681e70f0eaab14d2",
+ "ProofOfPossession": "a4c795d6d62da07baf971d37d160d168039447e7218696029b301ac5ba51bcbf0cc438783eb8ee23cca9f0c547b7155e",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 239
+ },
+ {
+ "PubKey": "8dfee3a8e7f400f9f53fe2c2d62e1fd01707584b2db6b59e881bae34f03d46a0df56e2cf1796bfe6011538ed1b2d4dc500dc746eee50f27b838db2c1dc4a2214e3283867321f1be502fbe6fde35c4b1d14b577bf469ccac8bd6b1cb5835a9d7a",
+ "ProofOfPossession": "8c21dc3e5410d70ee39ffdc96f15ca7adf110a62315337321290f9a68fcae48dff96d875c0f428453064ad7bbac84534",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 240
+ },
+ {
+ "PubKey": "a32eb8ea2180698754461de761c6505f22e8ef740beaa4df5569d4af7128211caf11dab45afa6b6ebfca184f2049f58b0eb14c8c69eb31cc7f4d361cc5725bbcaaac045104828047813d6bdb47f87083c9606f1d8d3aa02a18e2ba2be17a627a",
+ "ProofOfPossession": "988e514d3bdb0af03de11eeb9184b499860d0c03726ec45f31446d774ebe3ce2a1d545878162450d6c76602c4fdabc35",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 241
+ },
+ {
+ "PubKey": "b2d5b48ca2cfb2c5c5a83a4b349909bb9bd729105eaf4883233630855ef8ed4f058f38742a972ec02dd2169fccdcf64f02ab65d208332c95c4dcf621c829ec5515c1459b7bca55e53dd1e5a77f9bbc9920088a17ead855b7a778254631b154a8",
+ "ProofOfPossession": "a9e61d8bc7eef6060aa0067e098efc7f43359d114c27033493a436d7a5744d08a289ee1dcc8d6731a29a9b0fbf55c962",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 242
+ },
+ {
+ "PubKey": "8222d24c6413869152100558f41106ed0408d10499b31f4f69ac224ebe811d2bbb9a5195fcc271de450c246864b536df1050e7ad23e5a0512256dc616249f83b8f7b5c51cfff32a1d380c199763ebac1c326e4c336eec156951619324843e3ab",
+ "ProofOfPossession": "b09cfb068f6e8d98b419cdabcb886c3b93dd69ce940065895c99de7f3c91b1ea4c6b231e99f7ef1e2e8a7d13df5cc059",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 243
+ },
+ {
+ "PubKey": "80c743df275f25d6185b137f9252c536693d6873fda1e145011ab55a14e19aee20a15c3a20d44820a31cb3a3cbf941d10b99f45d5c5c428c84c897764c97db1476b49b211ad5fcda17976b252474f6e52d6a2601e8550bb05561aa6e42729ee0",
+ "ProofOfPossession": "b08f50e65a173a1fb8b5075d2f32ddcddc6d35673583eadcb0ae423d433578939c89e9ae96cdf228f5ceacd999fc02d0",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 244
+ },
+ {
+ "PubKey": "88be50704494468f8b9059e7f5fcadfb3927c8b26cb42c28e93bca2dfd3b1a2d08952a71322034fd43b6e1dea8d2292c02006fd295b22047fb2aff9a9b5998ad9cd72ef39b594a4181f2ad128a9a933b7357f6665e340ca525e5e0314b02fa5f",
+ "ProofOfPossession": "b5c00a713f26d3a4a519f363fbed8e459d45e3b53323bb37dc0dd3dec0e3f329a5a917c1474a321977322675087b9561",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 245
+ },
+ {
+ "PubKey": "8707b04dce1f7825f1ae4270444e143befa167d535ca8ce4c0b7c233ca6d1b10ed02bd8f62bf955f4280a9cc4a0f00e7194748ee5c6f3021f8740ad124dac573c3666cbfc0e423c2d17cb3b343b945337ed13e5b5cb36a332ecc420e01614752",
+ "ProofOfPossession": "b3579e68919132ebd96cc5fcfa9aa1a8088814124a95beef1fbd235013ea974d6467309e1404fd4cf6f1ce0a55001230",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 246
+ },
+ {
+ "PubKey": "af58a8d38719ebf947489623e8f3d49c485b556be0fac29785b5fd96fba94518eaf5019aab28166430f5a3b604e4938705c6500b0667de27b4a49d8cc430809aac7ef89e04ec2f4453ee1dd08bc1d1be485fd06bb690198a4102eff77a39f876",
+ "ProofOfPossession": "b7d44251466be3b1bad77c1c2c60825f6b0d29d8d7acd9f5f29c9e78ffce0f0d0b87f2f14d1e93b8dfa117af388f1651",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 247
+ },
+ {
+ "PubKey": "b81f4b67a84a52119b7f3b9c5c4cf28f92bc237f75168139cb37fa490f4c6de325ad75ca55b2fdfcab63309ca5716d5b07c27f87de4333cac44dba5a2ba90b027a10b4085877b9b339aa66f98127963957aab65562b96141123bed68022b0344",
+ "ProofOfPossession": "b51431593065f3b50dec3ef1c138ef17d76e610772d54f4b26419d3f29f05442652f24d668ae8aa56bbffbeb24a57c93",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 248
+ },
+ {
+ "PubKey": "b60f1ee395f24523a599454b5ecc9ef0c708e32c39fc2e257f274adfc73dda968a3e92a7d503b21f1b3f38b7856d5ac6082bd436c0d6f67018e72c0ae2c4a432dbecaa4165ef9e232304d7549d811ca5b8ee2c4924b9ae71080c21ac73388128",
+ "ProofOfPossession": "8fa044b1707495bbe50f34375eb92a478c1e29edd94f4a487a73fb42d43ae150caf0228a31188ec0a39750a760c09a18",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 249
+ },
+ {
+ "PubKey": "8a0e64880201939d602f3054c3e5eed4c9d1d0452658475f7a72004a6a1d64db49118e72746d261ab11daaee9ef86c231779873c0e9b86b30e71d1fdd37953d0e7498531d53788f06fc67465682a4434ee07a5e383cb6852817d209773d3f86b",
+ "ProofOfPossession": "9132377a51231f1c75e7c718e63fdfd856e72cffff2807d35b5755321ae8b7863c8e7a651d1fbfbee76f39ed21465741",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 250
+ },
+ {
+ "PubKey": "b6ad7f7074840e7601adea3c53e088cb229d4d96ee5b158a3dc16489c813ef352127c0b13274c3e80bbbcb9a96c5e2f20d245fb442b68b4244253c68365173a59906014adee66e445b2ef4afb352b95a1520e14e664844ac5147f54045f23b09",
+ "ProofOfPossession": "b3771084ab0d554e236086d39038a618bbf43f4348f5342d83f183caa9bdb90c4270958328ff546d526e643998c929cd",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 251
+ },
+ {
+ "PubKey": "b171f3bf66b61984f321a90d765358a6d61f526e1f765226b6d3506e855f64168745c85b4985df3518b50ba90502cf1d06096209b0121f18501db5ea359f2f48bd2b8ee657facd11cb30993d020c213b52ffd1878cdcf86f9315caa6a502c077",
+ "ProofOfPossession": "b88dca869715b36b544c03aee7086ffaa60f5501715e0a85ca3a97da794188ccecee82f3934f6214df0a7885483f6850",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 252
+ },
+ {
+ "PubKey": "9214162c361c4eabd6868c35389e1f4d5d3f0135b2c9a615aa2357c6431127a4a770e73d6f264f8a5a888453974f1a1c055612d953bd280888c6d0ac6d90523bdb8da3a0678fb2f89d648c19d26edb17bd7a5963fd1705158fe5306ba74fa746",
+ "ProofOfPossession": "b8b4a14a695982b4600f1c6fceca2e5f652d73b09967780c02c6ffb8e55976e3a9b0728b89b23ba497fbfbd503471624",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 253
+ },
+ {
+ "PubKey": "88f75e04d8db5df01fc84f53646d0b55c8ccfb5270b45100a97becdccd545d195a92d3f6b659889e62ef0bb7a745a80b1959be20656bc7063652d5774b369e388911ebbc2ccb5fa81538b446002913a4788bd4ad8e86aee31bd9539fecb8eb4b",
+ "ProofOfPossession": "8bee84d68fb074f88de52e701eca6dc3612d7c1ae9798c64fae118eddc3c3de9bc948c560d7316aee7a91ee4fcc66dd1",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 254
+ },
+ {
+ "PubKey": "ab95ce417f031caf15e4906da8121b009b87299eb3aaae39c9dcd66a577aed49af8fd1c777d3a1b03d1a182149b7b81d0f4e0eb7bf84505754536cf1e2f5e8a4b8e7a2dece355baf54b3233aa4daae1edb52fd236230fbbb9f9304ef97505f40",
+ "ProofOfPossession": "983c1b7a8aeb774e77aa20f912cbb28362543d738649820fb7c87f62fbb6d01eef7b3f7266fcbf1f806826f375e0f545",
+ "WithdrawalShard": 0,
+ "WithdrawalCredentials": "0000000000000000000000000000000000000000000000000000000000000000",
+ "DepositSize": 6400000000,
+ "ID": 255
+ }
+ ]
+ }
+}
diff --git a/validator/module/app.go b/validator/module/app.go
index d505b5b6..d7e6e4e8 100644
--- a/validator/module/app.go
+++ b/validator/module/app.go
@@ -4,6 +4,7 @@ import (
"bytes"
"context"
"fmt"
+
beaconconfig "github.com/phoreproject/synapse/beacon/config"
"github.com/phoreproject/synapse/utils"
"github.com/phoreproject/synapse/validator/config"
@@ -14,6 +15,7 @@ import (
"github.com/phoreproject/synapse/pb"
logger "github.com/sirupsen/logrus"
+ "github.com/golang/protobuf/ptypes/empty"
"github.com/phoreproject/synapse/validator"
)
@@ -75,6 +77,15 @@ func (v *ValidatorApp) Run() error {
keystore := validator.NewRootKeyStore(v.config.RootKey)
+ hashConfigResponse, err := blockchainRPC.GetConfigHash(v.ctx, &empty.Empty{})
+ if err != nil {
+ return err
+ }
+ validatorConfigHash := beaconconfig.HashConfig(v.config.NetworkConfig)
+ if bytes.Compare(validatorConfigHash, hashConfigResponse.Hash) != 0 {
+ return fmt.Errorf("Validator config doesn't match beacon config")
+ }
+
logger.Info("Checking validator public keys...")
for _, val := range v.config.ValidatorIndices {
diff --git a/validator/validatormanager.go b/validator/validatormanager.go
index 8c10e218..7661e006 100644
--- a/validator/validatormanager.go
+++ b/validator/validatormanager.go
@@ -181,15 +181,18 @@ func NewManager(ctx context.Context, blockchainRPC pb.BlockchainRPCClient, shard
func (vm *Manager) UpdateEpochInformation(slotNumber uint64) error {
epochInformation, err := vm.blockchainRPC.GetEpochInformation(context.Background(), &pb.EpochInformationRequest{EpochIndex: slotNumber / vm.config.EpochLength})
if err != nil {
+ logrus.WithField("function", "UpdateEpochInformation").Errorf("GetEpochInformation error: %v", err)
return err
}
if !epochInformation.HasEpochInformation {
+ logrus.WithField("function", "UpdateEpochInformation").Errorf("epochInformation.HasEpochInformation is false")
return nil
}
ei, err := epochInformationFromProto(epochInformation.Information)
if err != nil {
+ logrus.WithField("function", "UpdateEpochInformation").Errorf("epochInformationFromProto error: %v", err)
return err
}
@@ -247,11 +250,14 @@ func (vm *Manager) UpdateEpochInformation(slotNumber uint64) error {
BlockHash: ei.latestCrosslinks[shardID].ShardBlockHash[:],
})
if err != nil {
+ logrus.WithField("function", "UpdateEpochInformation").Errorf("SubscribeToShard error: %v", err)
return err
}
}
}
+ logrus.WithField("function", "UpdateEpochInformation").Info("vm.latestEpochInformation is updated")
+
vm.latestEpochInformation = *ei
vm.synced = true
vm.epochIndex = int64(slotNumber / vm.config.EpochLength)
@@ -264,6 +270,13 @@ func (vm *Manager) NewSlot(slotNumber uint64) error {
earliestSlot := vm.latestEpochInformation.earliestSlot
logrus.WithField("slot", slotNumber).Debug("heard new slot")
+ if len(vm.latestEpochInformation.slots) == 0 {
+ return nil
+ }
+
+ if int(int64(slotNumber-1)-earliestSlot) >= len(vm.latestEpochInformation.slots) {
+ logrus.WithField("function", "NewSlot").WithField("slotNumber", slotNumber).WithField("earliestSlot", earliestSlot).WithField("len(vm.latestEpochInformation.slots)", len(vm.latestEpochInformation.slots)).Error("slotNumber is out of range for vm.latestEpochInformation.slots")
+ }
proposerSlotCommittees := vm.latestEpochInformation.slots[int64(slotNumber-1)-earliestSlot]
proposer := proposerSlotCommittees[0].Committee[(slotNumber-1)%uint64(len(proposerSlotCommittees[0].Committee))]