Git Product home page Git Product logo

signalmaster's Introduction

Deprecated

The open-source version of SimpleWebRTC has been deprecated. This repository will remain as-is but is no longer actively maintained. You can find the old website in the gh-pages branch. Read more about the "new" SimpleWebRTC (which is an entirely different thing) on https://simplewebrtc.com

SimpleWebRTC - World's easiest WebRTC lib

Want to see it in action? Check out the demo: https://simplewebrtc.com/demo.html

Want to run it locally?

  1. Install all dependencies and run the test page
npm install && npm run test-page
  1. open your browser to https://0.0.0.0:8443/test/

It's so easy:

1. Some basic html

<!DOCTYPE html>
<html>
    <head>
        <script src="https://simplewebrtc.com/latest-v2.js"></script>
        <style>
            #remoteVideos video {
                height: 150px;
            }
            #localVideo {
                height: 150px;
            }
        </style>
    </head>
    <body>
        <video id="localVideo"></video>
        <div id="remoteVideos"></div>
    </body>
</html>

Installing through NPM

npm install --save simplewebrtc

# for yarn users
yarn add simplewebrtc

After that simply import simplewebrtc into your project

import SimpleWebRTC from 'simplewebrtc';

2. Create our WebRTC object

var webrtc = new SimpleWebRTC({
    // the id/element dom element that will hold "our" video
    localVideoEl: 'localVideo',
    // the id/element dom element that will hold remote videos
    remoteVideosEl: 'remoteVideos',
    // immediately ask for camera access
    autoRequestMedia: true
});

3. Tell it to join a room when ready

// we have to wait until it's ready
webrtc.on('readyToCall', function () {
    // you can name it anything
    webrtc.joinRoom('your awesome room name');
});

Available options

peerConnectionConfig - Set this to specify your own STUN and TURN servers. By default, SimpleWebRTC uses Google's public STUN server (stun.l.google.com:19302), which is intended for public use according to: https://twitter.com/HenrikJoreteg/status/354105684591251456

Note that you will most likely also need to run your own TURN servers. See http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ for a basic tutorial.

Filetransfer

Sending files between individual participants is supported. See http://simplewebrtc.com/filetransfer.html for a demo.

Note that this is not file sharing between a group which requires a completely different approach.

It's not always that simple...

Sometimes you need to do more advanced stuff. See http://simplewebrtc.com/notsosimple.html for some examples.

API

Constructor

new SimpleWebRTC(options)

  • object options - options object provided to constructor consisting of:
    • string url - required url for signaling server. Defaults to signaling server URL which can be used for development. You must use your own signaling server for production.
    • object socketio - optional object to be passed as options to the signaling server connection.
    • Connection connection - optional connection object for signaling. See Connection below. Defaults to a new SocketIoConnection
    • bool debug - optional flag to set the instance to debug mode
    • [string|DomElement] localVideoEl - ID or Element to contain the local video element
    • [string|DomElement] remoteVideosEl - ID or Element to contain the remote video elements
    • bool autoRequestMedia - optional(=false) option to automatically request user media. Use true to request automatically, or false to request media later with startLocalVideo
    • bool enableDataChannels optional(=true) option to enable/disable data channels (used for volume levels or direct messaging)
    • bool autoRemoveVideos - optional(=true) option to automatically remove video elements when streams are stopped.
    • bool adjustPeerVolume - optional(=false) option to reduce peer volume when the local participant is speaking
    • number peerVolumeWhenSpeaking - optional(=.0.25) value used in conjunction with adjustPeerVolume. Uses values between 0 and 1.
    • object media - media options to be passed to getUserMedia. Defaults to { video: true, audio: true }. Valid configurations described on MDN with official spec at w3c.
    • object receiveMedia - optional RTCPeerConnection options. Defaults to { offerToReceiveAudio: 1, offerToReceiveVideo: 1 }.
    • object localVideo - optional options for attaching the local video stream to the page. Defaults to
    {
        autoplay: true, // automatically play the video stream on the page
        mirror: true, // flip the local video to mirror mode (for UX)
        muted: true // mute local video stream to prevent echo
    }
    • object logger - optional alternate logger for the instance; any object that implements log, warn, and error methods.
    • object peerConnectionConfig - optional options to specify own your own STUN/TURN servers. By default these options are overridden when the signaling server specifies the STUN/TURN server configuration. Example on how to specify the peerConnectionConfig:
    {
      "iceServers": [{
              "url": "stun3.l.google.com:19302"
          },
          {
              "url": "turn:your.turn.servers.here",
              "username": "your.turn.server.username",
              "credential": "your.turn.server.password"
          }
      ],
      iceTransports: 'relay'
    }

Fields

capabilities - the webrtcSupport object that describes browser capabilities, for convenience

config - the configuration options extended from options passed to the constructor

connection - the socket (or alternate) signaling connection

webrtc - the underlying WebRTC session manager

Events

To set up event listeners, use the SimpleWebRTC instance created with the constructor. Example:

var webrtc = new SimpleWebRTC(options);
webrtc.on('connectionReady', function (sessionId) {
    // ...
})

'connectionReady', sessionId - emitted when the signaling connection emits the connect event, with the unique id for the session.

'createdPeer', peer - emitted three times:

  • when joining a room with existing peers, once for each peer

  • when a new peer joins a joined room

  • when sharing screen, once for each peer

  • peer - the object representing the peer and underlying peer connection

'channelMessage', peer, channelLabel, {messageType, payload} - emitted when a broadcast message to all peers is received via dataChannel by using the method sendDirectlyToAll().

'stunservers', [...args] - emitted when the signaling connection emits the same event

'turnservers', [...args] - emitted when the signaling connection emits the same event

'localScreenAdded', el - emitted after triggering the start of screen sharing

  • el the element that contains the local screen stream

'joinedRoom', roomName - emitted after successfully joining a room with the name roomName

'leftRoom', roomName - emitted after successfully leaving the current room, ending all peers, and stopping the local screen stream

'videoAdded', videoEl, peer - emitted when a peer stream is added

  • videoEl - the video element associated with the stream that was added
  • peer - the peer associated with the stream that was added

'videoRemoved', videoEl, peer - emitted when a peer stream is removed

  • videoEl - the video element associated with the stream that was removed
  • peer - the peer associated with the stream that was removed

Methods

createRoom(name, callback) - emits the create event on the connection with name and (if provided) invokes callback on response

joinRoom(name, callback) - joins the conference in room name. Callback is invoked with callback(err, roomDescription) where roomDescription is yielded by the connection on the join event. See signalmaster for more details.

startLocalVideo() - starts the local media with the media options provided in the config passed to the constructor

testReadiness() - tests that the connection is ready and that (if media is enabled) streams have started

mute() - mutes the local audio stream for all peers (pauses sending audio)

unmute() - unmutes local audio stream for all peers (resumes sending audio)

pauseVideo() - pauses sending video to peers

resumeVideo() - resumes sending video to all peers

pause() - pauses sending audio and video to all peers

resume() - resumes sending audio and video to all peers

sendToAll(messageType, payload) - broadcasts a message to all peers in the room via the signaling channel (websocket)

  • string messageType - the key for the type of message being sent
  • object payload - an arbitrary value or object to send to peers

sendDirectlyToAll(channelLabel, messageType, payload) - broadcasts a message to all peers in the room via a dataChannel

  • string channelLabel - the label for the dataChannel to send on
  • string messageType - the key for the type of message being sent
  • object payload - an arbitrary value or object to send to peers

getPeers(sessionId, type) - returns all peers by sessionId and/or type

shareScreen(callback) - initiates screen capture request to browser, then adds the stream to the conference

getLocalScreen() - returns the local screen stream

stopScreenShare() - stops the screen share stream and removes it from the room

stopLocalVideo() - stops all local media streams

setVolumeForAll(volume) - used to set the volume level for all peers

  • volume - the volume level, between 0 and 1

leaveRoom() - leaves the currently joined room and stops local screen share

disconnect() - calls disconnect on the signaling connection and deletes it

handlePeerStreamAdded(peer) - used internally to attach media stream to the DOM and perform other setup

handlePeerStreamRemoved(peer) - used internally to remove the video container from the DOM and emit videoRemoved

getDomId(peer) - used internally to get the DOM id associated with a peer

getEl(idOrEl) - helper used internally to get an element where idOrEl is either an element, or an id of an element

getLocalVideoContainer() - used internally to get the container that will hold the local video element

getRemoteVideoContainer() - used internally to get the container that holds the remote video elements

Connection

By default, SimpleWebRTC uses a socket.io connection to communicate with the signaling server. However, you can provide an alternate connection object to use. All that your alternate connection need provide are four methods:

  • on(ev, fn) - A method to invoke fn when event ev is triggered
  • emit() - A method to send/emit arbitrary arguments on the connection
  • getSessionId() - A method to get a unique session Id for the connection
  • disconnect() - A method to disconnect the connection

signalmaster's People

Contributors

aeosynth avatar bear avatar buddhikajay avatar fippo avatar gherkins avatar henrikjoreteg avatar jloveland avatar latentflip avatar legastero avatar liebeskind avatar lukekarrys avatar nighoo avatar nlf avatar one000mph avatar pdehaan avatar petrohi avatar sockdrawermoney avatar stefanocoding avatar sveri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signalmaster's Issues

problem with docker file

sudo docker build -t signalmaster https://github.com/andyet/signalmaster.git

Sending build context to Docker daemon   108 kB
Step 0 : FROM google/nodejs-runtime
#Executing 2 build triggers
Trigger 0, RUN echo "This image is now deprecated. If you are using the nodejs runtime for Google Managed VMs, please set \"runtime: nodejs\" in your app.yaml.  If you are not using Managed VMs, you should use the official Node Docker image located at: https://hub.docker.com/_/node/.  To learn more, visit http://cloud.google.com/nodejs/."
Step 0 : RUN echo "This image is now deprecated. If you are using the nodejs runtime for Google Managed VMs, please set \"runtime: nodejs\" in your app.yaml.  If you are not using Managed VMs, you should use the official Node Docker image located at: https://hub.docker.com/_/node/.  To learn more, visit http://cloud.google.com/nodejs/."
 ---> Using cache
Trigger 1, RUN exit 1;
Step 0 : RUN exit 1;
 ---> Running in b5abe0167720
The command '/bin/sh -c exit 1;' returned a non-zero code: 1

Using https for signal server setting

I've been trying to use https secure connection in development.json setting for signalmaster server.

I am wondering how to setup the certificate for the signal server? I tried my website's https certificate but it didn't work. Any detailed tutorial about how to setup the following configs?

"server": { "port": 8888, "/* secure */": "/* whether this connects via https */", "secure": false, "key": null, "cert": null, "password": null },

does socket.io is not the proper version?

when I run the simplewebrtc-master client, the signal server prompt the followings:

Missing error handler on socket.
TypeError: Cannot read property 'resources' of undefined
at D:\Program Files\nodejs\signalmaster-master\sockets.js:157:59
at Array.forEach (native)
at describeRoom (D:\Program Files\nodejs\signalmaster-master\sockets.js:156:
30)
at Socket.join (D:\Program Files\nodejs\signalmaster-master\sockets.js:70:30
)
at emitTwo (events.js:87:13)
at Socket.emit (events.js:172:7)
at Socket.onevent (D:\Program Files\nodejs\node_modules\socket.io\lib\socket
.js:335:8)
at Socket.onpacket (D:\Program Files\nodejs\node_modules\socket.io\lib\socke
t.js:295:12)
at Client.ondecoded (D:\Program Files\nodejs\node_modules\socket.io\lib\clie
nt.js:193:14)
at Decoder.Emitter.emit (D:\Program Files\nodejs\node_modules\component-emit
ter\index.js:134:20)

Crash on create room

/home/signalmaster/signalmaster/server.js:81
            if (cb) cb(null, name);
                    ^
TypeError: string is not a function
    at Socket.<anonymous> (/home/signalmaster/signalmaster/server.js:81:21)
    at Socket.EventEmitter.emit [as $emit] (events.js:96:17)
    at SocketNamespace.handlePacket (/home/signalmaster/signalmaster/node_modules/socket.io/lib/namespace.js:335:22)
    at Manager.onClientMessage (/home/signalmaster/signalmaster/node_modules/socket.io/lib/manager.js:488:38)
    at WebSocket.Transport.onMessage (/home/signalmaster/signalmaster/node_modules/socket.io/lib/transport.js:387:20)
    at Parser.<anonymous> (/home/signalmaster/signalmaster/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
    at Parser.EventEmitter.emit (events.js:96:17)
    at opcodeHandlers.1.finish (/home/signalmaster/signalmaster/node_modules/socket.io/lib/transports/websocket/hybi-16.js:288:16)
    at Parser.opcodeHandlers.1.expectData [as expectHandler] (/home/signalmaster/signalmaster/node_modules/socket.io/lib/transports/websocket/hybi-16.js:299:15)
    at Parser.add (/home/signalmaster/signalmaster/node_modules/socket.io/lib/transports/websocket/hybi-16.js:466:24)

Installing Signalmaster on production server

hello,

I installed signalmaster on my centos and I tried running node server.js and it shows server runs on localhost:8888, how do I change my config or settings to make server reflect my production url

Socket.io crash

Signalmaster was down this morning with this error
http://paste.andyet.net/huniyukita.pl

Application log was full of

warn: websocket connection invalid

This error didn't trigger an upstart respawn which lead to an outage. Had to manually restart

Error when connecting over webRTC

I have installed and configured the singalmaster server as my singaling server for webRTC using simpleWebRTC. Trying to connect two peers, the server encounters the following error:

TypeError: Cannot read property 'resources' of undefined at /home/topit/signalmaster-master/sockets.js:139:59 at Array.forEach (native) at describeRoom (/home/topit/signalmaster-master/sockets.js:138:30) at Socket.join (/home/topit/signalmaster-master/sockets.js:66:30) at Socket.EventEmitter.emit (events.js:98:17) at Socket.onevent (/home/topit/signalmaster-master/node_modules/socket.io/lib/socket.js:335:8) at Socket.onpacket (/home/topit/signalmaster-master/node_modules/socket.io/lib/socket.js:295:12) at Client.ondecoded (/home/topit/signalmaster-master/node_modules/socket.io/lib/client.js:193:14) at Decoder.Emitter.emit (/home/topit/signalmaster-master/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20) at Decoder.add (/home/topit/signalmaster-master/node_modules/socket.io/node_modules/socket.io-parser/index.js:247:12) Missing error handler onsocket. TypeError: Cannot read property 'resources' of undefined at /home/topit/signalmaster-master/sockets.js:139:59 at Array.forEach (native) at describeRoom (/home/topit/signalmaster-master/sockets.js:138:30) at Socket.join (/home/topit/signalmaster-master/sockets.js:66:30) at Socket.EventEmitter.emit (events.js:98:17) at Socket.onevent (/home/topit/signalmaster-master/node_modules/socket.io/lib/socket.js:335:8) at Socket.onpacket (/home/topit/signalmaster-master/node_modules/socket.io/lib/socket.js:295:12) at Client.ondecoded (/home/topit/signalmaster-master/node_modules/socket.io/lib/client.js:193:14) at Decoder.Emitter.emit (/home/topit/signalmaster-master/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20) at Decoder.add (/home/topit/signalmaster-master/node_modules/socket.io/node_modules/socket.io-parser/index.js:247:12)

can not hear on desktop computer

I use the notebook to be possible to hear each other, but could not hear the sound with the desktop computer earphone on microphone.

problem with port 10010

I am running the server from Plesk with Jxcore extension and she throws automaticante the application from the port 10010 https mode but will not let me, shows me the error "ERR_CONNECTION_CLOSED" but if http. Note that the SSL certificate is configured JXcore and the script is as follows:

/global console/
var yetify = require('yetify'),
config = require('getconfig'),
uuid = require('node-uuid'),
crypto = require('crypto'),
fs = require('fs'),
port = parseInt(process.env.PORT || config.server.port, 10),
server_handler = function (req, res) {
res.writeHead(404);
res.end();
},
server = null;

// Create an http(s) server instance to that socket.io can listen to
if (config.server.secure) {
server = require('https').Server({
key: fs.readFileSync(config.server.key),
cert: fs.readFileSync(config.server.cert),
passphrase: config.server.password
}, server_handler);
} else {
server = require('http').Server(server_handler);
}
server.listen(port);

var io = require('socket.io').listen(server);

if (config.logLevel) {
// https://github.com/Automattic/socket.io/wiki/Configuring-Socket.IO
io.set('log level', config.logLevel);
}

function describeRoom(name) {
var clients = io.sockets.clients(name);
var result = {
clients: {}
};
clients.forEach(function (client) {
result.clients[client.id] = client.resources;
});
return result;
}

function clientsInRoom(name) {
return io.sockets.clients(name).length;
}

function safeCb(cb) {
if (typeof cb === 'function') {
return cb;
} else {
return function () {};
}
}

io.sockets.on('connection', function (client) {
client.resources = {
screen: false,
video: true,
audio: false
};

// pass a message to another id
client.on('message', function (details) {
    if (!details) return;

    var otherClient = io.sockets.sockets[details.to];
    if (!otherClient) return;

    details.from = client.id;
    otherClient.emit('message', details);
});

client.on('shareScreen', function () {
    client.resources.screen = true;
});

client.on('unshareScreen', function (type) {
    client.resources.screen = false;
    removeFeed('screen');
});

client.on('join', join);

function removeFeed(type) {
    if (client.room) {
        io.sockets.in(client.room).emit('remove', {
            id: client.id,
            type: type
        });
        if (!type) {
            client.leave(client.room);
            client.room = undefined;
        }
    }
}

function join(name, cb) {
    // sanity check
    if (typeof name !== 'string') return;
    // check if maximum number of clients reached
    if (config.rooms && config.rooms.maxClients > 0 && 
      clientsInRoom(name) >= config.rooms.maxClients) {
        safeCb(cb)('full');
        return;
    }
    // leave any existing rooms
    removeFeed();
    safeCb(cb)(null, describeRoom(name));
    client.join(name);
    client.room = name;
}

// we don't want to pass "leave" directly because the
// event type string of "socket end" gets passed too.
client.on('disconnect', function () {
    removeFeed();
});
client.on('leave', function () {
    removeFeed();
});

client.on('create', function (name, cb) {
    if (arguments.length == 2) {
        cb = (typeof cb == 'function') ? cb : function () {};
        name = name || uuid();
    } else {
        cb = name;
        name = uuid();
    }
    // check if exists
    if (io.sockets.clients(name).length) {
        safeCb(cb)('taken');
    } else {
        join(name);
        safeCb(cb)(null, name);
    }
});

// support for logging full webrtc traces to stdout
// useful for large-scale error monitoring
client.on('trace', function (data) {
    console.log('trace', JSON.stringify(
        [data.type, data.session, data.prefix, data.peer, data.time, data.value]
    ));
});


// tell client about stun and turn servers and generate nonces
client.emit('stunservers', config.stunservers || []);

// create shared secret nonces for TURN authentication
// the process is described in draft-uberti-behave-turn-rest
var credentials = [];
config.turnservers.forEach(function (server) {
    var hmac = crypto.createHmac('sha1', server.secret);
    // default to 86400 seconds timeout unless specified
    var username = Math.floor(new Date().getTime() / 1000) + (server.expiry || 86400) + "";
    hmac.update(username);
    credentials.push({
        username: username,
        credential: hmac.digest('base64'),
        url: server.url
    });
});
client.emit('turnservers', credentials);

});

if (config.uid) process.setuid(config.uid);

var httpUrl;
if (config.server.secure) {
httpUrl = "https://localhost:" + port;
} else {
httpUrl = "http://localhost:" + port;
}
console.log(yetify.logo() + ' -- signal master is running at: ' + httpUrl);

Lower chances for sucessfull connections when hosting signalling server

Hi,

When I host Signalmaster on my servers I have lower chances for successful webrtc connection then using http://signaling.simplewebrtc.com:8888.

I have tried to put Signalmaster on Linux and Windows servers, with or without SSL but in several cases connection is unsuccessful = instead of videos I see black screens. But when I switch to http://signaling.simplewebrtc.com:8888 then it works ok.

Is something different on http://signaling.simplewebrtc.com:8888 and https://raw.github.com/andyet/signalmaster/master/server.js ?

Tnx

No 'Access-Control-Allow-Origin' header is present on the requested resource.

I've been prototyping an app from heroku using simplewebrtc, I started getting an error. I think it may have started last night. Any ideas?

Thanks!

#!javascript

GET https://signaling.simplewebrtc.com/socket.io/1/?t=1454089938784 Socket.handshake
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:2919Socket.connect 
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:2959Socket 
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:2811io.connect 
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:1354SocketIoConnection 
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:725SimpleWebRTC 
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:73prepareToBroadcast 
@ simple-webrtc-deps-f48511c4028ac6ade81fe495b6e65785.js:12238m.$broadcast 
@ angular.js:16149(anonymous function) 
@ show-white-board-simple-webrtc.js:584(anonymous function)
@ angular.js:17682e @ angular.js:5387(anonymous function) 
@ angular.js:5659b @ raygun.js:49
samson-s-laptop:1 XMLHttpRequest cannot load https://signaling.simplewebrtc.com/socket.io/1/?t=1454089938784. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://cyclops-dev.herokuapp.com' is therefore not allowed access. The response had HTTP status code 502.

How to use https?

I changed the filed 'secure' to 'true' in file dev_config.json, then I run the server with:
node server.js, but it shows the error as following:
dev environment detected
fs.js:500
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
TypeError: path must be a string
at TypeError (native)
at Object.fs.openSync (fs.js:500:18)
at Object.fs.readFileSync (fs.js:352:15)
at Object. (F:\simplewebrtc\server.js:17:17)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)

Is it because I didn't set fileds 'key' ,'cert'...? I don't know how to set.
Could someone help me?

Option log level is not valid

In socket.io 1.3.7 logging was changed. http://socket.io/docs/logging-and-debugging/
This code in deprecated:

if (config.logLevel) {
    // https://github.com/Automattic/socket.io/wiki/Configuring-Socket.IO
    io.set('log level', config.logLevel);
}

On run server output this:

Option log level is not valid. Please refer to the README.

Please fix it.

Missing Welcome and Transport Unknown

Hello All,

I have an older version of Signalmaster working. We decided to update the Signalmaster software and we are now getting some errors.


Installation Information:
Fresh Ubuntu Install
cd /opt
git clone https://github.com/andyet/signalmaster
cd signalmaster
npm install async; npm install node-uuid; npm install redis; npm install underscore; npm install precommit-hook; npm install getconfig; npm install yetify; npm install socket.io

Edit /opt/signalmaster/config/development.json
Removed logLevel 3 due to warning in starting.
Left stun server pointing at google.
Added my turn server.
Started Signalmaster: node server.js

End of Installation Information


When I load the server page, I should see "Welcome to socket.io". Instead I see a blank page with no html on the page.

When I load the server page, passing socket.io information, I should get authentication info.

Example:
https://signaling.simplewebrtc.com/
Welcome to socket.io.

Example 2:
https://signaling.simplewebrtc.com/socket.io/1/?t=1444403810714
5-bsFKOMpkbXfDhSgHFP:60:60:websocket,htmlfile,xhr-polling,jsonp-polling

So I have a few questions:

  1. Why am I no longer getting the welcome message in Example 1?
  2. Why am I getting the following error in Example 2? {"code":0,"message":"Transport unknown"}
  3. Are you using the newest version of Signalmaster on the https://signaling.simplewebrtc.com/ server? If not, which version are you using?
  4. What Linux flavor do you prefer? I tried Ubuntu and Redhat. Both had the same problem.

Thank you,

Daryl

Signalmaster Not Returning Turn Server Responses

Hello everyone,

I am using the SimpleWebRTC project with Signalmaster and Restund for my turn server.

I am experiencing a problem when using a Android/Apple device. The local video displays, but the remote video is just a black box and the device eventually says:
"Connection Failed
Talky could not establish a connection to a participant in this chat. Please try again later."

The SimpleWebRTC demo page says that the error is because a TURN server is required:
https://simplewebrtc.com/demo.html
"If you see black videos from peers or the connection state displayed ontop of those videos either hangs in Connecting to peer... or changes to Connection failed, a direct peer-to-peer connection could not be established. This typically means that a TURN server is required."

I have disabled the password on my Turn server, because I could not figure out how to pass the username "restund" in the signalmaster config. I'm guessing it is something like ("username": "restund").

I tested the restund server by going to:
https://plugin.temasys.com.sg/demo/samples/web/content/peerconnection/trickle-ice/index.html

I added:
turn:myipaddress:8080

The "Gather candidates" brought back a bunch of information. I'm not sure if it is all correct, but there was a bunch. Let me know if you want it pasted here. So I believe that meant it was working correctly.

Here is what I have in my Signalmaster configuration file:
"turnservers" : [
{
"url": "turn:myipaddress:8080",
//"username": "restund",
//"secret": "secretpassword",
"secret": "",
"expiry": 86400 }
]
So it seems to me that the Signalmaster server is not returning the TURN server responses to the SimpleWebRTC project and I was hoping for some help. Anyone have some input?

Thank you,

Daryl

Crash in server.js

I've noticed this crash in the last version that happens when i try to connect.
I'm using a stun and a turn in this way:

"stunservers" : [
{"url": "stun:stun.l.google.com:19302"}
],
"turnservers" : [
{ url: 'turn:[email protected]:19302?transport=udp', credential: '1234567890' }
]

this is the crash stack:

debug - websocket writing 5:::{"name":"stunservers","args":[[{"url":"stun:stun.l.google.com:19302"}]]}

crypto.js:226
this._binding.init(hmac, toBuf(key));
^
TypeError: Not a buffer
at new Hmac (crypto.js:226:17)
at Object.Hmac (crypto.js:224:12)
at /Users/danieleratti/Dropbox/SERVERS/WebRTC/Part2/signalmaster-master/server.js:104:31
at Array.forEach (native)
at SocketNamespace. (/Users/danieleratti/Dropbox/SERVERS/WebRTC/Part2/signalmaster-master/server.js:103:28)
at SocketNamespace.EventEmitter.emit as $emit
at connect (/Users/danieleratti/Dropbox/SERVERS/WebRTC/Part2/signalmaster-master/node_modules/socket.io/lib/namespace.js:292:10)
at /Users/danieleratti/Dropbox/SERVERS/WebRTC/Part2/signalmaster-master/node_modules/socket.io/lib/namespace.js:308:13
at SocketNamespace.authorize (/Users/danieleratti/Dropbox/SERVERS/WebRTC/Part2/signalmaster-master/node_modules/socket.io/lib/namespace.js:252:5)
at SocketNamespace.handlePacket (/Users/danieleratti/Dropbox/SERVERS/WebRTC/Part2/signalmaster-master/node_modules/socket.io/lib/namespace.js:302:14)

Cannot connect to signalmaster released by socket.IO-client-Swift

Hi, I'm using the ios library to connect signalmaster.

I can connect signalmster successfully if I'm using the code by 'git clone'.

But when I switched to the released version (0.2.1 or 0.2.2), it failed.

I got the message from my ios log
Handling event: reconnect with data: (
"Socket Disconnected"
)

What happened to the released version?

SSL_PROTOCOL_ERROR

I'm working on my prototype system. Every once in a while, I get an SSL error from simplewebrtc talking to the server. Any idea what this is, or how to recover from it?

GET https://signaling.simplewebrtc.com/socket.io/1/?t=1452473962460 net::ERR_SSL_PROTOCOL_ERRORSocket.handshake
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:2917Socket.connect
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:2957Socket
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:2809io.connect
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:1352SocketIoConnection
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:723SimpleWebRTC
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:73prepareToBroadcast
@ simple-webrtc-deps-1f6e1c3c1634657c6801afff09a52d65.js:12234m.$broadcast
@ angular.js:16149(anonymous function)
@ show-white-board-simple-webrtc.js:578(anonymous function)
@ angular.js:17682e
@ angular.js:5387(anonymous function)
@ angular.js:5659

Thanks!

I get 404

Hello there,

  • I have git clone signalmaster on Centos 6 ( on an virtual machine)

sudo git clone https://github.com/andyet/signalmaster.git signalmaster

  • cd signalmaster
  • sudo npm install
  • sudo npm install async
  • sudo npm install redis
  • sudo npm install underscore

So, now I have these versions :

precommit-hook 0.3.10
getconfing 2.1.0
node-uuid 1.2.0
yetify 0.0.1
tape 2.14.1
socket.io 1.3.7
socket.io-client 1.3.7
async 1.5.2
redis 2.5.1
underscore 1.8.3

  • sudo node server.js

I get message

&yet -- signal master is running at: http://localhost:8888

  • Using mozilla on Centos 6 (Virtual machine Virtual box) I type:

http://localhost:8888
and I get
status code : 404 Not Found

What it's wrong?

I have already read issues "#73 Why are not npm packages in the package.json dependencies?" and "#53 Missing Welcome and Transport Unknown"

Thank you in advance
Kostas

Turn Server and Parameters

Hi, i would like to know, which turn server you recommend?

I tested it with https://code.google.com/p/rfc5766-turn-server/
and it seems to work quite well.

I noticed in the server.js code a passage about a single pre-shared-key and timestamp-based usernames. Would you mind sharing your turn server configuration to use this pre-shared key?

Or did i fully misunderstood the security concept of TURN and it is just required that both p2p clients have a hmac based on the same shared key?

socket.io 1.x support

0.9 is really old. We use 1.x in production, would rather not introduce really out of date deps. Is there still an objection to upgrading?

Cannot connect peers between Chrome and Firefox

Good Morning,

I am using simplewebrtc to video calls and using signalmaster from this repo for server.

When i connect Chrome to Chrome and Firefox to Firefox it works very well, but when i try to call Chrome to Firefox or Firefox to Chrome, it does not work.

I had tried almost everithing to make it works but i coudn't...

If someone could help me pointing out where is wrong I would be very grateful.

I pasted below the webrtc dump from chrome, if helps....

{
"getUserMedia": [
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
},
{
"audio": "",
"origin": "http://injumper.br.arcasolutions.com",
"pid": 6544,
"rid": 14,
"video": ""
}
],
"PeerConnections": {
"6544-11": {
"constraints": "optional: {DtlsSrtpKeyAgreement:true}",
"rtcConfiguration": "{ servers: [stun:stun.l.google.com:19302, turn:107.170.42.161:5766], iceTransportType: all, bundlePolicy: balanced }",
"stats": {
"googTrack_556212a7-2627-40d9-9fe9-ea0c253f4cb5-googTrackId": {
"startTime": "1970-01-01T00:00:00.000Z",
"endTime": "1970-01-01T00:00:00.000Z",
"values": "["556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5"]"
},
"googTrack_6e682c2e-8229-4644-a5d2-0843152367ea-googTrackId": {
"startTime": "1970-01-01T00:00:00.000Z",
"endTime": "1970-01-01T00:00:00.000Z",
"values": "["6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea"]"
},
"googLibjingleSession_7922521926771700247-googInitiator": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:51.060Z",
"values": "[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]"
},
"googTrack_fGV4cXO/-googTrackId": {
"startTime": "1970-01-01T00:00:00.000Z",
"endTime": "1970-01-01T00:00:00.000Z",
"values": "["fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/","fGV4cXO/"]"
},
"googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB-googDerBase64": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY=","MIIBmTCCAQKgAwIBAgIEHsVVSTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMTUwNjAzMTMxMTUyWhcNMTUwNzAzMTMxMTUyWjARMQ8wDQYDVQQDDAZXZWJSVEMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPGJhESLnpuByekaKZsz02cun0S2o4A8cItO80ipeuCTgYxgUNnWOPsBJKIxmiXfHKwClnrTIpV+AaM7jpHpw119X4KW/jpH1SiRrOTb2tFhjkV/UiiHoV4nvPDNeDOLgbuEby5mZ/1KIm3oGh5PbuZip6hjKh6tfFnzLjIMRIDTAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA37jdt7kawXkM+Ye1LBYohUDOR2tIdAJHPFT1tmnvBJIKgHFeUTg0AxsvMpMu0HrB55VbcxwYBh4NVOpmVGhMhTK9ZwXqI5c1tXO7uReq2Kj5zm+fYX6NSlWLUzfdKO4FTO2yOJo8m4u+GQ4zjTY9Za36fRL2kM/SAHrFtI12oWY="]"
},
"googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB-googFingerprint": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB"]"
},
"googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB-googFingerprintAlgorithm": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256","sha-256"]"
},
"Channel-sdparta_0-1-googComponent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]"
},
"Channel-sdparta_0-1-localCertificateId": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB","googCertificate_4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB"]"
},
"ssrc_2725961750_send-audioInputLevel": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[21901,6209,27166,15189,4938,2555,20032,7911,5090,18400,6669,10995,32767,8897,20230,9929,13970,16886,11004,15195,17318,23214,20439,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955,6955]"
},
"ssrc_2725961750_send-bytesSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_2725961750_send-bitsSentPerSecond": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]"
},
"ssrc_2725961750_send-packetsLost": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_2725961750_send-packetsSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_2725961750_send-packetsSentPerSecond": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]"
},
"ssrc_2725961750_send-ssrc": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750","2725961750"]"
},
"ssrc_2725961750_send-transportId": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1"]"
},
"ssrc_2725961750_send-googCodecName": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus","opus"]"
},
"ssrc_2725961750_send-googEchoCancellationQualityMin": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_2725961750_send-googEchoCancellationEchoDelayMedian": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_2725961750_send-googEchoCancellationEchoDelayStdDev": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_2725961750_send-googEchoCancellationReturnLoss": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100]"
},
"ssrc_2725961750_send-googEchoCancellationReturnLossEnhancement": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100]"
},
"ssrc_2725961750_send-googJitterReceived": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_2725961750_send-googRtt": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_2725961750_send-googTrackId": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5","556212a7-2627-40d9-9fe9-ea0c253f4cb5"]"
},
"ssrc_2725961750_send-googTypingNoiseState": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]"
},
"ssrc_970055112_send-bytesSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-bitsSentPerSecond": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]"
},
"ssrc_970055112_send-packetsLost": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_970055112_send-packetsSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-packetsSentPerSecond": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]"
},
"ssrc_970055112_send-ssrc": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112","970055112"]"
},
"ssrc_970055112_send-transportId": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1","Channel-sdparta_0-1"]"
},
"ssrc_970055112_send-googAdaptationChanges": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-googAvgEncodeMs": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-googBandwidthLimitedResolution": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]"
},
"ssrc_970055112_send-googCodecName": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8","VP8"]"
},
"ssrc_970055112_send-googCpuLimitedResolution": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]"
},
"ssrc_970055112_send-googEncodeUsagePercent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70]"
},
"ssrc_970055112_send-googFirsReceived": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-googFrameHeightInput": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480]"
},
"ssrc_970055112_send-googFrameHeightSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480]"
},
"ssrc_970055112_send-googFrameRateInput": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,31,30,31,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]"
},
"ssrc_970055112_send-googFrameRateSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-googFrameWidthInput": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640]"
},
"ssrc_970055112_send-googFrameWidthSent": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640]"
},
"ssrc_970055112_send-googNacksReceived": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-googPlisReceived": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"ssrc_970055112_send-googRtt": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]"
},
"ssrc_970055112_send-googTrackId": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea","6e682c2e-8229-4644-a5d2-0843152367ea"]"
},
"ssrc_970055112_send-googViewLimitedResolution": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]"
},
"bweforvideo-googActualEncBitrate": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"bweforvideo-googAvailableReceiveBandwidth": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"bweforvideo-googAvailableSendBandwidth": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000]"
},
"bweforvideo-googBucketDelay": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"bweforvideo-googRetransmitBitrate": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"bweforvideo-googTargetEncBitrate": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000]"
},
"bweforvideo-googTargetEncBitrateCorrected": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000,300000]"
},
"bweforvideo-googTransmitBitrate": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"datachannel_0-datachannelid": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
},
"datachannel_0-protocol": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]"
},
"datachannel_0-state": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting","connecting"]"
},
"datachannel_0-label": {
"startTime": "2015-06-19T13:47:59.061Z",
"endTime": "2015-06-19T13:48:22.548Z",
"values": "["hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark","hark"]"
}
},
"updateLog": [
{
"time": "6/19/2015, 9:47:58 AM",
"type": "addStream",
"value": "label: q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz, audio: [e32fd5cc235542e72e94e9619c7373477f2134f5e9073da378ec0fe6969b3c49], video: [df2b398b854cfc003add15d9b987ccb7df2953b103099ae068449407f98a8fc9]"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "setRemoteDescription",
"value": "type: offer, sdp: v=0\r\no=mozilla...THIS_IS_SDPARTA-38.0.5 5407367329942676052 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 68:A9:30:2A:83:80:7B:FC:3E:E0:15:90:CE:36:40:B9:16:3B:28:6A:BC:5B:8F:AE:87:F8:AB:A5:BC:52:71:60\r\na=group:BUNDLE sdparta_0 sdparta_1 sdparta_2\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=audio 9 RTP/SAVPF 109 9 0 8\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=ice-pwd:541eebd640c9b732ada0ec014bc730eb\r\na=ice-ufrag:bab06692\r\na=mid:sdparta_0\r\na=msid:{32588ee7-6888-40d8-b9a4-fb43df2f2e41} {e073aa1c-3188-420d-a0f6-6f4494e6aa47}\r\na=rtcp-mux\r\na=rtpmap:109 opus/48000/2\r\na=rtpmap:9 G722/8000/1\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=setup:actpass\r\na=ssrc:1017853517 cname:{b90ab8fa-7189-4e6a-8083-894d2375e31e}\r\nm=video 9 RTP/SAVPF 120 126 97\r\nc=IN IP4 0.0.0.0\r\na=recvonly\r\na=fmtp:120 max-fs=12288;max-fr=60\r\na=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=ice-pwd:541eebd640c9b732ada0ec014bc730eb\r\na=ice-ufrag:bab06692\r\na=mid:sdparta_1\r\na=rtcp-fb:120 nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126 nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97 nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126 H264/90000\r\na=rtpmap:97 H264/90000\r\na=setup:actpass\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=ice-pwd:541eebd640c9b732ada0ec014bc730eb\r\na=ice-ufrag:bab06692\r\na=mid:sdparta_2\r\na=sctpmap:5000 webrtc-datachannel 256\r\na=setup:actpass\r\n"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "onRenegotiationNeeded",
"value": ""
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "signalingStateChange",
"value": "SignalingStateHaveRemoteOffer"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "onAddStream",
"value": "label: default, audio: [fGV4cXO/]"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "setRemoteDescriptionOnSuccess",
"value": ""
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "createAnswer",
"value": "constraints: {mandatory: {OfferToReceiveVideo:true, OfferToReceiveAudio:true}}"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "createAnswerOnSuccess",
"value": "type: answer, sdp: v=0\r\no=- 7922521926771700247 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE sdparta_0 sdparta_1 sdparta_2\r\na=msid-semantic: WMS q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz\r\nm=audio 9 RTP/SAVPF 109 9 0 8\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:fzEqdiQ1JwQUdq8G\r\na=ice-pwd:2D6H6D7q6Tzge22gnp6ia6h9\r\na=fingerprint:sha-256 4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB\r\na=setup:active\r\na=mid:sdparta_0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:109 opus/48000/2\r\na=fmtp:109 minptime=10; useinbandfec=1\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=maxptime:60\r\na=ssrc:2725961750 cname:h287apGOxdtpwNFb\r\na=ssrc:2725961750 msid:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz 556212a7-2627-40d9-9fe9-ea0c253f4cb5\r\na=ssrc:2725961750 mslabel:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz\r\na=ssrc:2725961750 label:556212a7-2627-40d9-9fe9-ea0c253f4cb5\r\nm=video 9 RTP/SAVPF 120\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:fzEqdiQ1JwQUdq8G\r\na=ice-pwd:2D6H6D7q6Tzge22gnp6ia6h9\r\na=fingerprint:sha-256 4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB\r\na=setup:active\r\na=mid:sdparta_1\r\na=sendonly\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:120 nack\r\na=rtcp-fb:120 nack pli\r\na=ssrc:970055112 cname:h287apGOxdtpwNFb\r\na=ssrc:970055112 msid:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz 6e682c2e-8229-4644-a5d2-0843152367ea\r\na=ssrc:970055112 mslabel:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz\r\na=ssrc:970055112 label:6e682c2e-8229-4644-a5d2-0843152367ea\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:fzEqdiQ1JwQUdq8G\r\na=ice-pwd:2D6H6D7q6Tzge22gnp6ia6h9\r\na=fingerprint:sha-256 4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB\r\na=setup:active\r\na=mid:sdparta_2\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "setLocalDescription",
"value": "type: answer, sdp: v=0\r\no=- 7922521926771700247 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE sdparta_0 sdparta_1 sdparta_2\r\na=msid-semantic: WMS q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz\r\nm=audio 9 RTP/SAVPF 109 9 0 8\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:fzEqdiQ1JwQUdq8G\r\na=ice-pwd:2D6H6D7q6Tzge22gnp6ia6h9\r\na=fingerprint:sha-256 4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB\r\na=setup:active\r\na=mid:sdparta_0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:109 opus/48000/2\r\na=fmtp:109 minptime=10; useinbandfec=1\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=maxptime:60\r\na=ssrc:2725961750 cname:h287apGOxdtpwNFb\r\na=ssrc:2725961750 msid:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz 556212a7-2627-40d9-9fe9-ea0c253f4cb5\r\na=ssrc:2725961750 mslabel:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz\r\na=ssrc:2725961750 label:556212a7-2627-40d9-9fe9-ea0c253f4cb5\r\nm=video 9 RTP/SAVPF 120\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:fzEqdiQ1JwQUdq8G\r\na=ice-pwd:2D6H6D7q6Tzge22gnp6ia6h9\r\na=fingerprint:sha-256 4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB\r\na=setup:active\r\na=mid:sdparta_1\r\na=sendonly\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:120 nack\r\na=rtcp-fb:120 nack pli\r\na=ssrc:970055112 cname:h287apGOxdtpwNFb\r\na=ssrc:970055112 msid:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz 6e682c2e-8229-4644-a5d2-0843152367ea\r\na=ssrc:970055112 mslabel:q8vazqaVMvjLqfFdpF4YgIerAxvdRdgJ1eEz\r\na=ssrc:970055112 label:6e682c2e-8229-4644-a5d2-0843152367ea\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:fzEqdiQ1JwQUdq8G\r\na=ice-pwd:2D6H6D7q6Tzge22gnp6ia6h9\r\na=fingerprint:sha-256 4A:6F:15:B8:B0:A1:2A:63:6F:BD:E5:37:1D:A9:2A:C4:86:08:D5:E5:AC:5E:47:17:39:93:F9:25:5F:C2:4A:CB\r\na=setup:active\r\na=mid:sdparta_2\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "createLocalDataChannel",
"value": "label: hark, reliable: true"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "signalingStateChange",
"value": "SignalingStateStable"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "iceGatheringStateChange",
"value": "ICEGatheringStateGathering"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "iceGatheringStateChange",
"value": "ICEGatheringStateGathering"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "setLocalDescriptionOnSuccess",
"value": ""
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_0, sdpMLineIndex: 0, candidate: candidate:4038477104 1 udp 2122260223 10.0.1.127 64253 typ host generation 0"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_1, sdpMLineIndex: 1, candidate: candidate:4038477104 1 udp 2122260223 10.0.1.127 64253 typ host generation 0"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_2, sdpMLineIndex: 2, candidate: candidate:4038477104 1 udp 2122260223 10.0.1.127 64253 typ host generation 0"
},
{
"time": "6/19/2015, 9:47:58 AM",
"type": "onRenegotiationNeeded",
"value": ""
},
{
"time": "6/19/2015, 9:47:59 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_0, sdpMLineIndex: 0, candidate: candidate:3191192000 1 tcp 1518280447 10.0.1.127 0 typ host tcptype active generation 0"
},
{
"time": "6/19/2015, 9:47:59 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_1, sdpMLineIndex: 1, candidate: candidate:3191192000 1 tcp 1518280447 10.0.1.127 0 typ host tcptype active generation 0"
},
{
"time": "6/19/2015, 9:47:59 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_2, sdpMLineIndex: 2, candidate: candidate:3191192000 1 tcp 1518280447 10.0.1.127 0 typ host tcptype active generation 0"
},
{
"time": "6/19/2015, 9:47:59 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_0, sdpMLineIndex: 0, candidate: candidate:328713180 1 udp 1686052607 179.184.165.30 64253 typ srflx raddr 10.0.1.127 rport 64253 generation 0"
},
{
"time": "6/19/2015, 9:47:59 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_1, sdpMLineIndex: 1, candidate: candidate:328713180 1 udp 1686052607 179.184.165.30 64253 typ srflx raddr 10.0.1.127 rport 64253 generation 0"
},
{
"time": "6/19/2015, 9:47:59 AM",
"type": "onIceCandidate",
"value": "sdpMid: sdparta_2, sdpMLineIndex: 2, candidate: candidate:328713180 1 udp 1686052607 179.184.165.30 64253 typ srflx raddr 10.0.1.127 rport 64253 generation 0"
},
{
"time": "6/19/2015, 9:48:08 AM",
"type": "iceGatheringStateChange",
"value": "ICEGatheringStateComplete"
},
{
"time": "6/19/2015, 9:48:22 AM",
"type": "stop",
"value": ""
},
{
"time": "6/19/2015, 9:48:22 AM",
"type": "iceConnectionStateChange",
"value": "ICEConnectionStateClosed"
},
{
"time": "6/19/2015, 9:48:22 AM",
"type": "signalingStateChange",
"value": "SignalingStateClosed"
}
],
"url": "http://injumper.br.arcasolutions.com/injumper"
}
}
}

Thanks

move stun/turn config to new .urls syntax

the stun/turn config in dev_config.json currently uses .url to specify the stun/turn url. The spec now says this should be .urls so we should use that as well.
Needs to be checked in chrome and firefox

No 'Access-Control-Allow-Origin' header is present on the requested resource

Trying to configure my own signalmaster server and worked for a while. But after I messed up pip3 with pip2 and reinstall ubuntu and update to [email protected], it doesn't work. I updated all dependent files:

  1. npm update yetify getconfig node-uuid crypto socket.io
  2. latest signalmaster/SimpleWebRTC, even tried the latest socket.io client
    Totally failed. It seems to be a very common issue for [email protected] socketio/socket.io-client#641
    Please tell me what version of socket.io signaling.simplewebrtc.com used.

Socket.IO 1.0 support

Hi there,
first of all this is a great project.
I have question about future development? Do you have any plan to integrate this project with socket.io 1.0?
Cheers,
Luka

signalmaster + Browserify

I'm attempting to run the signalmaster server in-browser via a chrome extension by bundling with browserify and am having issues surrounding the EventEmitter -- (note: this may be more of a socket.io question, not sure)

The specific error I'm encountering:

Uncaught TypeError: Cannot read property 'prototype' of undefined

The specific line of code this references:

Store.prototype.__proto__ = EventEmitter.prototype;

File error is contained in: ./node_modules/socket.io/lib/store.js

The bundling process goes totally fine w/ the following used for bundling:

browserify --ig require.js > assets/js/libraries/bundle.js

When I reload the extension and check the console in chrome, this is where I see the error.

I'm honestly not sure if bundling up signalmaster and running it in-browser is possible, but any insights you might have would be great!

package.json add unused dependencies

Hello,

 theses dependency are not used in the app  
"async": "0.1.9",
"redis": "",
"underscore": "",
"precommit-hook": "",  

If they're used in dev, is it possible to move them to "devDependencies" ?

Regards,
Florent

Fail when "maxClients" > 0

When client connects to socket.io it throws an error and fails.
"TypeError: io.sockets.clients is not a function"

It happens when maxClients in configuration > 0.

Why are not npm packages in the package.json dependencies?

Hi,
I'm not understanding why you put the package dependencies in the readme and not in the package.json as dependencies. In this way the dependencies versions are not specified and it could not work in the right way.

I made a demo with simplewebrtc. It works if I use the public server, if I use this server I have an issue on handshake response (400 Bad Request).

These my dependencies:

├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
│   ├─┬ [email protected]
│   │ └─┬ [email protected]
│   │   ├─┬ [email protected]
│   │   │ └── [email protected]
│   │   ├─┬ [email protected]
│   │   │ └─┬ [email protected]
│   │   │   ├── [email protected]
│   │   │   └── [email protected]
│   │   ├── [email protected]
│   │   └── [email protected]
│   ├── [email protected]
│   ├─┬ [email protected]
│   │ ├── [email protected]
│   │ └── [email protected]
│   ├── [email protected]
│   └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │   ├─┬ [email protected]
│ │   │ ├── [email protected]
│ │   │ └── [email protected]
│ │   ├── [email protected]
│ │   └─┬ [email protected]
│ │     └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │   └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │   └── [email protected]
│ │ └── [email protected]
│ └─┬ [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   ├── [email protected]
│   └── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
└── [email protected]

Missing docs?

I feel like the README is lacking How do you interface with this?

If ran standalone

docker run --name signalmaster -d -p 8888:8888 signalmaster

How do you publish/subscribe to it?

400 Bad Request

From what I have read, I need to use socket.io 0.9.16 What can be done to upgrade this to socket.io 1.3.5? I am getting 400 Bad Request error when I try to access my server, but it works just fine connecting to the test server (from simplewebrtc client).

{"code":0,"message":"Transport unknown"}

Bad Request

Hi, I'm using your SignalMaster server, the latest from Github, and I'm using your latest SimpleWebRTC - the simplewebrtc.bundle.js - also the latest from Github.

I have a simple audio chat demo set up, similar to the audio demo at simplewebrtc.com (very helpful demo, thanks!).

In the client side JS code in the call to "new SimpleWebRTC( { ... } ) I have a url parameter set to point to my SignalMaster server. When I load up the client it sends a GET request like this:

https://XXXXXXXXXX:9002/socket.io/1/?t=1460762455383

The response comes back as a "400 - Bad Request" and this response body:

{"code":0,"message":"Transport unknown"}

The SignalMaster server is using node module socket.io 1.3.7, and the client is using the client lib of socket.io-1.4.5.js

Any idea why, or how to resolve this issue? Or should I post this over in your SimpleWebRTC repo instead?

How to list current active rooms?

Hi there, how can I manage available room like:

  • Return list of rooms (each room have status like: idle, online, offline)
    Addition to feature I would like to add:
  • Delete rooms if everyone left.
  • Limit users in room.
  • Lock room.
  • Set password to room.

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.