librespot: update to 431be (#2713)

This commit is contained in:
Obrekr 2018-05-20 21:58:44 +02:00 committed by CvH
parent 57e48ebe38
commit ff5a954789
13 changed files with 166 additions and 776 deletions

View File

@ -1,3 +1,8 @@
111
- Update to 431be9e
- Fix delay with Kodi playback option
- Cache volume
110
- Update to 685fb4e
- Add kSupportsPlaylistV2 enum

View File

@ -18,8 +18,8 @@
################################################################################
PKG_NAME="librespot"
PKG_VERSION="685fb4e"
PKG_REV="110"
PKG_VERSION="431be9e"
PKG_REV="111"
PKG_ARCH="any"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/librespot-org/$PKG_NAME/"

View File

@ -1,110 +1,165 @@
From ddb20957330b2bb76c0cee85ac3514e5e136b90e Mon Sep 17 00:00:00 2001
From: awiouy <awiouy@gmail.com>
Date: Fri, 26 Jan 2018 21:02:29 +0100
Subject: [PATCH] kodi hooks
---
playback/src/player.rs | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/playback/src/player.rs b/playback/src/player.rs
index e549736..34e802a 100644
index dd99423..365c108 100644
--- a/playback/src/player.rs
+++ b/playback/src/player.rs
@@ -3,6 +3,7 @@ use futures::{future, Future};
use std;
use std::borrow::Cow;
use std::io::{Read, Seek, SeekFrom, Result};
+use std::env;
use std::mem;
use std::process::Command;
use std::sync::mpsc::{RecvError, TryRecvError, RecvTimeoutError};
@@ -16,7 +17,7 @@ use core::spotify_id::SpotifyId;
use audio_backend::Sink;
use audio::{AudioFile, AudioDecrypt};
@@ -17,7 +17,7 @@ use core::spotify_id::SpotifyId;
use audio::{AudioDecrypt, AudioFile};
use audio::{VorbisDecoder, VorbisPacket};
-use metadata::{FileFormat, Track, Metadata};
+use metadata::{Artist, FileFormat, Track, Metadata};
use audio_backend::Sink;
-use metadata::{FileFormat, Metadata, Track};
+use metadata::{FileFormat, Metadata, Track, Artist};
use mixer::AudioFilter;
pub struct Player {
@@ -274,7 +275,7 @@ impl PlayerInternal {
@@ -49,15 +49,22 @@ enum PlayerCommand {
pub enum PlayerEvent {
Started {
track_id: SpotifyId,
+ track: Track,
+ artist: Artist,
+ new_state: String,
},
None => {
self.stop_sink();
- self.run_onstop();
+ info!("onstop 1");
Changed {
old_track_id: SpotifyId,
new_track_id: SpotifyId,
+ track: Track,
+ artist: Artist,
+ new_state: String,
},
let old_state = mem::replace(&mut self.state, PlayerState::Stopped);
old_state.signal_end_of_track();
@@ -286,6 +287,12 @@ impl PlayerInternal {
debug!("command={:?}", cmd);
match cmd {
PlayerCommand::Load(track_id, play, position, end_of_track) => {
+ let track = Track::get(&self.session, track_id).wait().unwrap();
+ let artist = Artist::get(&self.session, track.artists[0]).wait().unwrap();
+ env::set_var("LS_ARTIST", artist.name);
+ env::set_var("LS_TITLE", track.name);
+ self.run_onstart();
+
if self.state.is_playing() {
self.stop_sink_if_running();
}
@@ -294,7 +301,7 @@ impl PlayerInternal {
Some(decoder) => {
Stopped {
track_id: SpotifyId,
+ new_state: String,
},
}
@@ -404,6 +411,9 @@ impl PlayerInternal {
match self.load_track(track_id, position as i64) {
Some((decoder, normalisation_factor)) => {
+ let track = Track::get(&self.session, track_id).wait().unwrap();
+ let artist = Artist::get(&self.session, track.artists[0]).wait().unwrap();
+
if play {
if !self.state.is_playing() {
- self.run_onstart();
+ info!("onstart 1");
match self.state {
PlayerState::Playing {
@@ -413,11 +423,20 @@ impl PlayerInternal {
| PlayerState::EndOfTrack {
track_id: old_track_id,
..
- } => self.send_event(PlayerEvent::Changed {
- old_track_id: old_track_id,
- new_track_id: track_id,
- }),
- _ => self.send_event(PlayerEvent::Started { track_id }),
+ } => {
+ let new_state = "play".to_string();
+ self.send_event(PlayerEvent::Changed {
+ old_track_id: old_track_id,
+ new_track_id: track_id,
+ track: track,
+ artist: artist,
+ new_state: new_state,
+ });
+ },
+ _ => {
+ let new_state = "play".to_string();
+ self.send_event(PlayerEvent::Started { track_id, track, artist, new_state });
+ },
}
self.start_sink();
@@ -304,7 +311,7 @@ impl PlayerInternal {
};
} else {
if self.state.is_playing() {
- self.run_onstop();
+ info!("onstop 2");
@@ -443,13 +462,20 @@ impl PlayerInternal {
| PlayerState::EndOfTrack {
track_id: old_track_id,
..
- } => self.send_event(PlayerEvent::Changed {
- old_track_id: old_track_id,
- new_track_id: track_id,
- }),
+ } => {
+ let new_state = "pause".to_string();
+ self.send_event(PlayerEvent::Changed {
+ old_track_id: old_track_id,
+ new_track_id: track_id,
+ track: track,
+ artist: artist,
+ new_state: new_state,
+ })
+ },
_ => (),
}
self.state = PlayerState::Paused {
@@ -317,7 +324,7 @@ impl PlayerInternal {
None => {
let _ = end_of_track.send(());
if self.state.is_playing() {
- self.run_onstop();
+ info!("onstop 3");
- self.send_event(PlayerEvent::Stopped { track_id });
+ let new_state = "pause".to_string();
+ self.send_event(PlayerEvent::Stopped { track_id, new_state });
}
}
}
@@ -338,7 +345,7 @@ impl PlayerInternal {
if let PlayerState::Paused { .. } = self.state {
@@ -474,7 +500,10 @@ impl PlayerInternal {
if let PlayerState::Paused { track_id, .. } = self.state {
self.state.paused_to_playing();
- self.run_onstart();
+ info!("onstart 2");
- self.send_event(PlayerEvent::Started { track_id });
+ let track = Track::get(&self.session, track_id).wait().unwrap();
+ let artist = Artist::get(&self.session, track.artists[0]).wait().unwrap();
+ let new_state = "play".to_string();
+ self.send_event(PlayerEvent::Started { track_id, track, artist, new_state });
self.start_sink();
} else {
warn!("Player::play called from invalid state");
@@ -350,17 +357,19 @@ impl PlayerInternal {
@@ -486,7 +515,8 @@ impl PlayerInternal {
self.state.playing_to_paused();
self.stop_sink_if_running();
- self.run_onstop();
+ info!("onstop 4");
- self.send_event(PlayerEvent::Stopped { track_id });
+ let new_state = "pause".to_string();
+ self.send_event(PlayerEvent::Stopped { track_id, new_state });
} else {
warn!("Player::pause called from invalid state");
}
}
PlayerCommand::Stop => {
+ self.run_onstop();
+
match self.state {
PlayerState::Playing { .. } => {
self.stop_sink_if_running();
- self.run_onstop();
+ info!("onstop 5");
self.state = PlayerState::Stopped;
}
PlayerState::Paused { .. } => {
@@ -497,7 +527,8 @@ impl PlayerInternal {
| PlayerState::Paused { track_id, .. }
| PlayerState::EndOfTrack { track_id } => {
self.stop_sink_if_running();
- self.send_event(PlayerEvent::Stopped { track_id });
+ let new_state = "stop".to_string();
+ self.send_event(PlayerEvent::Stopped { track_id, new_state });
self.state = PlayerState::Stopped;
}
PlayerState::Stopped => {
diff --git a/src/player_event_handler.rs b/src/player_event_handler.rs
index b6a653d..f746c8f 100644
--- a/src/player_event_handler.rs
+++ b/src/player_event_handler.rs
@@ -18,18 +18,28 @@ pub fn run_program_on_events(event: PlayerEvent, onevent: &str) {
PlayerEvent::Changed {
old_track_id,
new_track_id,
+ track,
+ artist,
+ new_state,
} => {
env_vars.insert("PLAYER_EVENT", "change".to_string());
env_vars.insert("OLD_TRACK_ID", old_track_id.to_base16());
env_vars.insert("TRACK_ID", new_track_id.to_base16());
+ env_vars.insert("TITLE", track.name.to_string());
+ env_vars.insert("ARTIST", artist.name.to_string());
+ env_vars.insert("STATE", new_state.to_string());
}
- PlayerEvent::Started { track_id } => {
+ PlayerEvent::Started { track_id, track, artist, new_state } => {
env_vars.insert("PLAYER_EVENT", "start".to_string());
env_vars.insert("TRACK_ID", track_id.to_base16());
+ env_vars.insert("TITLE", track.name.to_string());
+ env_vars.insert("ARTIST", artist.name.to_string());
+ env_vars.insert("STATE", new_state.to_string());
}
- PlayerEvent::Stopped { track_id } => {
+ PlayerEvent::Stopped { track_id, new_state } => {
env_vars.insert("PLAYER_EVENT", "stop".to_string());
env_vars.insert("TRACK_ID", track_id.to_base16());
+ env_vars.insert("STATE", new_state.to_string());
}
}
run_program(onevent, env_vars);

View File

@ -1,17 +1,8 @@
From fb7b845f5ef4c5f4ffdcbef6abab1fecc0acca2a Mon Sep 17 00:00:00 2001
From: awiouy <awiouy@gmail.com>
Date: Fri, 26 Jan 2018 21:07:48 +0100
Subject: [PATCH] use librespot_sink pulseadio sink
---
playback/src/audio_backend/pulseaudio.rs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/playback/src/audio_backend/pulseaudio.rs b/playback/src/audio_backend/pulseaudio.rs
index e9f0039..d5c2bbb 100644
index 88f6280..4e7186b 100644
--- a/playback/src/audio_backend/pulseaudio.rs
+++ b/playback/src/audio_backend/pulseaudio.rs
@@ -75,13 +75,14 @@ impl Open for PulseAudioSink {
@@ -76,6 +76,7 @@ impl Open for PulseAudioSink {
impl Sink for PulseAudioSink {
fn start(&mut self) -> io::Result<()> {
@ -19,11 +10,12 @@ index e9f0039..d5c2bbb 100644
if self.s == null_mut() {
self.s = call_pulseaudio(
|err| unsafe {
pa_simple_new(null(), // Use the default server.
self.name.as_ptr(), // Our application's name.
PA_STREAM_PLAYBACK,
- null(), // Use the default device.
+ sink.as_ptr(), // Our sink.
self.desc.as_ptr(), // desc of our stream.
&self.ss, // Our sample format.
null(), // Use default channel map
@@ -83,7 +84,7 @@ impl Sink for PulseAudioSink {
null(), // Use the default server.
self.name.as_ptr(), // Our application's name.
PA_STREAM_PLAYBACK,
- null(), // Use the default device.
+ sink.as_ptr(), // Our sink.
self.desc.as_ptr(), // desc of our stream.
&self.ss, // Our sample format.
null(), // Use default channel map

View File

@ -1,657 +0,0 @@
From 80e0bdaa396a23a4afce5e643731d9e4ff213175 Mon Sep 17 00:00:00 2001
From: Sasha Hilton <sashahilton00@gmail.com>
Date: Sun, 25 Feb 2018 21:23:32 +0100
Subject: [PATCH] Add kSupportsPlaylistV2 enum
---
protocol/build.sh | 0
protocol/files.rs | 2 +-
protocol/proto/spirc.proto | 1 +
protocol/src/spirc.rs | 581 +++++++++++++++++++++++----------------------
4 files changed, 295 insertions(+), 289 deletions(-)
mode change 100644 => 100755 protocol/build.sh
diff --git a/protocol/build.sh b/protocol/build.sh
old mode 100644
new mode 100755
diff --git a/protocol/files.rs b/protocol/files.rs
index ad208d7..13db30e 100644
--- a/protocol/files.rs
+++ b/protocol/files.rs
@@ -6,5 +6,5 @@ pub const FILES : &'static [(&'static str, u32)] = &[
("proto/mercury.proto", 709993906),
("proto/metadata.proto", 2474472423),
("proto/pubsub.proto", 2686584829),
- ("proto/spirc.proto", 3618770573),
+ ("proto/spirc.proto", 3695752338),
];
diff --git a/protocol/proto/spirc.proto b/protocol/proto/spirc.proto
index 4f29f87..f2ef280 100644
--- a/protocol/proto/spirc.proto
+++ b/protocol/proto/spirc.proto
@@ -75,6 +75,7 @@ enum CapabilityType {
kCommandAcks = 0xa;
kSupportsRename = 0xb;
kHidden = 0xc;
+ kSupportsPlaylistV2 = 0xd;
}
message Goodbye {
diff --git a/protocol/src/spirc.rs b/protocol/src/spirc.rs
index a8b2f26..f3f66bc 100644
--- a/protocol/src/spirc.rs
+++ b/protocol/src/spirc.rs
@@ -4407,6 +4407,7 @@ pub enum CapabilityType {
kCommandAcks = 10,
kSupportsRename = 11,
kHidden = 12,
+ kSupportsPlaylistV2 = 13,
}
impl ::protobuf::ProtobufEnum for CapabilityType {
@@ -4428,6 +4429,7 @@ impl ::protobuf::ProtobufEnum for CapabilityType {
10 => ::std::option::Option::Some(CapabilityType::kCommandAcks),
11 => ::std::option::Option::Some(CapabilityType::kSupportsRename),
12 => ::std::option::Option::Some(CapabilityType::kHidden),
+ 13 => ::std::option::Option::Some(CapabilityType::kSupportsPlaylistV2),
_ => ::std::option::Option::None
}
}
@@ -4446,6 +4448,7 @@ impl ::protobuf::ProtobufEnum for CapabilityType {
CapabilityType::kCommandAcks,
CapabilityType::kSupportsRename,
CapabilityType::kHidden,
+ CapabilityType::kSupportsPlaylistV2,
];
values
}
@@ -4591,299 +4594,301 @@ static file_descriptor_proto_data: &'static [u8] = b"\
geTypeVolumeUp\x10\x20\x12\x17\n\x13kMessageTypeReplace\x10!\x12\x16\n\
\x12kMessageTypeLogout\x10\"\x12\x16\n\x12kMessageTypeAction\x10#\x12\
\x16\n\x12kMessageTypeRename\x10$\x12\x1f\n\x1akMessageTypeUpdateMetadat\
- a\x10\x80\x01*\xfa\x01\n\x0eCapabilityType\x12\x16\n\x12kSupportedContex\
+ a\x10\x80\x01*\x93\x02\n\x0eCapabilityType\x12\x16\n\x12kSupportedContex\
ts\x10\x01\x12\x10\n\x0ckCanBePlayer\x10\x02\x12\x14\n\x10kRestrictToLoc\
al\x10\x03\x12\x0f\n\x0bkDeviceType\x10\x04\x12\x14\n\x10kGaiaEqConnectI\
d\x10\x05\x12\x13\n\x0fkSupportsLogout\x10\x06\x12\x11\n\rkIsObservable\
\x10\x07\x12\x10\n\x0ckVolumeSteps\x10\x08\x12\x13\n\x0fkSupportedTypes\
\x10\t\x12\x10\n\x0ckCommandAcks\x10\n\x12\x13\n\x0fkSupportsRename\x10\
- \x0b\x12\x0b\n\x07kHidden\x10\x0c*d\n\nPlayStatus\x12\x13\n\x0fkPlayStat\
- usStop\x10\0\x12\x13\n\x0fkPlayStatusPlay\x10\x01\x12\x14\n\x10kPlayStat\
- usPause\x10\x02\x12\x16\n\x12kPlayStatusLoading\x10\x03J\xbf.\n\x07\x12\
- \x05\0\0\x82\x01\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\
- \x04\x02\0\x12\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\x08\r\n\x0b\n\x04\x04\
- \0\x02\0\x12\x03\x03\x04\"\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\x03\x04\
- \x0c\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x03\r\x13\n\x0c\n\x05\x04\0\x02\
- \0\x01\x12\x03\x03\x14\x1b\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x1e!\
- \n\x0b\n\x04\x04\0\x02\x01\x12\x03\x04\x04\x20\n\x0c\n\x05\x04\0\x02\x01\
- \x04\x12\x03\x04\x04\x0c\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x04\r\x13\
- \n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x04\x14\x19\n\x0c\n\x05\x04\0\x02\
- \x01\x03\x12\x03\x04\x1c\x1f\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x05\x04+\
- \n\x0c\n\x05\x04\0\x02\x02\x04\x12\x03\x05\x04\x0c\n\x0c\n\x05\x04\0\x02\
- \x02\x05\x12\x03\x05\r\x13\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x05\x14\
- $\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x05'*\n\x0b\n\x04\x04\0\x02\x03\
- \x12\x03\x06\x04!\n\x0c\n\x05\x04\0\x02\x03\x04\x12\x03\x06\x04\x0c\n\
- \x0c\n\x05\x04\0\x02\x03\x05\x12\x03\x06\r\x13\n\x0c\n\x05\x04\0\x02\x03\
- \x01\x12\x03\x06\x14\x1a\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x06\x1d\
- \x20\n\x0b\n\x04\x04\0\x02\x04\x12\x03\x07\x04#\n\x0c\n\x05\x04\0\x02\
- \x04\x04\x12\x03\x07\x04\x0c\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03\x07\r\
- \x18\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03\x07\x19\x1c\n\x0c\n\x05\x04\0\
- \x02\x04\x03\x12\x03\x07\x1f\"\n\x0b\n\x04\x04\0\x02\x05\x12\x03\x08\x04\
- ,\n\x0c\n\x05\x04\0\x02\x05\x04\x12\x03\x08\x04\x0c\n\x0c\n\x05\x04\0\
- \x02\x05\x06\x12\x03\x08\r\x18\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03\x08\
- \x19%\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03\x08(+\n\x0b\n\x04\x04\0\x02\
- \x06\x12\x03\t\x04#\n\x0c\n\x05\x04\0\x02\x06\x04\x12\x03\t\x04\x0c\n\
- \x0c\n\x05\x04\0\x02\x06\x06\x12\x03\t\r\x14\n\x0c\n\x05\x04\0\x02\x06\
- \x01\x12\x03\t\x15\x1c\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03\t\x1f\"\n\
- \x0b\n\x04\x04\0\x02\x07\x12\x03\n\x04\x1f\n\x0c\n\x05\x04\0\x02\x07\x04\
- \x12\x03\n\x04\x0c\n\x0c\n\x05\x04\0\x02\x07\x06\x12\x03\n\r\x12\n\x0c\n\
- \x05\x04\0\x02\x07\x01\x12\x03\n\x13\x18\n\x0c\n\x05\x04\0\x02\x07\x03\
- \x12\x03\n\x1b\x1e\n\x0b\n\x04\x04\0\x02\x08\x12\x03\x0b\x04#\n\x0c\n\
- \x05\x04\0\x02\x08\x04\x12\x03\x0b\x04\x0c\n\x0c\n\x05\x04\0\x02\x08\x05\
- \x12\x03\x0b\r\x13\n\x0c\n\x05\x04\0\x02\x08\x01\x12\x03\x0b\x14\x1c\n\
- \x0c\n\x05\x04\0\x02\x08\x03\x12\x03\x0b\x1f\"\n\x0b\n\x04\x04\0\x02\t\
- \x12\x03\x0c\x04!\n\x0c\n\x05\x04\0\x02\t\x04\x12\x03\x0c\x04\x0c\n\x0c\
- \n\x05\x04\0\x02\t\x05\x12\x03\x0c\r\x13\n\x0c\n\x05\x04\0\x02\t\x01\x12\
- \x03\x0c\x14\x1a\n\x0c\n\x05\x04\0\x02\t\x03\x12\x03\x0c\x1d\x20\n\x0b\n\
- \x04\x04\0\x02\n\x12\x03\r\x04*\n\x0c\n\x05\x04\0\x02\n\x04\x12\x03\r\
- \x04\x0c\n\x0c\n\x05\x04\0\x02\n\x05\x12\x03\r\r\x12\n\x0c\n\x05\x04\0\
- \x02\n\x01\x12\x03\r\x13\"\n\x0c\n\x05\x04\0\x02\n\x03\x12\x03\r%)\n\x0b\
- \n\x04\x04\0\x02\x0b\x12\x03\x0e\x04%\n\x0c\n\x05\x04\0\x02\x0b\x04\x12\
- \x03\x0e\x04\x0c\n\x0c\n\x05\x04\0\x02\x0b\x05\x12\x03\x0e\r\x13\n\x0c\n\
- \x05\x04\0\x02\x0b\x01\x12\x03\x0e\x14\x1d\n\x0c\n\x05\x04\0\x02\x0b\x03\
- \x12\x03\x0e\x20$\n\x0b\n\x04\x04\0\x02\x0c\x12\x03\x0f\x04/\n\x0c\n\x05\
- \x04\0\x02\x0c\x04\x12\x03\x0f\x04\x0c\n\x0c\n\x05\x04\0\x02\x0c\x05\x12\
- \x03\x0f\r\x12\n\x0c\n\x05\x04\0\x02\x0c\x01\x12\x03\x0f\x13'\n\x0c\n\
- \x05\x04\0\x02\x0c\x03\x12\x03\x0f*.\n\x0b\n\x04\x04\0\x02\r\x12\x03\x10\
- \x04$\n\x0c\n\x05\x04\0\x02\r\x04\x12\x03\x10\x04\x0c\n\x0c\n\x05\x04\0\
- \x02\r\x05\x12\x03\x10\r\x13\n\x0c\n\x05\x04\0\x02\r\x01\x12\x03\x10\x14\
- \x1c\n\x0c\n\x05\x04\0\x02\r\x03\x12\x03\x10\x1f#\n\x0b\n\x04\x04\0\x02\
- \x0e\x12\x03\x11\x04&\n\x0c\n\x05\x04\0\x02\x0e\x04\x12\x03\x11\x04\x0c\
- \n\x0c\n\x05\x04\0\x02\x0e\x06\x12\x03\x11\r\x15\n\x0c\n\x05\x04\0\x02\
- \x0e\x01\x12\x03\x11\x16\x1e\n\x0c\n\x05\x04\0\x02\x0e\x03\x12\x03\x11!%\
- \n\n\n\x02\x05\0\x12\x04\x14\0*\x01\n\n\n\x03\x05\0\x01\x12\x03\x14\x05\
- \x10\n\x0b\n\x04\x05\0\x02\0\x12\x03\x15\x04\x1c\n\x0c\n\x05\x05\0\x02\0\
- \x01\x12\x03\x15\x04\x15\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x15\x18\x1b\
- \n\x0b\n\x04\x05\0\x02\x01\x12\x03\x16\x04\x1e\n\x0c\n\x05\x05\0\x02\x01\
- \x01\x12\x03\x16\x04\x17\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x16\x1a\
- \x1d\n\x0b\n\x04\x05\0\x02\x02\x12\x03\x17\x04\x1c\n\x0c\n\x05\x05\0\x02\
- \x02\x01\x12\x03\x17\x04\x15\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\x17\
- \x18\x1b\n\x0b\n\x04\x05\0\x02\x03\x12\x03\x18\x04\x1d\n\x0c\n\x05\x05\0\
- \x02\x03\x01\x12\x03\x18\x04\x16\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\
- \x18\x19\x1c\n\x0b\n\x04\x05\0\x02\x04\x12\x03\x19\x04\x1c\n\x0c\n\x05\
- \x05\0\x02\x04\x01\x12\x03\x19\x04\x14\n\x0c\n\x05\x05\0\x02\x04\x02\x12\
- \x03\x19\x17\x1b\n\x0b\n\x04\x05\0\x02\x05\x12\x03\x1a\x04\x1c\n\x0c\n\
- \x05\x05\0\x02\x05\x01\x12\x03\x1a\x04\x14\n\x0c\n\x05\x05\0\x02\x05\x02\
- \x12\x03\x1a\x17\x1b\n\x0b\n\x04\x05\0\x02\x06\x12\x03\x1b\x04\x1d\n\x0c\
- \n\x05\x05\0\x02\x06\x01\x12\x03\x1b\x04\x15\n\x0c\n\x05\x05\0\x02\x06\
- \x02\x12\x03\x1b\x18\x1c\n\x0b\n\x04\x05\0\x02\x07\x12\x03\x1c\x04!\n\
- \x0c\n\x05\x05\0\x02\x07\x01\x12\x03\x1c\x04\x19\n\x0c\n\x05\x05\0\x02\
- \x07\x02\x12\x03\x1c\x1c\x20\n\x0b\n\x04\x05\0\x02\x08\x12\x03\x1d\x04\
- \x1c\n\x0c\n\x05\x05\0\x02\x08\x01\x12\x03\x1d\x04\x14\n\x0c\n\x05\x05\0\
- \x02\x08\x02\x12\x03\x1d\x17\x1b\n\x0b\n\x04\x05\0\x02\t\x12\x03\x1e\x04\
- \x1c\n\x0c\n\x05\x05\0\x02\t\x01\x12\x03\x1e\x04\x14\n\x0c\n\x05\x05\0\
- \x02\t\x02\x12\x03\x1e\x17\x1b\n\x0b\n\x04\x05\0\x02\n\x12\x03\x1f\x04\
- \x1c\n\x0c\n\x05\x05\0\x02\n\x01\x12\x03\x1f\x04\x14\n\x0c\n\x05\x05\0\
- \x02\n\x02\x12\x03\x1f\x17\x1b\n\x0b\n\x04\x05\0\x02\x0b\x12\x03\x20\x04\
- \x1e\n\x0c\n\x05\x05\0\x02\x0b\x01\x12\x03\x20\x04\x16\n\x0c\n\x05\x05\0\
- \x02\x0b\x02\x12\x03\x20\x19\x1d\n\x0b\n\x04\x05\0\x02\x0c\x12\x03!\x04\
- \x1f\n\x0c\n\x05\x05\0\x02\x0c\x01\x12\x03!\x04\x17\n\x0c\n\x05\x05\0\
- \x02\x0c\x02\x12\x03!\x1a\x1e\n\x0b\n\x04\x05\0\x02\r\x12\x03\"\x04\x1e\
- \n\x0c\n\x05\x05\0\x02\r\x01\x12\x03\"\x04\x16\n\x0c\n\x05\x05\0\x02\r\
- \x02\x12\x03\"\x19\x1d\n\x0b\n\x04\x05\0\x02\x0e\x12\x03#\x04\"\n\x0c\n\
- \x05\x05\0\x02\x0e\x01\x12\x03#\x04\x1a\n\x0c\n\x05\x05\0\x02\x0e\x02\
- \x12\x03#\x1d!\n\x0b\n\x04\x05\0\x02\x0f\x12\x03$\x04\x20\n\x0c\n\x05\
- \x05\0\x02\x0f\x01\x12\x03$\x04\x18\n\x0c\n\x05\x05\0\x02\x0f\x02\x12\
- \x03$\x1b\x1f\n\x0b\n\x04\x05\0\x02\x10\x12\x03%\x04\x1f\n\x0c\n\x05\x05\
- \0\x02\x10\x01\x12\x03%\x04\x17\n\x0c\n\x05\x05\0\x02\x10\x02\x12\x03%\
- \x1a\x1e\n\x0b\n\x04\x05\0\x02\x11\x12\x03&\x04\x1e\n\x0c\n\x05\x05\0\
- \x02\x11\x01\x12\x03&\x04\x16\n\x0c\n\x05\x05\0\x02\x11\x02\x12\x03&\x19\
- \x1d\n\x0b\n\x04\x05\0\x02\x12\x12\x03'\x04\x1e\n\x0c\n\x05\x05\0\x02\
- \x12\x01\x12\x03'\x04\x16\n\x0c\n\x05\x05\0\x02\x12\x02\x12\x03'\x19\x1d\
- \n\x0b\n\x04\x05\0\x02\x13\x12\x03(\x04\x1e\n\x0c\n\x05\x05\0\x02\x13\
- \x01\x12\x03(\x04\x16\n\x0c\n\x05\x05\0\x02\x13\x02\x12\x03(\x19\x1d\n\
- \x0b\n\x04\x05\0\x02\x14\x12\x03)\x04&\n\x0c\n\x05\x05\0\x02\x14\x01\x12\
- \x03)\x04\x1e\n\x0c\n\x05\x05\0\x02\x14\x02\x12\x03)!%\n\n\n\x02\x04\x01\
- \x12\x04,\08\x01\n\n\n\x03\x04\x01\x01\x12\x03,\x08\x13\n\x0b\n\x04\x04\
- \x01\x02\0\x12\x03-\x04%\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03-\x04\x0c\
- \n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03-\r\x13\n\x0c\n\x05\x04\x01\x02\0\
- \x01\x12\x03-\x14\x1e\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03-!$\n\x0b\n\
- \x04\x04\x01\x02\x01\x12\x03.\x04\"\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\
- \x03.\x04\x0c\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03.\r\x11\n\x0c\n\x05\
- \x04\x01\x02\x01\x01\x12\x03.\x12\x1b\n\x0c\n\x05\x04\x01\x02\x01\x03\
- \x12\x03.\x1e!\n\x0b\n\x04\x04\x01\x02\x02\x12\x03/\x04!\n\x0c\n\x05\x04\
- \x01\x02\x02\x04\x12\x03/\x04\x0c\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\
- \x03/\r\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03/\x12\x1a\n\x0c\n\x05\
- \x04\x01\x02\x02\x03\x12\x03/\x1d\x20\n\x0b\n\x04\x04\x01\x02\x03\x12\
- \x030\x04!\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x030\x04\x0c\n\x0c\n\x05\
- \x04\x01\x02\x03\x05\x12\x030\r\x13\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\
- \x030\x14\x1a\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x030\x1d\x20\n\x0b\n\
- \x04\x04\x01\x02\x04\x12\x031\x04\x1f\n\x0c\n\x05\x04\x01\x02\x04\x04\
- \x12\x031\x04\x0c\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x031\r\x13\n\x0c\n\
- \x05\x04\x01\x02\x04\x01\x12\x031\x14\x18\n\x0c\n\x05\x04\x01\x02\x04\
- \x03\x12\x031\x1b\x1e\n\x0b\n\x04\x04\x01\x02\x05\x12\x032\x04%\n\x0c\n\
- \x05\x04\x01\x02\x05\x04\x12\x032\x04\x0c\n\x0c\n\x05\x04\x01\x02\x05\
- \x05\x12\x032\r\x13\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x032\x14\x1e\n\
- \x0c\n\x05\x04\x01\x02\x05\x03\x12\x032!$\n\x0b\n\x04\x04\x01\x02\x06\
- \x12\x033\x04*\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x033\x04\x0c\n\x0c\n\
- \x05\x04\x01\x02\x06\x05\x12\x033\r\x12\n\x0c\n\x05\x04\x01\x02\x06\x01\
- \x12\x033\x13#\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x033&)\n\x0b\n\x04\
- \x04\x01\x02\x07\x12\x034\x04)\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\x034\
- \x04\x0c\n\x0c\n\x05\x04\x01\x02\x07\x05\x12\x034\r\x13\n\x0c\n\x05\x04\
- \x01\x02\x07\x01\x12\x034\x14!\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x034$\
- (\n\x0b\n\x04\x04\x01\x02\x08\x12\x035\x04,\n\x0c\n\x05\x04\x01\x02\x08\
- \x04\x12\x035\x04\x0c\n\x0c\n\x05\x04\x01\x02\x08\x06\x12\x035\r\x17\n\
- \x0c\n\x05\x04\x01\x02\x08\x01\x12\x035\x18$\n\x0c\n\x05\x04\x01\x02\x08\
- \x03\x12\x035'+\n\x0b\n\x04\x04\x01\x02\t\x12\x036\x040\n\x0c\n\x05\x04\
- \x01\x02\t\x04\x12\x036\x04\x0c\n\x0c\n\x05\x04\x01\x02\t\x05\x12\x036\r\
- \x13\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x036\x14(\n\x0c\n\x05\x04\x01\x02\
- \t\x03\x12\x036+/\n\x0b\n\x04\x04\x01\x02\n\x12\x037\x04&\n\x0c\n\x05\
- \x04\x01\x02\n\x04\x12\x037\x04\x0c\n\x0c\n\x05\x04\x01\x02\n\x06\x12\
- \x037\r\x15\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x037\x16\x1e\n\x0c\n\x05\
- \x04\x01\x02\n\x03\x12\x037!%\n\n\n\x02\x04\x02\x12\x04:\0>\x01\n\n\n\
- \x03\x04\x02\x01\x12\x03:\x08\x12\n\x0b\n\x04\x04\x02\x02\0\x12\x03;\x04\
- &\n\x0c\n\x05\x04\x02\x02\0\x04\x12\x03;\x04\x0c\n\x0c\n\x05\x04\x02\x02\
- \0\x06\x12\x03;\r\x1b\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03;\x1c\x1f\n\
- \x0c\n\x05\x04\x02\x02\0\x03\x12\x03;\"%\n\x0b\n\x04\x04\x02\x02\x01\x12\
- \x03<\x04\"\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03<\x04\x0c\n\x0c\n\x05\
- \x04\x02\x02\x01\x05\x12\x03<\r\x12\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\
- \x03<\x13\x1b\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03<\x1e!\n\x0b\n\x04\
- \x04\x02\x02\x02\x12\x03=\x04&\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03=\
- \x04\x0c\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03=\r\x13\n\x0c\n\x05\x04\
- \x02\x02\x02\x01\x12\x03=\x14\x1f\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\
- \x03=\"%\n\n\n\x02\x05\x01\x12\x04@\0M\x01\n\n\n\x03\x05\x01\x01\x12\x03\
- @\x05\x13\n\x0b\n\x04\x05\x01\x02\0\x12\x03A\x04\x1d\n\x0c\n\x05\x05\x01\
- \x02\0\x01\x12\x03A\x04\x16\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03A\x19\
- \x1c\n\x0b\n\x04\x05\x01\x02\x01\x12\x03B\x04\x17\n\x0c\n\x05\x05\x01\
- \x02\x01\x01\x12\x03B\x04\x10\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03B\
- \x13\x16\n\x0b\n\x04\x05\x01\x02\x02\x12\x03C\x04\x1b\n\x0c\n\x05\x05\
- \x01\x02\x02\x01\x12\x03C\x04\x14\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\
- \x03C\x17\x1a\n\x0b\n\x04\x05\x01\x02\x03\x12\x03D\x04\x16\n\x0c\n\x05\
- \x05\x01\x02\x03\x01\x12\x03D\x04\x0f\n\x0c\n\x05\x05\x01\x02\x03\x02\
- \x12\x03D\x12\x15\n\x0b\n\x04\x05\x01\x02\x04\x12\x03E\x04\x1b\n\x0c\n\
- \x05\x05\x01\x02\x04\x01\x12\x03E\x04\x14\n\x0c\n\x05\x05\x01\x02\x04\
- \x02\x12\x03E\x17\x1a\n\x0b\n\x04\x05\x01\x02\x05\x12\x03F\x04\x1a\n\x0c\
- \n\x05\x05\x01\x02\x05\x01\x12\x03F\x04\x13\n\x0c\n\x05\x05\x01\x02\x05\
- \x02\x12\x03F\x16\x19\n\x0b\n\x04\x05\x01\x02\x06\x12\x03G\x04\x18\n\x0c\
- \n\x05\x05\x01\x02\x06\x01\x12\x03G\x04\x11\n\x0c\n\x05\x05\x01\x02\x06\
- \x02\x12\x03G\x14\x17\n\x0b\n\x04\x05\x01\x02\x07\x12\x03H\x04\x17\n\x0c\
- \n\x05\x05\x01\x02\x07\x01\x12\x03H\x04\x10\n\x0c\n\x05\x05\x01\x02\x07\
- \x02\x12\x03H\x13\x16\n\x0b\n\x04\x05\x01\x02\x08\x12\x03I\x04\x1a\n\x0c\
- \n\x05\x05\x01\x02\x08\x01\x12\x03I\x04\x13\n\x0c\n\x05\x05\x01\x02\x08\
- \x02\x12\x03I\x16\x19\n\x0b\n\x04\x05\x01\x02\t\x12\x03J\x04\x17\n\x0c\n\
- \x05\x05\x01\x02\t\x01\x12\x03J\x04\x10\n\x0c\n\x05\x05\x01\x02\t\x02\
- \x12\x03J\x13\x16\n\x0b\n\x04\x05\x01\x02\n\x12\x03K\x04\x1a\n\x0c\n\x05\
- \x05\x01\x02\n\x01\x12\x03K\x04\x13\n\x0c\n\x05\x05\x01\x02\n\x02\x12\
- \x03K\x16\x19\n\x0b\n\x04\x05\x01\x02\x0b\x12\x03L\x04\x12\n\x0c\n\x05\
- \x05\x01\x02\x0b\x01\x12\x03L\x04\x0b\n\x0c\n\x05\x05\x01\x02\x0b\x02\
- \x12\x03L\x0e\x11\n\n\n\x02\x04\x03\x12\x04O\0Q\x01\n\n\n\x03\x04\x03\
- \x01\x12\x03O\x08\x0f\n\x0b\n\x04\x04\x03\x02\0\x12\x03P\x04!\n\x0c\n\
- \x05\x04\x03\x02\0\x04\x12\x03P\x04\x0c\n\x0c\n\x05\x04\x03\x02\0\x05\
- \x12\x03P\r\x13\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03P\x14\x1a\n\x0c\n\
- \x05\x04\x03\x02\0\x03\x12\x03P\x1d\x20\n\n\n\x02\x04\x04\x12\x04S\0c\
- \x01\n\n\n\x03\x04\x04\x01\x12\x03S\x08\r\n\x0b\n\x04\x04\x04\x02\0\x12\
- \x03T\x04&\n\x0c\n\x05\x04\x04\x02\0\x04\x12\x03T\x04\x0c\n\x0c\n\x05\
- \x04\x04\x02\0\x05\x12\x03T\r\x13\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x03T\
- \x14\x1f\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03T\"%\n\x0b\n\x04\x04\x04\
- \x02\x01\x12\x03U\x04\x20\n\x0c\n\x05\x04\x04\x02\x01\x04\x12\x03U\x04\
- \x0c\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03U\r\x13\n\x0c\n\x05\x04\x04\
- \x02\x01\x01\x12\x03U\x14\x19\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03U\
- \x1c\x1f\n\x0b\n\x04\x04\x04\x02\x02\x12\x03V\x04&\n\x0c\n\x05\x04\x04\
- \x02\x02\x04\x12\x03V\x04\x0c\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03V\r\
- \x13\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03V\x14\x1f\n\x0c\n\x05\x04\
- \x04\x02\x02\x03\x12\x03V\"%\n\x0b\n\x04\x04\x04\x02\x03\x12\x03W\x04%\n\
- \x0c\n\x05\x04\x04\x02\x03\x04\x12\x03W\x04\x0c\n\x0c\n\x05\x04\x04\x02\
- \x03\x06\x12\x03W\r\x17\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03W\x18\x1e\
- \n\x0c\n\x05\x04\x04\x02\x03\x03\x12\x03W!$\n\x0b\n\x04\x04\x04\x02\x04\
- \x12\x03X\x04/\n\x0c\n\x05\x04\x04\x02\x04\x04\x12\x03X\x04\x0c\n\x0c\n\
- \x05\x04\x04\x02\x04\x05\x12\x03X\r\x13\n\x0c\n\x05\x04\x04\x02\x04\x01\
- \x12\x03X\x14(\n\x0c\n\x05\x04\x04\x02\x04\x03\x12\x03X+.\n\x0b\n\x04\
- \x04\x04\x02\x05\x12\x03Y\x04.\n\x0c\n\x05\x04\x04\x02\x05\x04\x12\x03Y\
- \x04\x0c\n\x0c\n\x05\x04\x04\x02\x05\x05\x12\x03Y\r\x13\n\x0c\n\x05\x04\
- \x04\x02\x05\x01\x12\x03Y\x14'\n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03Y*\
- -\n\x0b\n\x04\x04\x04\x02\x06\x12\x03Z\x04\x20\n\x0c\n\x05\x04\x04\x02\
- \x06\x04\x12\x03Z\x04\x0c\n\x0c\n\x05\x04\x04\x02\x06\x05\x12\x03Z\r\x11\
- \n\x0c\n\x05\x04\x04\x02\x06\x01\x12\x03Z\x12\x19\n\x0c\n\x05\x04\x04\
- \x02\x06\x03\x12\x03Z\x1c\x1f\n\x0b\n\x04\x04\x04\x02\x07\x12\x03[\x04\
- \x1f\n\x0c\n\x05\x04\x04\x02\x07\x04\x12\x03[\x04\x0c\n\x0c\n\x05\x04\
- \x04\x02\x07\x05\x12\x03[\r\x11\n\x0c\n\x05\x04\x04\x02\x07\x01\x12\x03[\
- \x12\x18\n\x0c\n\x05\x04\x04\x02\x07\x03\x12\x03[\x1b\x1e\n\x0b\n\x04\
- \x04\x04\x02\x08\x12\x03\\\x04.\n\x0c\n\x05\x04\x04\x02\x08\x04\x12\x03\
- \\\x04\x0c\n\x0c\n\x05\x04\x04\x02\x08\x05\x12\x03\\\r\x13\n\x0c\n\x05\
- \x04\x04\x02\x08\x01\x12\x03\\\x14&\n\x0c\n\x05\x04\x04\x02\x08\x03\x12\
- \x03\\)-\n\x0b\n\x04\x04\x04\x02\t\x12\x03]\x04.\n\x0c\n\x05\x04\x04\x02\
- \t\x04\x12\x03]\x04\x0c\n\x0c\n\x05\x04\x04\x02\t\x05\x12\x03]\r\x13\n\
- \x0c\n\x05\x04\x04\x02\t\x01\x12\x03]\x14&\n\x0c\n\x05\x04\x04\x02\t\x03\
- \x12\x03])-\n\x0b\n\x04\x04\x04\x02\n\x12\x03^\x04/\n\x0c\n\x05\x04\x04\
- \x02\n\x04\x12\x03^\x04\x0c\n\x0c\n\x05\x04\x04\x02\n\x05\x12\x03^\r\x11\
- \n\x0c\n\x05\x04\x04\x02\n\x01\x12\x03^\x12'\n\x0c\n\x05\x04\x04\x02\n\
- \x03\x12\x03^*.\n\x0b\n\x04\x04\x04\x02\x0b\x12\x03_\x04\x1f\n\x0c\n\x05\
- \x04\x04\x02\x0b\x04\x12\x03_\x04\x0c\n\x0c\n\x05\x04\x04\x02\x0b\x05\
- \x12\x03_\r\x13\n\x0c\n\x05\x04\x04\x02\x0b\x01\x12\x03_\x14\x17\n\x0c\n\
- \x05\x04\x04\x02\x0b\x03\x12\x03_\x1a\x1e\n\x0b\n\x04\x04\x04\x02\x0c\
- \x12\x03`\x04/\n\x0c\n\x05\x04\x04\x02\x0c\x04\x12\x03`\x04\x0c\n\x0c\n\
- \x05\x04\x04\x02\x0c\x05\x12\x03`\r\x13\n\x0c\n\x05\x04\x04\x02\x0c\x01\
- \x12\x03`\x14'\n\x0c\n\x05\x04\x04\x02\x0c\x03\x12\x03`*.\n\x0b\n\x04\
- \x04\x04\x02\r\x12\x03a\x04#\n\x0c\n\x05\x04\x04\x02\r\x04\x12\x03a\x04\
- \x0c\n\x0c\n\x05\x04\x04\x02\r\x06\x12\x03a\r\x15\n\x0c\n\x05\x04\x04\
- \x02\r\x01\x12\x03a\x16\x1b\n\x0c\n\x05\x04\x04\x02\r\x03\x12\x03a\x1e\"\
- \n\x0b\n\x04\x04\x04\x02\x0e\x12\x03b\x04\x1a\n\x0c\n\x05\x04\x04\x02\
- \x0e\x04\x12\x03b\x04\x0c\n\x0c\n\x05\x04\x04\x02\x0e\x06\x12\x03b\r\x0f\
- \n\x0c\n\x05\x04\x04\x02\x0e\x01\x12\x03b\x10\x12\n\x0c\n\x05\x04\x04\
- \x02\x0e\x03\x12\x03b\x15\x19\n\n\n\x02\x05\x02\x12\x04e\0j\x01\n\n\n\
- \x03\x05\x02\x01\x12\x03e\x05\x0f\n\x0b\n\x04\x05\x02\x02\0\x12\x03f\x04\
- \x1a\n\x0c\n\x05\x05\x02\x02\0\x01\x12\x03f\x04\x13\n\x0c\n\x05\x05\x02\
- \x02\0\x02\x12\x03f\x16\x19\n\x0b\n\x04\x05\x02\x02\x01\x12\x03g\x04\x1a\
- \n\x0c\n\x05\x05\x02\x02\x01\x01\x12\x03g\x04\x13\n\x0c\n\x05\x05\x02\
- \x02\x01\x02\x12\x03g\x16\x19\n\x0b\n\x04\x05\x02\x02\x02\x12\x03h\x04\
- \x1b\n\x0c\n\x05\x05\x02\x02\x02\x01\x12\x03h\x04\x14\n\x0c\n\x05\x05\
- \x02\x02\x02\x02\x12\x03h\x17\x1a\n\x0b\n\x04\x05\x02\x02\x03\x12\x03i\
- \x04\x1d\n\x0c\n\x05\x05\x02\x02\x03\x01\x12\x03i\x04\x16\n\x0c\n\x05\
- \x05\x02\x02\x03\x02\x12\x03i\x19\x1c\n\n\n\x02\x04\x05\x12\x04l\0q\x01\
- \n\n\n\x03\x04\x05\x01\x12\x03l\x08\x10\n\x0b\n\x04\x04\x05\x02\0\x12\
- \x03m\x04\x1d\n\x0c\n\x05\x04\x05\x02\0\x04\x12\x03m\x04\x0c\n\x0c\n\x05\
- \x04\x05\x02\0\x05\x12\x03m\r\x12\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03m\
- \x13\x16\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x03m\x19\x1c\n\x0b\n\x04\x04\
- \x05\x02\x01\x12\x03n\x04\x1e\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\x03n\
- \x04\x0c\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03n\r\x13\n\x0c\n\x05\x04\
- \x05\x02\x01\x01\x12\x03n\x14\x17\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\
- \x03n\x1a\x1d\n\x0b\n\x04\x04\x05\x02\x02\x12\x03o\x04\x1f\n\x0c\n\x05\
- \x04\x05\x02\x02\x04\x12\x03o\x04\x0c\n\x0c\n\x05\x04\x05\x02\x02\x05\
- \x12\x03o\r\x11\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03o\x12\x18\n\x0c\n\
- \x05\x04\x05\x02\x02\x03\x12\x03o\x1b\x1e\n\x0b\n\x04\x04\x05\x02\x03\
- \x12\x03p\x04\"\n\x0c\n\x05\x04\x05\x02\x03\x04\x12\x03p\x04\x0c\n\x0c\n\
- \x05\x04\x05\x02\x03\x05\x12\x03p\r\x13\n\x0c\n\x05\x04\x05\x02\x03\x01\
- \x12\x03p\x14\x1b\n\x0c\n\x05\x04\x05\x02\x03\x03\x12\x03p\x1e!\n\n\n\
- \x02\x04\x06\x12\x04s\0}\x01\n\n\n\x03\x04\x06\x01\x12\x03s\x08\n\n\x0b\
- \n\x04\x04\x06\x02\0\x12\x03t\x04\x1e\n\x0c\n\x05\x04\x06\x02\0\x04\x12\
- \x03t\x04\x0c\n\x0c\n\x05\x04\x06\x02\0\x05\x12\x03t\r\x12\n\x0c\n\x05\
- \x04\x06\x02\0\x01\x12\x03t\x13\x17\n\x0c\n\x05\x04\x06\x02\0\x03\x12\
- \x03t\x1a\x1d\n\x0b\n\x04\x04\x06\x02\x01\x12\x03u\x04!\n\x0c\n\x05\x04\
- \x06\x02\x01\x04\x12\x03u\x04\x0c\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\
- \x03u\r\x12\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03u\x13\x1a\n\x0c\n\x05\
- \x04\x06\x02\x01\x03\x12\x03u\x1d\x20\n\x0b\n\x04\x04\x06\x02\x02\x12\
- \x03v\x04#\n\x0c\n\x05\x04\x06\x02\x02\x04\x12\x03v\x04\x0c\n\x0c\n\x05\
- \x04\x06\x02\x02\x05\x12\x03v\r\x12\n\x0c\n\x05\x04\x06\x02\x02\x01\x12\
- \x03v\x13\x1c\n\x0c\n\x05\x04\x06\x02\x02\x03\x12\x03v\x1f\"\n\x0b\n\x04\
- \x04\x06\x02\x03\x12\x03w\x04\"\n\x0c\n\x05\x04\x06\x02\x03\x04\x12\x03w\
- \x04\x0c\n\x0c\n\x05\x04\x06\x02\x03\x05\x12\x03w\r\x12\n\x0c\n\x05\x04\
- \x06\x02\x03\x01\x12\x03w\x13\x1b\n\x0c\n\x05\x04\x06\x02\x03\x03\x12\
- \x03w\x1e!\n\x0b\n\x04\x04\x06\x02\x04\x12\x03x\x04$\n\x0c\n\x05\x04\x06\
- \x02\x04\x04\x12\x03x\x04\x0c\n\x0c\n\x05\x04\x06\x02\x04\x05\x12\x03x\r\
- \x13\n\x0c\n\x05\x04\x06\x02\x04\x01\x12\x03x\x14\x1d\n\x0c\n\x05\x04\
- \x06\x02\x04\x03\x12\x03x\x20#\n\x0b\n\x04\x04\x06\x02\x05\x12\x03y\x04)\
- \n\x0c\n\x05\x04\x06\x02\x05\x04\x12\x03y\x04\x0c\n\x0c\n\x05\x04\x06\
- \x02\x05\x05\x12\x03y\r\x13\n\x0c\n\x05\x04\x06\x02\x05\x01\x12\x03y\x14\
- \"\n\x0c\n\x05\x04\x06\x02\x05\x03\x12\x03y%(\n\x0b\n\x04\x04\x06\x02\
- \x06\x12\x03z\x04\"\n\x0c\n\x05\x04\x06\x02\x06\x04\x12\x03z\x04\x0c\n\
- \x0c\n\x05\x04\x06\x02\x06\x05\x12\x03z\r\x13\n\x0c\n\x05\x04\x06\x02\
- \x06\x01\x12\x03z\x14\x1b\n\x0c\n\x05\x04\x06\x02\x06\x03\x12\x03z\x1e!\
- \n\x0b\n\x04\x04\x06\x02\x07\x12\x03{\x04%\n\x0c\n\x05\x04\x06\x02\x07\
- \x04\x12\x03{\x04\x0c\n\x0c\n\x05\x04\x06\x02\x07\x05\x12\x03{\r\x13\n\
- \x0c\n\x05\x04\x06\x02\x07\x01\x12\x03{\x14\x1e\n\x0c\n\x05\x04\x06\x02\
- \x07\x03\x12\x03{!$\n\x0b\n\x04\x04\x06\x02\x08\x12\x03|\x04\x1d\n\x0c\n\
- \x05\x04\x06\x02\x08\x04\x12\x03|\x04\x0c\n\x0c\n\x05\x04\x06\x02\x08\
- \x05\x12\x03|\r\x12\n\x0c\n\x05\x04\x06\x02\x08\x01\x12\x03|\x13\x16\n\
- \x0c\n\x05\x04\x06\x02\x08\x03\x12\x03|\x19\x1c\n\x0b\n\x02\x04\x07\x12\
- \x05\x7f\0\x82\x01\x01\n\n\n\x03\x04\x07\x01\x12\x03\x7f\x08\x10\n\x0c\n\
- \x04\x04\x07\x02\0\x12\x04\x80\x01\x04\x1f\n\r\n\x05\x04\x07\x02\0\x04\
- \x12\x04\x80\x01\x04\x0c\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\x80\x01\r\
- \x13\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\x80\x01\x14\x18\n\r\n\x05\x04\
- \x07\x02\0\x03\x12\x04\x80\x01\x1b\x1e\n\x0c\n\x04\x04\x07\x02\x01\x12\
- \x04\x81\x01\x04#\n\r\n\x05\x04\x07\x02\x01\x04\x12\x04\x81\x01\x04\x0c\
- \n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\x81\x01\r\x13\n\r\n\x05\x04\x07\
- \x02\x01\x01\x12\x04\x81\x01\x14\x1c\n\r\n\x05\x04\x07\x02\x01\x03\x12\
- \x04\x81\x01\x1f\"\
+ \x0b\x12\x0b\n\x07kHidden\x10\x0c\x12\x17\n\x13kSupportsPlaylistV2\x10\r\
+ *d\n\nPlayStatus\x12\x13\n\x0fkPlayStatusStop\x10\0\x12\x13\n\x0fkPlaySt\
+ atusPlay\x10\x01\x12\x14\n\x10kPlayStatusPause\x10\x02\x12\x16\n\x12kPla\
+ yStatusLoading\x10\x03J\xea.\n\x07\x12\x05\0\0\x83\x01\x01\n\x08\n\x01\
+ \x0c\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\x04\x02\0\x12\x01\n\n\n\x03\x04\
+ \0\x01\x12\x03\x02\x08\r\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\"\n\x0c\
+ \n\x05\x04\0\x02\0\x04\x12\x03\x03\x04\x0c\n\x0c\n\x05\x04\0\x02\0\x05\
+ \x12\x03\x03\r\x13\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\x14\x1b\n\x0c\
+ \n\x05\x04\0\x02\0\x03\x12\x03\x03\x1e!\n\x0b\n\x04\x04\0\x02\x01\x12\
+ \x03\x04\x04\x20\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x04\x04\x0c\n\x0c\
+ \n\x05\x04\0\x02\x01\x05\x12\x03\x04\r\x13\n\x0c\n\x05\x04\0\x02\x01\x01\
+ \x12\x03\x04\x14\x19\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x04\x1c\x1f\n\
+ \x0b\n\x04\x04\0\x02\x02\x12\x03\x05\x04+\n\x0c\n\x05\x04\0\x02\x02\x04\
+ \x12\x03\x05\x04\x0c\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03\x05\r\x13\n\
+ \x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x05\x14$\n\x0c\n\x05\x04\0\x02\x02\
+ \x03\x12\x03\x05'*\n\x0b\n\x04\x04\0\x02\x03\x12\x03\x06\x04!\n\x0c\n\
+ \x05\x04\0\x02\x03\x04\x12\x03\x06\x04\x0c\n\x0c\n\x05\x04\0\x02\x03\x05\
+ \x12\x03\x06\r\x13\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x06\x14\x1a\n\
+ \x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x06\x1d\x20\n\x0b\n\x04\x04\0\x02\
+ \x04\x12\x03\x07\x04#\n\x0c\n\x05\x04\0\x02\x04\x04\x12\x03\x07\x04\x0c\
+ \n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03\x07\r\x18\n\x0c\n\x05\x04\0\x02\
+ \x04\x01\x12\x03\x07\x19\x1c\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03\x07\
+ \x1f\"\n\x0b\n\x04\x04\0\x02\x05\x12\x03\x08\x04,\n\x0c\n\x05\x04\0\x02\
+ \x05\x04\x12\x03\x08\x04\x0c\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03\x08\r\
+ \x18\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03\x08\x19%\n\x0c\n\x05\x04\0\
+ \x02\x05\x03\x12\x03\x08(+\n\x0b\n\x04\x04\0\x02\x06\x12\x03\t\x04#\n\
+ \x0c\n\x05\x04\0\x02\x06\x04\x12\x03\t\x04\x0c\n\x0c\n\x05\x04\0\x02\x06\
+ \x06\x12\x03\t\r\x14\n\x0c\n\x05\x04\0\x02\x06\x01\x12\x03\t\x15\x1c\n\
+ \x0c\n\x05\x04\0\x02\x06\x03\x12\x03\t\x1f\"\n\x0b\n\x04\x04\0\x02\x07\
+ \x12\x03\n\x04\x1f\n\x0c\n\x05\x04\0\x02\x07\x04\x12\x03\n\x04\x0c\n\x0c\
+ \n\x05\x04\0\x02\x07\x06\x12\x03\n\r\x12\n\x0c\n\x05\x04\0\x02\x07\x01\
+ \x12\x03\n\x13\x18\n\x0c\n\x05\x04\0\x02\x07\x03\x12\x03\n\x1b\x1e\n\x0b\
+ \n\x04\x04\0\x02\x08\x12\x03\x0b\x04#\n\x0c\n\x05\x04\0\x02\x08\x04\x12\
+ \x03\x0b\x04\x0c\n\x0c\n\x05\x04\0\x02\x08\x05\x12\x03\x0b\r\x13\n\x0c\n\
+ \x05\x04\0\x02\x08\x01\x12\x03\x0b\x14\x1c\n\x0c\n\x05\x04\0\x02\x08\x03\
+ \x12\x03\x0b\x1f\"\n\x0b\n\x04\x04\0\x02\t\x12\x03\x0c\x04!\n\x0c\n\x05\
+ \x04\0\x02\t\x04\x12\x03\x0c\x04\x0c\n\x0c\n\x05\x04\0\x02\t\x05\x12\x03\
+ \x0c\r\x13\n\x0c\n\x05\x04\0\x02\t\x01\x12\x03\x0c\x14\x1a\n\x0c\n\x05\
+ \x04\0\x02\t\x03\x12\x03\x0c\x1d\x20\n\x0b\n\x04\x04\0\x02\n\x12\x03\r\
+ \x04*\n\x0c\n\x05\x04\0\x02\n\x04\x12\x03\r\x04\x0c\n\x0c\n\x05\x04\0\
+ \x02\n\x05\x12\x03\r\r\x12\n\x0c\n\x05\x04\0\x02\n\x01\x12\x03\r\x13\"\n\
+ \x0c\n\x05\x04\0\x02\n\x03\x12\x03\r%)\n\x0b\n\x04\x04\0\x02\x0b\x12\x03\
+ \x0e\x04%\n\x0c\n\x05\x04\0\x02\x0b\x04\x12\x03\x0e\x04\x0c\n\x0c\n\x05\
+ \x04\0\x02\x0b\x05\x12\x03\x0e\r\x13\n\x0c\n\x05\x04\0\x02\x0b\x01\x12\
+ \x03\x0e\x14\x1d\n\x0c\n\x05\x04\0\x02\x0b\x03\x12\x03\x0e\x20$\n\x0b\n\
+ \x04\x04\0\x02\x0c\x12\x03\x0f\x04/\n\x0c\n\x05\x04\0\x02\x0c\x04\x12\
+ \x03\x0f\x04\x0c\n\x0c\n\x05\x04\0\x02\x0c\x05\x12\x03\x0f\r\x12\n\x0c\n\
+ \x05\x04\0\x02\x0c\x01\x12\x03\x0f\x13'\n\x0c\n\x05\x04\0\x02\x0c\x03\
+ \x12\x03\x0f*.\n\x0b\n\x04\x04\0\x02\r\x12\x03\x10\x04$\n\x0c\n\x05\x04\
+ \0\x02\r\x04\x12\x03\x10\x04\x0c\n\x0c\n\x05\x04\0\x02\r\x05\x12\x03\x10\
+ \r\x13\n\x0c\n\x05\x04\0\x02\r\x01\x12\x03\x10\x14\x1c\n\x0c\n\x05\x04\0\
+ \x02\r\x03\x12\x03\x10\x1f#\n\x0b\n\x04\x04\0\x02\x0e\x12\x03\x11\x04&\n\
+ \x0c\n\x05\x04\0\x02\x0e\x04\x12\x03\x11\x04\x0c\n\x0c\n\x05\x04\0\x02\
+ \x0e\x06\x12\x03\x11\r\x15\n\x0c\n\x05\x04\0\x02\x0e\x01\x12\x03\x11\x16\
+ \x1e\n\x0c\n\x05\x04\0\x02\x0e\x03\x12\x03\x11!%\n\n\n\x02\x05\0\x12\x04\
+ \x14\0*\x01\n\n\n\x03\x05\0\x01\x12\x03\x14\x05\x10\n\x0b\n\x04\x05\0\
+ \x02\0\x12\x03\x15\x04\x1c\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x15\x04\
+ \x15\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x15\x18\x1b\n\x0b\n\x04\x05\0\
+ \x02\x01\x12\x03\x16\x04\x1e\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x16\
+ \x04\x17\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x16\x1a\x1d\n\x0b\n\x04\
+ \x05\0\x02\x02\x12\x03\x17\x04\x1c\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\
+ \x17\x04\x15\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\x17\x18\x1b\n\x0b\n\
+ \x04\x05\0\x02\x03\x12\x03\x18\x04\x1d\n\x0c\n\x05\x05\0\x02\x03\x01\x12\
+ \x03\x18\x04\x16\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\x18\x19\x1c\n\x0b\
+ \n\x04\x05\0\x02\x04\x12\x03\x19\x04\x1c\n\x0c\n\x05\x05\0\x02\x04\x01\
+ \x12\x03\x19\x04\x14\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03\x19\x17\x1b\n\
+ \x0b\n\x04\x05\0\x02\x05\x12\x03\x1a\x04\x1c\n\x0c\n\x05\x05\0\x02\x05\
+ \x01\x12\x03\x1a\x04\x14\n\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\x1a\x17\
+ \x1b\n\x0b\n\x04\x05\0\x02\x06\x12\x03\x1b\x04\x1d\n\x0c\n\x05\x05\0\x02\
+ \x06\x01\x12\x03\x1b\x04\x15\n\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\x1b\
+ \x18\x1c\n\x0b\n\x04\x05\0\x02\x07\x12\x03\x1c\x04!\n\x0c\n\x05\x05\0\
+ \x02\x07\x01\x12\x03\x1c\x04\x19\n\x0c\n\x05\x05\0\x02\x07\x02\x12\x03\
+ \x1c\x1c\x20\n\x0b\n\x04\x05\0\x02\x08\x12\x03\x1d\x04\x1c\n\x0c\n\x05\
+ \x05\0\x02\x08\x01\x12\x03\x1d\x04\x14\n\x0c\n\x05\x05\0\x02\x08\x02\x12\
+ \x03\x1d\x17\x1b\n\x0b\n\x04\x05\0\x02\t\x12\x03\x1e\x04\x1c\n\x0c\n\x05\
+ \x05\0\x02\t\x01\x12\x03\x1e\x04\x14\n\x0c\n\x05\x05\0\x02\t\x02\x12\x03\
+ \x1e\x17\x1b\n\x0b\n\x04\x05\0\x02\n\x12\x03\x1f\x04\x1c\n\x0c\n\x05\x05\
+ \0\x02\n\x01\x12\x03\x1f\x04\x14\n\x0c\n\x05\x05\0\x02\n\x02\x12\x03\x1f\
+ \x17\x1b\n\x0b\n\x04\x05\0\x02\x0b\x12\x03\x20\x04\x1e\n\x0c\n\x05\x05\0\
+ \x02\x0b\x01\x12\x03\x20\x04\x16\n\x0c\n\x05\x05\0\x02\x0b\x02\x12\x03\
+ \x20\x19\x1d\n\x0b\n\x04\x05\0\x02\x0c\x12\x03!\x04\x1f\n\x0c\n\x05\x05\
+ \0\x02\x0c\x01\x12\x03!\x04\x17\n\x0c\n\x05\x05\0\x02\x0c\x02\x12\x03!\
+ \x1a\x1e\n\x0b\n\x04\x05\0\x02\r\x12\x03\"\x04\x1e\n\x0c\n\x05\x05\0\x02\
+ \r\x01\x12\x03\"\x04\x16\n\x0c\n\x05\x05\0\x02\r\x02\x12\x03\"\x19\x1d\n\
+ \x0b\n\x04\x05\0\x02\x0e\x12\x03#\x04\"\n\x0c\n\x05\x05\0\x02\x0e\x01\
+ \x12\x03#\x04\x1a\n\x0c\n\x05\x05\0\x02\x0e\x02\x12\x03#\x1d!\n\x0b\n\
+ \x04\x05\0\x02\x0f\x12\x03$\x04\x20\n\x0c\n\x05\x05\0\x02\x0f\x01\x12\
+ \x03$\x04\x18\n\x0c\n\x05\x05\0\x02\x0f\x02\x12\x03$\x1b\x1f\n\x0b\n\x04\
+ \x05\0\x02\x10\x12\x03%\x04\x1f\n\x0c\n\x05\x05\0\x02\x10\x01\x12\x03%\
+ \x04\x17\n\x0c\n\x05\x05\0\x02\x10\x02\x12\x03%\x1a\x1e\n\x0b\n\x04\x05\
+ \0\x02\x11\x12\x03&\x04\x1e\n\x0c\n\x05\x05\0\x02\x11\x01\x12\x03&\x04\
+ \x16\n\x0c\n\x05\x05\0\x02\x11\x02\x12\x03&\x19\x1d\n\x0b\n\x04\x05\0\
+ \x02\x12\x12\x03'\x04\x1e\n\x0c\n\x05\x05\0\x02\x12\x01\x12\x03'\x04\x16\
+ \n\x0c\n\x05\x05\0\x02\x12\x02\x12\x03'\x19\x1d\n\x0b\n\x04\x05\0\x02\
+ \x13\x12\x03(\x04\x1e\n\x0c\n\x05\x05\0\x02\x13\x01\x12\x03(\x04\x16\n\
+ \x0c\n\x05\x05\0\x02\x13\x02\x12\x03(\x19\x1d\n\x0b\n\x04\x05\0\x02\x14\
+ \x12\x03)\x04&\n\x0c\n\x05\x05\0\x02\x14\x01\x12\x03)\x04\x1e\n\x0c\n\
+ \x05\x05\0\x02\x14\x02\x12\x03)!%\n\n\n\x02\x04\x01\x12\x04,\08\x01\n\n\
+ \n\x03\x04\x01\x01\x12\x03,\x08\x13\n\x0b\n\x04\x04\x01\x02\0\x12\x03-\
+ \x04%\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03-\x04\x0c\n\x0c\n\x05\x04\x01\
+ \x02\0\x05\x12\x03-\r\x13\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03-\x14\x1e\
+ \n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03-!$\n\x0b\n\x04\x04\x01\x02\x01\
+ \x12\x03.\x04\"\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03.\x04\x0c\n\x0c\n\
+ \x05\x04\x01\x02\x01\x05\x12\x03.\r\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\
+ \x12\x03.\x12\x1b\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03.\x1e!\n\x0b\n\
+ \x04\x04\x01\x02\x02\x12\x03/\x04!\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\
+ \x03/\x04\x0c\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03/\r\x11\n\x0c\n\x05\
+ \x04\x01\x02\x02\x01\x12\x03/\x12\x1a\n\x0c\n\x05\x04\x01\x02\x02\x03\
+ \x12\x03/\x1d\x20\n\x0b\n\x04\x04\x01\x02\x03\x12\x030\x04!\n\x0c\n\x05\
+ \x04\x01\x02\x03\x04\x12\x030\x04\x0c\n\x0c\n\x05\x04\x01\x02\x03\x05\
+ \x12\x030\r\x13\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x030\x14\x1a\n\x0c\n\
+ \x05\x04\x01\x02\x03\x03\x12\x030\x1d\x20\n\x0b\n\x04\x04\x01\x02\x04\
+ \x12\x031\x04\x1f\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x031\x04\x0c\n\x0c\
+ \n\x05\x04\x01\x02\x04\x05\x12\x031\r\x13\n\x0c\n\x05\x04\x01\x02\x04\
+ \x01\x12\x031\x14\x18\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x031\x1b\x1e\n\
+ \x0b\n\x04\x04\x01\x02\x05\x12\x032\x04%\n\x0c\n\x05\x04\x01\x02\x05\x04\
+ \x12\x032\x04\x0c\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x032\r\x13\n\x0c\n\
+ \x05\x04\x01\x02\x05\x01\x12\x032\x14\x1e\n\x0c\n\x05\x04\x01\x02\x05\
+ \x03\x12\x032!$\n\x0b\n\x04\x04\x01\x02\x06\x12\x033\x04*\n\x0c\n\x05\
+ \x04\x01\x02\x06\x04\x12\x033\x04\x0c\n\x0c\n\x05\x04\x01\x02\x06\x05\
+ \x12\x033\r\x12\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x033\x13#\n\x0c\n\
+ \x05\x04\x01\x02\x06\x03\x12\x033&)\n\x0b\n\x04\x04\x01\x02\x07\x12\x034\
+ \x04)\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\x034\x04\x0c\n\x0c\n\x05\x04\
+ \x01\x02\x07\x05\x12\x034\r\x13\n\x0c\n\x05\x04\x01\x02\x07\x01\x12\x034\
+ \x14!\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x034$(\n\x0b\n\x04\x04\x01\x02\
+ \x08\x12\x035\x04,\n\x0c\n\x05\x04\x01\x02\x08\x04\x12\x035\x04\x0c\n\
+ \x0c\n\x05\x04\x01\x02\x08\x06\x12\x035\r\x17\n\x0c\n\x05\x04\x01\x02\
+ \x08\x01\x12\x035\x18$\n\x0c\n\x05\x04\x01\x02\x08\x03\x12\x035'+\n\x0b\
+ \n\x04\x04\x01\x02\t\x12\x036\x040\n\x0c\n\x05\x04\x01\x02\t\x04\x12\x03\
+ 6\x04\x0c\n\x0c\n\x05\x04\x01\x02\t\x05\x12\x036\r\x13\n\x0c\n\x05\x04\
+ \x01\x02\t\x01\x12\x036\x14(\n\x0c\n\x05\x04\x01\x02\t\x03\x12\x036+/\n\
+ \x0b\n\x04\x04\x01\x02\n\x12\x037\x04&\n\x0c\n\x05\x04\x01\x02\n\x04\x12\
+ \x037\x04\x0c\n\x0c\n\x05\x04\x01\x02\n\x06\x12\x037\r\x15\n\x0c\n\x05\
+ \x04\x01\x02\n\x01\x12\x037\x16\x1e\n\x0c\n\x05\x04\x01\x02\n\x03\x12\
+ \x037!%\n\n\n\x02\x04\x02\x12\x04:\0>\x01\n\n\n\x03\x04\x02\x01\x12\x03:\
+ \x08\x12\n\x0b\n\x04\x04\x02\x02\0\x12\x03;\x04&\n\x0c\n\x05\x04\x02\x02\
+ \0\x04\x12\x03;\x04\x0c\n\x0c\n\x05\x04\x02\x02\0\x06\x12\x03;\r\x1b\n\
+ \x0c\n\x05\x04\x02\x02\0\x01\x12\x03;\x1c\x1f\n\x0c\n\x05\x04\x02\x02\0\
+ \x03\x12\x03;\"%\n\x0b\n\x04\x04\x02\x02\x01\x12\x03<\x04\"\n\x0c\n\x05\
+ \x04\x02\x02\x01\x04\x12\x03<\x04\x0c\n\x0c\n\x05\x04\x02\x02\x01\x05\
+ \x12\x03<\r\x12\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03<\x13\x1b\n\x0c\n\
+ \x05\x04\x02\x02\x01\x03\x12\x03<\x1e!\n\x0b\n\x04\x04\x02\x02\x02\x12\
+ \x03=\x04&\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03=\x04\x0c\n\x0c\n\x05\
+ \x04\x02\x02\x02\x05\x12\x03=\r\x13\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\
+ \x03=\x14\x1f\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03=\"%\n\n\n\x02\x05\
+ \x01\x12\x04@\0N\x01\n\n\n\x03\x05\x01\x01\x12\x03@\x05\x13\n\x0b\n\x04\
+ \x05\x01\x02\0\x12\x03A\x04\x1d\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x03A\
+ \x04\x16\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03A\x19\x1c\n\x0b\n\x04\x05\
+ \x01\x02\x01\x12\x03B\x04\x17\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03B\
+ \x04\x10\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03B\x13\x16\n\x0b\n\x04\
+ \x05\x01\x02\x02\x12\x03C\x04\x1b\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\
+ \x03C\x04\x14\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03C\x17\x1a\n\x0b\n\
+ \x04\x05\x01\x02\x03\x12\x03D\x04\x16\n\x0c\n\x05\x05\x01\x02\x03\x01\
+ \x12\x03D\x04\x0f\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03D\x12\x15\n\x0b\
+ \n\x04\x05\x01\x02\x04\x12\x03E\x04\x1b\n\x0c\n\x05\x05\x01\x02\x04\x01\
+ \x12\x03E\x04\x14\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\x03E\x17\x1a\n\x0b\
+ \n\x04\x05\x01\x02\x05\x12\x03F\x04\x1a\n\x0c\n\x05\x05\x01\x02\x05\x01\
+ \x12\x03F\x04\x13\n\x0c\n\x05\x05\x01\x02\x05\x02\x12\x03F\x16\x19\n\x0b\
+ \n\x04\x05\x01\x02\x06\x12\x03G\x04\x18\n\x0c\n\x05\x05\x01\x02\x06\x01\
+ \x12\x03G\x04\x11\n\x0c\n\x05\x05\x01\x02\x06\x02\x12\x03G\x14\x17\n\x0b\
+ \n\x04\x05\x01\x02\x07\x12\x03H\x04\x17\n\x0c\n\x05\x05\x01\x02\x07\x01\
+ \x12\x03H\x04\x10\n\x0c\n\x05\x05\x01\x02\x07\x02\x12\x03H\x13\x16\n\x0b\
+ \n\x04\x05\x01\x02\x08\x12\x03I\x04\x1a\n\x0c\n\x05\x05\x01\x02\x08\x01\
+ \x12\x03I\x04\x13\n\x0c\n\x05\x05\x01\x02\x08\x02\x12\x03I\x16\x19\n\x0b\
+ \n\x04\x05\x01\x02\t\x12\x03J\x04\x17\n\x0c\n\x05\x05\x01\x02\t\x01\x12\
+ \x03J\x04\x10\n\x0c\n\x05\x05\x01\x02\t\x02\x12\x03J\x13\x16\n\x0b\n\x04\
+ \x05\x01\x02\n\x12\x03K\x04\x1a\n\x0c\n\x05\x05\x01\x02\n\x01\x12\x03K\
+ \x04\x13\n\x0c\n\x05\x05\x01\x02\n\x02\x12\x03K\x16\x19\n\x0b\n\x04\x05\
+ \x01\x02\x0b\x12\x03L\x04\x12\n\x0c\n\x05\x05\x01\x02\x0b\x01\x12\x03L\
+ \x04\x0b\n\x0c\n\x05\x05\x01\x02\x0b\x02\x12\x03L\x0e\x11\n\x0b\n\x04\
+ \x05\x01\x02\x0c\x12\x03M\x04\x1e\n\x0c\n\x05\x05\x01\x02\x0c\x01\x12\
+ \x03M\x04\x17\n\x0c\n\x05\x05\x01\x02\x0c\x02\x12\x03M\x1a\x1d\n\n\n\x02\
+ \x04\x03\x12\x04P\0R\x01\n\n\n\x03\x04\x03\x01\x12\x03P\x08\x0f\n\x0b\n\
+ \x04\x04\x03\x02\0\x12\x03Q\x04!\n\x0c\n\x05\x04\x03\x02\0\x04\x12\x03Q\
+ \x04\x0c\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x03Q\r\x13\n\x0c\n\x05\x04\
+ \x03\x02\0\x01\x12\x03Q\x14\x1a\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03Q\
+ \x1d\x20\n\n\n\x02\x04\x04\x12\x04T\0d\x01\n\n\n\x03\x04\x04\x01\x12\x03\
+ T\x08\r\n\x0b\n\x04\x04\x04\x02\0\x12\x03U\x04&\n\x0c\n\x05\x04\x04\x02\
+ \0\x04\x12\x03U\x04\x0c\n\x0c\n\x05\x04\x04\x02\0\x05\x12\x03U\r\x13\n\
+ \x0c\n\x05\x04\x04\x02\0\x01\x12\x03U\x14\x1f\n\x0c\n\x05\x04\x04\x02\0\
+ \x03\x12\x03U\"%\n\x0b\n\x04\x04\x04\x02\x01\x12\x03V\x04\x20\n\x0c\n\
+ \x05\x04\x04\x02\x01\x04\x12\x03V\x04\x0c\n\x0c\n\x05\x04\x04\x02\x01\
+ \x05\x12\x03V\r\x13\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03V\x14\x19\n\
+ \x0c\n\x05\x04\x04\x02\x01\x03\x12\x03V\x1c\x1f\n\x0b\n\x04\x04\x04\x02\
+ \x02\x12\x03W\x04&\n\x0c\n\x05\x04\x04\x02\x02\x04\x12\x03W\x04\x0c\n\
+ \x0c\n\x05\x04\x04\x02\x02\x05\x12\x03W\r\x13\n\x0c\n\x05\x04\x04\x02\
+ \x02\x01\x12\x03W\x14\x1f\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03W\"%\n\
+ \x0b\n\x04\x04\x04\x02\x03\x12\x03X\x04%\n\x0c\n\x05\x04\x04\x02\x03\x04\
+ \x12\x03X\x04\x0c\n\x0c\n\x05\x04\x04\x02\x03\x06\x12\x03X\r\x17\n\x0c\n\
+ \x05\x04\x04\x02\x03\x01\x12\x03X\x18\x1e\n\x0c\n\x05\x04\x04\x02\x03\
+ \x03\x12\x03X!$\n\x0b\n\x04\x04\x04\x02\x04\x12\x03Y\x04/\n\x0c\n\x05\
+ \x04\x04\x02\x04\x04\x12\x03Y\x04\x0c\n\x0c\n\x05\x04\x04\x02\x04\x05\
+ \x12\x03Y\r\x13\n\x0c\n\x05\x04\x04\x02\x04\x01\x12\x03Y\x14(\n\x0c\n\
+ \x05\x04\x04\x02\x04\x03\x12\x03Y+.\n\x0b\n\x04\x04\x04\x02\x05\x12\x03Z\
+ \x04.\n\x0c\n\x05\x04\x04\x02\x05\x04\x12\x03Z\x04\x0c\n\x0c\n\x05\x04\
+ \x04\x02\x05\x05\x12\x03Z\r\x13\n\x0c\n\x05\x04\x04\x02\x05\x01\x12\x03Z\
+ \x14'\n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03Z*-\n\x0b\n\x04\x04\x04\x02\
+ \x06\x12\x03[\x04\x20\n\x0c\n\x05\x04\x04\x02\x06\x04\x12\x03[\x04\x0c\n\
+ \x0c\n\x05\x04\x04\x02\x06\x05\x12\x03[\r\x11\n\x0c\n\x05\x04\x04\x02\
+ \x06\x01\x12\x03[\x12\x19\n\x0c\n\x05\x04\x04\x02\x06\x03\x12\x03[\x1c\
+ \x1f\n\x0b\n\x04\x04\x04\x02\x07\x12\x03\\\x04\x1f\n\x0c\n\x05\x04\x04\
+ \x02\x07\x04\x12\x03\\\x04\x0c\n\x0c\n\x05\x04\x04\x02\x07\x05\x12\x03\\\
+ \r\x11\n\x0c\n\x05\x04\x04\x02\x07\x01\x12\x03\\\x12\x18\n\x0c\n\x05\x04\
+ \x04\x02\x07\x03\x12\x03\\\x1b\x1e\n\x0b\n\x04\x04\x04\x02\x08\x12\x03]\
+ \x04.\n\x0c\n\x05\x04\x04\x02\x08\x04\x12\x03]\x04\x0c\n\x0c\n\x05\x04\
+ \x04\x02\x08\x05\x12\x03]\r\x13\n\x0c\n\x05\x04\x04\x02\x08\x01\x12\x03]\
+ \x14&\n\x0c\n\x05\x04\x04\x02\x08\x03\x12\x03])-\n\x0b\n\x04\x04\x04\x02\
+ \t\x12\x03^\x04.\n\x0c\n\x05\x04\x04\x02\t\x04\x12\x03^\x04\x0c\n\x0c\n\
+ \x05\x04\x04\x02\t\x05\x12\x03^\r\x13\n\x0c\n\x05\x04\x04\x02\t\x01\x12\
+ \x03^\x14&\n\x0c\n\x05\x04\x04\x02\t\x03\x12\x03^)-\n\x0b\n\x04\x04\x04\
+ \x02\n\x12\x03_\x04/\n\x0c\n\x05\x04\x04\x02\n\x04\x12\x03_\x04\x0c\n\
+ \x0c\n\x05\x04\x04\x02\n\x05\x12\x03_\r\x11\n\x0c\n\x05\x04\x04\x02\n\
+ \x01\x12\x03_\x12'\n\x0c\n\x05\x04\x04\x02\n\x03\x12\x03_*.\n\x0b\n\x04\
+ \x04\x04\x02\x0b\x12\x03`\x04\x1f\n\x0c\n\x05\x04\x04\x02\x0b\x04\x12\
+ \x03`\x04\x0c\n\x0c\n\x05\x04\x04\x02\x0b\x05\x12\x03`\r\x13\n\x0c\n\x05\
+ \x04\x04\x02\x0b\x01\x12\x03`\x14\x17\n\x0c\n\x05\x04\x04\x02\x0b\x03\
+ \x12\x03`\x1a\x1e\n\x0b\n\x04\x04\x04\x02\x0c\x12\x03a\x04/\n\x0c\n\x05\
+ \x04\x04\x02\x0c\x04\x12\x03a\x04\x0c\n\x0c\n\x05\x04\x04\x02\x0c\x05\
+ \x12\x03a\r\x13\n\x0c\n\x05\x04\x04\x02\x0c\x01\x12\x03a\x14'\n\x0c\n\
+ \x05\x04\x04\x02\x0c\x03\x12\x03a*.\n\x0b\n\x04\x04\x04\x02\r\x12\x03b\
+ \x04#\n\x0c\n\x05\x04\x04\x02\r\x04\x12\x03b\x04\x0c\n\x0c\n\x05\x04\x04\
+ \x02\r\x06\x12\x03b\r\x15\n\x0c\n\x05\x04\x04\x02\r\x01\x12\x03b\x16\x1b\
+ \n\x0c\n\x05\x04\x04\x02\r\x03\x12\x03b\x1e\"\n\x0b\n\x04\x04\x04\x02\
+ \x0e\x12\x03c\x04\x1a\n\x0c\n\x05\x04\x04\x02\x0e\x04\x12\x03c\x04\x0c\n\
+ \x0c\n\x05\x04\x04\x02\x0e\x06\x12\x03c\r\x0f\n\x0c\n\x05\x04\x04\x02\
+ \x0e\x01\x12\x03c\x10\x12\n\x0c\n\x05\x04\x04\x02\x0e\x03\x12\x03c\x15\
+ \x19\n\n\n\x02\x05\x02\x12\x04f\0k\x01\n\n\n\x03\x05\x02\x01\x12\x03f\
+ \x05\x0f\n\x0b\n\x04\x05\x02\x02\0\x12\x03g\x04\x1a\n\x0c\n\x05\x05\x02\
+ \x02\0\x01\x12\x03g\x04\x13\n\x0c\n\x05\x05\x02\x02\0\x02\x12\x03g\x16\
+ \x19\n\x0b\n\x04\x05\x02\x02\x01\x12\x03h\x04\x1a\n\x0c\n\x05\x05\x02\
+ \x02\x01\x01\x12\x03h\x04\x13\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03h\
+ \x16\x19\n\x0b\n\x04\x05\x02\x02\x02\x12\x03i\x04\x1b\n\x0c\n\x05\x05\
+ \x02\x02\x02\x01\x12\x03i\x04\x14\n\x0c\n\x05\x05\x02\x02\x02\x02\x12\
+ \x03i\x17\x1a\n\x0b\n\x04\x05\x02\x02\x03\x12\x03j\x04\x1d\n\x0c\n\x05\
+ \x05\x02\x02\x03\x01\x12\x03j\x04\x16\n\x0c\n\x05\x05\x02\x02\x03\x02\
+ \x12\x03j\x19\x1c\n\n\n\x02\x04\x05\x12\x04m\0r\x01\n\n\n\x03\x04\x05\
+ \x01\x12\x03m\x08\x10\n\x0b\n\x04\x04\x05\x02\0\x12\x03n\x04\x1d\n\x0c\n\
+ \x05\x04\x05\x02\0\x04\x12\x03n\x04\x0c\n\x0c\n\x05\x04\x05\x02\0\x05\
+ \x12\x03n\r\x12\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03n\x13\x16\n\x0c\n\
+ \x05\x04\x05\x02\0\x03\x12\x03n\x19\x1c\n\x0b\n\x04\x04\x05\x02\x01\x12\
+ \x03o\x04\x1e\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\x03o\x04\x0c\n\x0c\n\
+ \x05\x04\x05\x02\x01\x05\x12\x03o\r\x13\n\x0c\n\x05\x04\x05\x02\x01\x01\
+ \x12\x03o\x14\x17\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03o\x1a\x1d\n\x0b\
+ \n\x04\x04\x05\x02\x02\x12\x03p\x04\x1f\n\x0c\n\x05\x04\x05\x02\x02\x04\
+ \x12\x03p\x04\x0c\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\x03p\r\x11\n\x0c\n\
+ \x05\x04\x05\x02\x02\x01\x12\x03p\x12\x18\n\x0c\n\x05\x04\x05\x02\x02\
+ \x03\x12\x03p\x1b\x1e\n\x0b\n\x04\x04\x05\x02\x03\x12\x03q\x04\"\n\x0c\n\
+ \x05\x04\x05\x02\x03\x04\x12\x03q\x04\x0c\n\x0c\n\x05\x04\x05\x02\x03\
+ \x05\x12\x03q\r\x13\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03q\x14\x1b\n\
+ \x0c\n\x05\x04\x05\x02\x03\x03\x12\x03q\x1e!\n\n\n\x02\x04\x06\x12\x04t\
+ \0~\x01\n\n\n\x03\x04\x06\x01\x12\x03t\x08\n\n\x0b\n\x04\x04\x06\x02\0\
+ \x12\x03u\x04\x1e\n\x0c\n\x05\x04\x06\x02\0\x04\x12\x03u\x04\x0c\n\x0c\n\
+ \x05\x04\x06\x02\0\x05\x12\x03u\r\x12\n\x0c\n\x05\x04\x06\x02\0\x01\x12\
+ \x03u\x13\x17\n\x0c\n\x05\x04\x06\x02\0\x03\x12\x03u\x1a\x1d\n\x0b\n\x04\
+ \x04\x06\x02\x01\x12\x03v\x04!\n\x0c\n\x05\x04\x06\x02\x01\x04\x12\x03v\
+ \x04\x0c\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03v\r\x12\n\x0c\n\x05\x04\
+ \x06\x02\x01\x01\x12\x03v\x13\x1a\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\
+ \x03v\x1d\x20\n\x0b\n\x04\x04\x06\x02\x02\x12\x03w\x04#\n\x0c\n\x05\x04\
+ \x06\x02\x02\x04\x12\x03w\x04\x0c\n\x0c\n\x05\x04\x06\x02\x02\x05\x12\
+ \x03w\r\x12\n\x0c\n\x05\x04\x06\x02\x02\x01\x12\x03w\x13\x1c\n\x0c\n\x05\
+ \x04\x06\x02\x02\x03\x12\x03w\x1f\"\n\x0b\n\x04\x04\x06\x02\x03\x12\x03x\
+ \x04\"\n\x0c\n\x05\x04\x06\x02\x03\x04\x12\x03x\x04\x0c\n\x0c\n\x05\x04\
+ \x06\x02\x03\x05\x12\x03x\r\x12\n\x0c\n\x05\x04\x06\x02\x03\x01\x12\x03x\
+ \x13\x1b\n\x0c\n\x05\x04\x06\x02\x03\x03\x12\x03x\x1e!\n\x0b\n\x04\x04\
+ \x06\x02\x04\x12\x03y\x04$\n\x0c\n\x05\x04\x06\x02\x04\x04\x12\x03y\x04\
+ \x0c\n\x0c\n\x05\x04\x06\x02\x04\x05\x12\x03y\r\x13\n\x0c\n\x05\x04\x06\
+ \x02\x04\x01\x12\x03y\x14\x1d\n\x0c\n\x05\x04\x06\x02\x04\x03\x12\x03y\
+ \x20#\n\x0b\n\x04\x04\x06\x02\x05\x12\x03z\x04)\n\x0c\n\x05\x04\x06\x02\
+ \x05\x04\x12\x03z\x04\x0c\n\x0c\n\x05\x04\x06\x02\x05\x05\x12\x03z\r\x13\
+ \n\x0c\n\x05\x04\x06\x02\x05\x01\x12\x03z\x14\"\n\x0c\n\x05\x04\x06\x02\
+ \x05\x03\x12\x03z%(\n\x0b\n\x04\x04\x06\x02\x06\x12\x03{\x04\"\n\x0c\n\
+ \x05\x04\x06\x02\x06\x04\x12\x03{\x04\x0c\n\x0c\n\x05\x04\x06\x02\x06\
+ \x05\x12\x03{\r\x13\n\x0c\n\x05\x04\x06\x02\x06\x01\x12\x03{\x14\x1b\n\
+ \x0c\n\x05\x04\x06\x02\x06\x03\x12\x03{\x1e!\n\x0b\n\x04\x04\x06\x02\x07\
+ \x12\x03|\x04%\n\x0c\n\x05\x04\x06\x02\x07\x04\x12\x03|\x04\x0c\n\x0c\n\
+ \x05\x04\x06\x02\x07\x05\x12\x03|\r\x13\n\x0c\n\x05\x04\x06\x02\x07\x01\
+ \x12\x03|\x14\x1e\n\x0c\n\x05\x04\x06\x02\x07\x03\x12\x03|!$\n\x0b\n\x04\
+ \x04\x06\x02\x08\x12\x03}\x04\x1d\n\x0c\n\x05\x04\x06\x02\x08\x04\x12\
+ \x03}\x04\x0c\n\x0c\n\x05\x04\x06\x02\x08\x05\x12\x03}\r\x12\n\x0c\n\x05\
+ \x04\x06\x02\x08\x01\x12\x03}\x13\x16\n\x0c\n\x05\x04\x06\x02\x08\x03\
+ \x12\x03}\x19\x1c\n\x0c\n\x02\x04\x07\x12\x06\x80\x01\0\x83\x01\x01\n\
+ \x0b\n\x03\x04\x07\x01\x12\x04\x80\x01\x08\x10\n\x0c\n\x04\x04\x07\x02\0\
+ \x12\x04\x81\x01\x04\x1f\n\r\n\x05\x04\x07\x02\0\x04\x12\x04\x81\x01\x04\
+ \x0c\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\x81\x01\r\x13\n\r\n\x05\x04\x07\
+ \x02\0\x01\x12\x04\x81\x01\x14\x18\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\
+ \x81\x01\x1b\x1e\n\x0c\n\x04\x04\x07\x02\x01\x12\x04\x82\x01\x04#\n\r\n\
+ \x05\x04\x07\x02\x01\x04\x12\x04\x82\x01\x04\x0c\n\r\n\x05\x04\x07\x02\
+ \x01\x05\x12\x04\x82\x01\r\x13\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x82\
+ \x01\x14\x1c\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x82\x01\x1f\"\
";
static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {

View File

@ -0,0 +1,2 @@
#!/bin/sh
echo -e "$STATE\n$ARTIST\n$TITLE" > "$LS_FIFO"

View File

@ -1,2 +0,0 @@
#!/bin/sh
echo -e "play\n$LS_ARTIST\n$LS_TITLE" > "$LS_FIFO"

View File

@ -1,2 +0,0 @@
#!/bin/sh
echo -e "stop" > "$LS_FIFO"

View File

@ -86,10 +86,8 @@ oe_setup_addon service.librespot
LIBRESPOT="librespot --cache \"$ADDON_HOME/cache\" \
--disable-audio-cache \
--initial-volume "$ls_v" \
--name \"Librespot@$HOSTNAME\" \
--onstart librespot.onstart \
--onstop librespot.onstop"
--onevent librespot.onevent"
if [ -n "$ls_b" -a "$ls_b" != "-" ]; then
LIBRESPOT="$LIBRESPOT --bitrate $ls_b"

View File

@ -29,7 +29,6 @@ import xbmcgui
PORT = '6666'
SINK = 'librespot_sink'
def suspendSink(bit):
subprocess.call(['pactl', 'suspend-sink', SINK, bit])
@ -66,6 +65,8 @@ class Controller(threading.Thread):
self.player.play()
elif command[0] == 'stop':
self.player.stop()
elif command[0] == 'pause':
self.player.pause()
try:
os.unlink(self.FIFO)
except OSError:
@ -109,6 +110,10 @@ class Player(xbmc.Player):
del listitem
xbmcgui.Window(12006).show()
def pause(self):
if self.isPlaying() and self.getPlayingFile() == self.ITEM:
super(Player, self).pause()
def stop(self):
suspendSink('1')
if self.isPlaying() and self.getPlayingFile() == self.ITEM:

View File

@ -7,10 +7,6 @@ msgctxt "#30100"
msgid "Librespot"
msgstr ""
msgctxt "#30101"
msgid "Initial volume"
msgstr ""
msgctxt "#30102"
msgid "Bit rate"
msgstr ""

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<category label="30100" >
<setting label="30101" type="slider" id="ls_v" default="50" range="0,1,100" option="int" />
<setting label="30102" type="labelenum" id="ls_b" lvalues="30103|30104|30105|30106" />
<setting label="30107" type="labelenum" id="ls_O" lvalues="30108|30109" />
<setting label="30110" type="text" id="ls_u" />

View File

@ -6,6 +6,5 @@
<setting id="ls_o" value="" />
<setting id="ls_p" value="" />
<setting id="ls_u" value="" />
<setting id="ls_v" value="50" />
<setting id="pcm_3" value="0" />
</settings>