
Laporan Singkat
Statistika
Definisi dan
Aspek
Statistik adalah cabang ilmu yang berkaitan dengan pengumpulan,
analisis, interpretasi, dan presentasi data. Statistik menggunakan
metode matematis dan algoritmik untuk mengelola data sehingga informasi
yang diperoleh dapat digunakan untuk membuat keputusan yang lebih
baik.
Aspek Utama
Statistik
- Pengumpulan Data: Proses mengumpulkan data dari
berbagai sumber melalui survei, eksperimen, atau observasi. Metode ini
mencakup sampling atau pengumpulan data lengkap dari populasi.
- Analisis Data: Teknik-teknik statistik digunakan
untuk menganalisis data, termasuk deskriptif statistik seperti mean
(rata-rata), median, mode, dan deviasi standar, serta inferensial
statistik seperti uji hipotesis dan analisis regresi.
- Interpretasi Data: Menafsirkan hasil analisis untuk
memahami apa yang data tersebut katakana tentang fenomena yang sedang
dipelajari. Ini melibatkan penarikan kesimpulan yang dapat menjelaskan
pola, tren, atau hubungan dalam data.
- Presentasi Data: Menyajikan hasil analisis dalam
format yang Mudah dipahami, seperti table, grafik, atau visualisasi
lainnya, sehingga informasi dapat disampaikan secara efektif kepada
audiens.
Pentingnya
Statistik
- Pengambilan Keputusan: Statistik memungkinkan
individu dan organisasi untuk membuat keputusan yang lebih baik dan
lebih terinformasi. Dengan data yang tepat dan analisis yang benar,
keputusan dapat didasarkan pada bukti empiris daripada asumsi atau
spekulasi.
- Identifikasi Pola dan Tren: Melalui analisis
statistik, kita dapat mengidentifikasi pola dan tren dalam data yang
mungkin tidak terlihat dengan kasat mata.
- Uji Hipotesis: Statistik memungkinkan kita untuk
menguji hipotesis atau teori dengan menggunakan data. Uji hipotesis
seperti t-test atau ANOVA dapat menentukan apakah perbedaan antara
kelompok atau variable signifikan secara statistik.
- Prediksi dan Perencanaan: Dengan menggunakan model
statistik, kita dapat membuat prediksi tentang kejadian di masa depan
berdasarkan data historis.
- Evaluasi Program dan Kebijakan: Statistik digunakan
untuk mengevaluasi efektivitas program atau kebijakan. Dengan
menganalisis data sebelum dan sesudah implementasi, kita dapat menilai
apakah perubahan yang dilakukan memiliki dampak yang diinginkan.
- Penelitian dan Pengembangan: Statistik memainkan
peran kunci dalam merancang eksperimen, menganalisis hasil, dan menarik
kesimpulan yang valid.
- Kesehatan dan Kedokteran: Statistik digunakan untuk
analisis epidemiologi, uji klinis, dan penelitian medis. Ini membantu
dalam memahami prevalensi penyakit, efektivitas pengobatan, dan factor
risiko.
Jenis Statistika
Statistika terbagi menjadi dua jenis utama, yaitu Statistika
deskriptif dan Statistika inferensial. Keduanya memiliki tujuan dan
teknik yang berbeda dalam menganalisis data.
Statistika
Deskriptif
Statistika deskriptif melibatkan metode yang digunakan untuk
menggambarkan atau meringkas data dari sampel atau populasi tanpa
membuat inferensi atau generalisasi tentang data tersebut. Tujuan utama
Statistika deskriptif adalah untuk menyajikan data dalam bentuk yang
Mudah dipahami dan memberikan ringkasan yang berguna. Teknik-teknik
utama dalam Statistika deskriptif meliputi:
- Ukuran Pemetaan Data
- Mean (Rata-rata)
- Median
- Mode
- Ukuran Dispersion
- Range (Rentang)
- Variance
- Standard Deviation (Deviasi Standar)
- Visualisasi Data
- Histogram
- Box Plot
- Bar Chart dan Pie Chart
Statistika
Inferensial
Statistika inferensial melibatkan metode yang digunakan untuk membuat
generalisasi atau inferensi tentang populasi berdasarkan data sampel.
Teknik-teknik utama dalam Statistika inferensial meliputi:
- Uji Hipotesis
- Uji t: digunakan untuk membandingkan rata-rata dari dua kelompok
atau sampel
- Uji ANOVA (Analysis of Variance): digunakan untuk membandingkan
rata-rata antara lebih dari dua kelompok
- Uji Chi-Square: digunakan untuk menguji hubungan antara dua variable
kategorikal.
- Interval Kepercayaan
Interval kepercayaan memberikan rentang nilai yang mungkin mengandung
parameter populasi.
- Regresi dan Korelasi
- Regresi: menggunakan data untuk memodelkan hubungan antara variable
dependen dan satu atau lebih variable independent,
- Korelasi: Mengukur kekuatan dan arah hubungan linear antara dua
variable.
- Sampling dan Estimasi
- Sampling: proses pemilihan sampel dari populasi untuk analisis.
- Estimasi: menggunakan data sampel untuk memperkirakan parameter
populasi, seperti mean atau proporsi.
Statistika deskriptif dan inferensial saling melengkapi dalam
analisis data. Statistika deskriptif memberikan gambaran umum tentang
data, sedangkan Statistika inferensial memungkinkan penarikan kesimpulan
dan pembuatan keputusan berdasarkan data tersebut.
Jenis Data:
Kualitatif va. Kuantitatif
Data
Kualitatif
Data kualitatif adalah data yang menggambarkan kualitas atau
karakteristik non-numerik. Jenis-jenis data kualitatif meliputi:
- Data Nominal: Data nominal adalah data yang terdiri dari kategori
yang tidak memiliki urutan atau hierarki.
- Data Ordinal: Data ordinal adalah data yang memiliki urutan atau
hierarki, tetapi jarak antara kategori tidak terukur secara tepat.
Data
Kuantitatif
Data kuantitatif juga dikenal sebagai data numerik, adalah data yang
dapat diukur dan dihitung. Jenis-jenis data kuantitatif meliputi:
- Data Diskret: Data diskret adalah data yang hanya dapat mengambil
nilai tertentu dalam rentang yang terpisah atau terhitung.
- Data Kontinu: Data kontinu adalah data yang dapat mengambil nilai
dalam rentang yang kontinu atau tak terhingga.
Pengumpulan Data
Pengumpulan data merupakan tahap penting dalam penelitian, di mana
peneliti mengumpulkan informasi untuk menjawab pertanyaan penelitian
atau menguji hipotesis.
Data Primer
Data primer adalah data yang dikumpulkan langsung dari sumbernya.
- Survei: metode yang melibatkan serangkaian pertanyaan kepada
responden. Kuesioner dapat berupa pertanyaan tertutup (pilihan ganda)
atau terbuka.
- Wawancara: metode pengumpulan data melalui percakapan langsung. Ini
bisa terstruktur (pertanyaan tetap) atau semi-terstruktur
(fleksibel)
- Observasi: metode pengumpulan dengan mengamati subjek atau objek
tanpa interaksi langsung.
- Eksperimen: melibatkan control variable untuk melihat pengaruhnya
terhadap variable lain.
Data Sekunder
Data sekunder adalah data yang sudah dikumpulkan oleh pihak lain,
tersedia dalam dokumen, laporan, atau basis data.
- Sumber Tertulis: Pengumpulan data dari sumber tertulis melibatkan
dokumen yang sudah ada, seperti laporan tahunan atau artikel.
- Database Publik: Data sekunder juga bisa diperoleh dari basis data
public seperti data sensus.
Reliabilitas dan
Validitas
Reliabilitas dan validitas adalah dua konsep penting yang menentukan
kualitas informasi yang diperoleh dalam penelitian.
- Reliabilitas Data: konsistensi pengukuran dari waktu ke waktu. Data
yang reliabel memberikan hasil yang sama dengan kondisi yang sama.
- Validitas Data: mengukur sejauh mana instrument mengukur apa yang
seharusnya diukur.
Penyajian Data
Penyajian Data adalah proses pengorganisasian, visualisasi, dan
interpretasi data agar lebih mudah dipahami dan dapat diambil
kesimpulan. Dalam konteks analisis data, penyajian dilakukan dengan
menggunakan berbagai alat dan metode visualisasi seperti table, grafik,
dan diagram, tergantung pada jenis datanya (kualitatif atau
kuantitatif).
Data Kualitatif
Data kualitatif biasanya menggambarkan kategori atau kelompok,
seperti jenis kelamin, prefrensi produk, atau cara pembelian. Penyajian
data kualitatif bisa dilakukan dengan:
- Tabel Distribusi Frekuensi
- Diagram Batang
- Diagram Lingkaran
Data Kuantitatif
Data kuantitatif menggambarkan variable numerik seperti usia,
pendapatan, dan jumlah pembelian. Penyajian data kuantitatif dapat
dilakukan dengan:
- Diagram Histogram
- Diagram Garis
- Diagram Boxplot
Multivariat Data
Data multivariat adalah data yang melibatkan lebih dari dua variable
pada waktu yang sama. Penyajian data multivariat sering menggunakan:
- Scatter Plot Matrix
- Heatmap
Contoh Kasus: Analisis
Kebiasaan Bermain Game
Dalam analisis ini, pengumpulan data terkait dengan
“Kebiasaan Bermain Game di Kalangan Mahasiswa”
dilakukan menggunakan metode pengumpulan survei dengan
kuesioner. Metode ini memungkinkan pengumpulan data langsung
dari mahasiswa, baik dalam bentuk data kuantitatif maupun kualitatif,
secara sederhana dan terstruktur. Dengan kuesioner, kita dapat
mengajukan pertanyaan spesifik mengenai kebiasaan bermain game,
dampaknya terhadap akademik, dan persepsi mahasiswa mengenai pengaruh
game terhadap kehidupan sosial mereka.
Proses Pengumpulan
Data Melalui Kuesioner
Dalam kuesioner ini, beberapa pertanyaan diajukan untuk mengumpulkan
informasi yang relevan, seperti:
- Durasi Bermain Game: Mahasiswa diminta
mencantumkan waktu rata-rata (dalam jam atau menit) yang dihabiskan
untuk bermain game per hari.
- Genre Game Favorit: Mahasiswa memilih dari daftar
genre (aksi, petualangan, puzzle, olahraga, dll.) untuk mengetahui
preferensi jenis game yang dimainkan.
- Dampak Terhadap Prestasi Akademik: Pertanyaan
mengenai pengaruh kebiasaan bermain game terhadap nilai atau pencapaian
akademik mereka.
- Dampak Terhadap Kehidupan Sosial: Pertanyaan
mengenai bagaimana kebiasaan bermain game mempengaruhi interaksi sosial
atau hubungan dengan teman.
Kuesioner ini dibagikan kepada sekelompok responden yang mewakili
populasi mahasiswa. Metode kuesioner memudahkan pengumpulan data dalam
jumlah besar secara cepat, sehingga hasilnya dapat diolah secara
statistik untuk memberikan wawasan tentang pola kebiasaan bermain game
di kalangan mahasiswa.
Jenis Data yang
Diperoleh
Data yang diperoleh dari kuesioner ini terdiri dari:
- Data Kuantitatif: Seperti durasi rata-rata bermain
game per hari (dalam jam/menit) dan frekuensi bermain game per minggu.
Data ini memberikan gambaran kuantitatif mengenai intensitas bermain
game di kalangan mahasiswa.
- Data Kualitatif: Termasuk genre game favorit dan
persepsi dampak game pada akademik dan kehidupan sosial. Data ini
membantu menggambarkan pandangan mahasiswa dan pengaruh kebiasaan
bermain game secara lebih mendalam.
Penyajian Data
Menggunakan Tabel
Untuk mempermudah interpretasi hasil survei, data
dari kuesioner disajikan dalam bentuk tabel. Tabel ini
memudahkan pembaca melihat perbandingan antar-kategori secara
terstruktur, sehingga pola atau tren dapat dengan mudah diidentifikasi.
Penyajian data dalam bentuk tabel memberikan gambaran yang jelas tentang
kebiasaan bermain game di kalangan mahasiswa, yang dapat digunakan untuk
menilai dampaknya terhadap kehidupan akademik dan sosial mereka.
Analisis Kebiasaan
Bermain Game
Untuk menganalis “Kebiasaan Bermain Game di Kalangan
Mahasiswa serta Pengaruhnya Terhadap Prestasi Akademik dan Kehidupan
Sosial”. Metode pengumpulan data yang sesuai harus mampu
menangkap aspek kuantitatif dan kualitatif. Ini karena topik ini tidak
hanya membutuhkan angka (seperti durasi bermain atau nilai akademik),
tetapi juga pengalaman pribadi dan persepsi mahasiswa. Berikut adalah
metode pengumpulan data yang sesuai:
Survei dengan
Kuesioner
Efisiensi
Waktu
Google Form memungkinkan pengumpulan data dalam
waktu yang relatif singkat karena dapat disebarkan secara online.
Mahasiswa dapat mengisi kuesioner di mana saja dan kapan saja, sehingga
data dapat terkumpul lebih cepat dibandingkan metode lain seperti
wawancara atau observasi langsung.
Kemudahan
Akses
Dengan Google Form, survei dapat disebarkan
dengan mudah melalui tautan yang dibagikan lewat email, grup media
sosial, atau platform kampus. Ini memudahkan responden untuk
berpartisipasi tanpa perlu hadir secara fisik atau mengatur waktu
khusus, yang menghemat waktu baik bagi peneliti maupun responden.
Kemampuan
Mengumpulkan Data Kuantitatif dan Kualitatif
Google Form memungkinkan peneliti untuk mengumpulkan
data dalam bentuk pilihan ganda atau pertanyaan
terbuka. Dengan format ini, peneliti dapat memperoleh data
kuantitatif mengenai frekuensi dan durasi bermain game, serta data
kualitatif seperti persepsi responden terhadap dampak bermain game.
Pengolahan Data
yang Mudah
Data yang terkumpul dari Google Form langsung terintegrasi dalam
bentuk spreadsheet, sehingga memudahkan peneliti dalam
melakukan analisis lebih lanjut tanpa harus menginput data secara
manual. Ini menghemat waktu dalam proses pengolahan dan analisis
data.
Jenis Data yang
Dihasilkan
Dengan kuesioner Google Form, jenis data yang dihasilkan meliputi:
Data
Kuantitatif
Data kuantitatif ini berbentuk angka dan dapat
dihitung atau diukur. Seperti frekuensi bermain game per minggu,
rata-rata durasi bermain per sesi, dan persentase mahasiswa yang
merasakan dampak pada akademik.
Data
Kualitatif
Data kualitatif ini bersifat deskriptif dan biasanya
berupa teks, kata-kata, atau kategori yang menggambarkan kualitas atau
karakteristik. Seperti persepsi mahasiswa tentang bagaimana bermain game
memengaruhi prestasi akademik dan kehidupan sosial mereka.
Dengan metode ini, hasil analisis dapat memperoleh informasi yang
relevan secara efisien dan penyajian data yang efektif.
Analisis Grafik 1
Berdasarkan grafik tersebut, kita dapat melihat hubungan antara durasi
bermain game dan pengaruhnya terhadap hasil akademik responden. Berikut
adalah analisis per kategori pengaruh:
- Tidak Memengaruhi (Warna Biru):
- Responden yang menyatakan bermain game tidak memengaruhi hasil
akademik memiliki jumlah tertinggi pada durasi “kurang dari 1 jam” dan
menurun seiring meningkatnya durasi bermain game.
- Hal ini mengindikasikan bahwa responden yang bermain game lebih lama
cenderung merasakan pengaruh pada hasil akademik mereka.
- Sedikit Memengaruhi (Warna Merah):
- Responden yang merasakan sedikit pengaruh dari bermain game
menunjukkan jumlah yang stabil pada durasi bermain 1-2 jam hingga 5 jam
atau lebih.
- Pada durasi “kurang dari 1 jam,” jumlah responden yang merasakan
sedikit pengaruh menurun drastis.
- Cukup Memengaruhi (Warna Kuning):
- Pengaruh cukup memengaruhi paling banyak dirasakan oleh responden
yang bermain selama 1-2 jam, namun jumlahnya menurun tajam ketika durasi
bermain bertambah.
- Ini menunjukkan bahwa bermain game dalam durasi sedang (1-2 jam)
lebih terasa pengaruhnya dibandingkan durasi lainnya.
- Sangat Memengaruhi (Warna Hijau):
- Pengaruh sangat memengaruhi paling banyak dirasakan pada durasi
bermain 1-2 jam, tetapi jumlah responden yang merasakan pengaruh ini
berkurang seiring meningkatnya durasi bermain.
- Responden dengan durasi “kurang dari 1 jam” juga menunjukkan adanya
pengaruh yang cukup signifikan.
Kesimpulan: Grafik ini menunjukkan bahwa semakin
lama durasi bermain game, semakin kecil jumlah responden yang merasa
tidak dipengaruhi oleh aktivitas tersebut. Responden yang bermain game
dengan durasi yang lebih singkat (kurang dari 1 jam hingga 1-2 jam)
cenderung merasa ada pengaruh pada hasil akademik, baik sedikit, cukup,
maupun sangat memengaruhi.
Analisis Grafik 2
Grafik di atas adalah diagram pie yang menunjukkan pengaruh bermain
game terhadap kualitas tidur. Berikut adalah analisis berdasarkan data
dalam grafik:
- Cukup Memengaruhi (Warna Biru - 33.3%):
- Sebagian besar responden (33.3%) merasa bahwa bermain game cukup
memengaruhi kualitas tidur mereka.
- Ini menunjukkan bahwa aktivitas bermain game mungkin berdampak
moderat pada kualitas tidur sebagian responden, meskipun tidak
mengganggu secara signifikan.
- Sedikit Memengaruhi (Warna Oranye - 30%):
- Sebanyak 30% responden merasa pengaruh dari bermain game hanya
sedikit memengaruhi kualitas tidur mereka.
- Persentase ini cukup besar dan menunjukkan bahwa sebagian responden
masih merasa bermain game berdampak, namun dampaknya tidak terlalu
signifikan.
- Tidak Memengaruhi (Warna Hijau - 20%):
- Sebanyak 20% responden merasa bahwa bermain game tidak memengaruhi
kualitas tidur mereka sama sekali.
- Hal ini menunjukkan bahwa ada sebagian kecil responden yang tidak
merasakan pengaruh bermain game terhadap tidur mereka.
- Sangat Memengaruhi (Warna Merah - 16.6%):
- Responden yang merasakan pengaruh sangat signifikan terhadap
kualitas tidur hanya sebesar 16.6%.
- Meskipun persentasenya paling kecil, kelompok ini menunjukkan bahwa
bagi sebagian kecil responden, bermain game berdampak sangat signifikan
pada kualitas tidur mereka.
Kesimpulan: Secara keseluruhan, sebagian besar
responden merasa bahwa bermain game memberikan dampak terhadap kualitas
tidur mereka, dengan mayoritas merasakan dampak cukup atau sedikit.
Hanya sebagian kecil yang merasakan dampak yang sangat signifikan, dan
20% merasa tidak ada pengaruh sama sekali. Ini mengindikasikan bahwa
bermain game cenderung memiliki pengaruh moderat hingga rendah pada
kualitas tidur bagi sebagian besar responden.
Analisis Grafik 3
Analisis Grafik
Distribusi Jenis Kelamin Responden
Berdasarkan grafik distribusi jenis kelamin responden, mayoritas
responden adalah perempuan (56.6%), sementara laki-laki berjumlah 43.3%.
Distribusi ini memberikan gambaran bahwa perempuan sedikit lebih banyak
berpartisipasi dalam penelitian ini. Mengingat penelitian ini bertujuan
untuk memahami pengaruh bermain game, distribusi ini menjadi penting
karena laki-laki dan perempuan memiliki kecenderungan yang berbeda dalam
hal durasi dan frekuensi bermain game, yang mungkin memengaruhi hasil
akhir terkait pengaruh game pada kualitas tidur dan prestasi
akademik.
Pengaruh Durasi Bermain Game terhadap Hasil
Akademik
Grafik yang menunjukkan hubungan antara durasi bermain game dan
pengaruhnya terhadap hasil akademik memberikan beberapa temuan
penting:
- Responden yang bermain game dengan durasi 1-2 jam per hari sebagian
besar melaporkan bahwa bermain game cukup memengaruhi (4 responden)
hingga sangat memengaruhi (6 responden) hasil akademik mereka.
- Di sisi lain, pada kelompok yang bermain game lebih lama (5 jam atau
lebih), sebagian besar responden justru merasa bahwa durasi bermain game
sedikit memengaruhi hasil akademik (2 responden) atau bahkan tidak
memengaruhi sama sekali (2 responden).
- Hal ini dapat diinterpretasikan bahwa mahasiswa yang lebih lama
bermain game mungkin sudah terbiasa mengatur waktu mereka, sehingga
pengaruhnya terhadap hasil akademik tidak selalu besar. Namun, responden
yang bermain dalam durasi lebih pendek merasa ada dampak yang
signifikan, mungkin karena pengaturan waktu yang kurang seimbang.
Pengaruh Bermain Game terhadap Kualitas
Tidur
Diagram pie yang menunjukkan pengaruh bermain game terhadap kualitas
tidur menunjukkan bahwa:
- Sebagian besar responden merasakan dampak sedang hingga rendah,
yaitu 33.3% merasa cukup memengaruhi dan 30% merasa sedikit
memengaruhi.
- Sebanyak 20% responden merasa bermain game tidak memengaruhi
kualitas tidur mereka, sementara 16.6% merasa sangat dipengaruhi.
- Data ini menunjukkan bahwa meskipun bermain game memiliki dampak
terhadap kualitas tidur, sebagian besar mahasiswa merasakan dampaknya
pada tingkat sedang hingga rendah. Ini mungkin disebabkan oleh kemampuan
mahasiswa untuk menyeimbangkan waktu bermain game dengan kebutuhan tidur
mereka.
Kesimpulan
Dari penelitian ini, dapat disimpulkan bahwa durasi dan intensitas
bermain game memiliki pengaruh yang bervariasi pada aspek akademik dan
kualitas tidur mahasiswa. Mayoritas responden perempuan menunjukkan
bahwa ada pengaruh bermain game terhadap kualitas tidur mereka, meskipun
dampaknya cenderung tidak signifikan. Di sisi lain, pengaruh bermain
game terhadap hasil akademik tampak lebih signifikan pada responden
dengan durasi bermain yang lebih singkat. Temuan ini menggambarkan bahwa
pengaturan waktu yang baik dalam bermain game dapat membantu mengurangi
dampak negatifnya pada prestasi akademik dan kualitas tidur.
LS0tDQp0aXRsZTogIktlYmlhc2FhbiBCZXJtYWluIEdhbWUgZGkgS2FsYW5nYW4gTWFoYXNpc3dhIGRhbiBQZW5nYXJ1aG55YSBUZXJoYWRhcCBQcmVzdGFzaSBBa2FkZW1payBkYW4gS2VoaWR1cGFuIFNvc2lhbCINCnN1YnRpdGxlOiAiVVRTIFN0YXRpc3Rpa2EgRGFzYXINCktlbG9tcG9rIDciDQphdXRob3I6IA0KICAtICJBbHlhIE1hdXJhIFJhZGl0aGEgKDUyMjQwMDAzKSINCiAgLSAiRHdpIFNyaSBZYW50aSBNYW51bGxhbmcgKDUyMjQwMDMwKSINCiAgLSAiQ2hlbGxvIEZyaGlubyBNaWtlIE0gKDUyMjQwMDMxKSINCiAgLSAiU2l0aSBBemt5YSBOdXJoYWxpbWEgKDUyMjQwMDMyKSINCmRhdGU6ICAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJlYWR0aGVkb3duOiAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgdGh1bWJuYWlsczogdHJ1ZQ0KICAgIGxpZ2h0Ym94OiB0cnVlDQogICAgZ2FsbGVyeTogdHJ1ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KICAgIGxpYl9kaXI6IGxpYnMNCiAgICBkZl9wcmludDogInBhZ2VkIg0KICAgIGNvZGVfZm9sZGluZzogInNob3ciDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgY3NzOiAiQzovVXNlcnMvRGVsbC9PbmVEcml2ZS9Eb2N1bWVudHMvc3RhdGlzL3N0eWxlLmNzcyINCi0tLQ0KDQo8aW1nIGlkPSJmb3RvLWtlbG9tcG9rIiBzcmM9IkM6L1VzZXJzL0RlbGwvT25lRHJpdmUvRG9jdW1lbnRzL3N0YXRpcy9pbWcva2Vsb21wb2s3LmpwZyIgYWx0PSJMb2dvIiBzdHlsZT0id2lkdGg6NjAwcHg7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IGF1dG87Ij4NCg0KIyBMYXBvcmFuIFNpbmdrYXQgU3RhdGlzdGlrYQ0KDQoNCiMjIERlZmluaXNpIGRhbiBBc3Blaw0KDQpTdGF0aXN0aWsgYWRhbGFoIGNhYmFuZyBpbG11IHlhbmcgYmVya2FpdGFuIGRlbmdhbiBwZW5ndW1wdWxhbiwgYW5hbGlzaXMsIGludGVycHJldGFzaSwgZGFuIHByZXNlbnRhc2kgZGF0YS4gU3RhdGlzdGlrIG1lbmdndW5ha2FuIG1ldG9kZSBtYXRlbWF0aXMgZGFuIGFsZ29yaXRtaWsgdW50dWsgbWVuZ2Vsb2xhIGRhdGEgc2VoaW5nZ2EgaW5mb3JtYXNpIHlhbmcgZGlwZXJvbGVoIGRhcGF0IGRpZ3VuYWthbiB1bnR1ayBtZW1idWF0IGtlcHV0dXNhbiB5YW5nIGxlYmloIGJhaWsuDQoNCiMjIyBBc3BlayBVdGFtYSBTdGF0aXN0aWsNCg0KLQkqKlBlbmd1bXB1bGFuIERhdGEqKjogUHJvc2VzIG1lbmd1bXB1bGthbiBkYXRhIGRhcmkgYmVyYmFnYWkgc3VtYmVyIG1lbGFsdWkgc3VydmVpLCBla3NwZXJpbWVuLCBhdGF1IG9ic2VydmFzaS4gTWV0b2RlIGluaSBtZW5jYWt1cCBzYW1wbGluZyBhdGF1IHBlbmd1bXB1bGFuIGRhdGEgbGVuZ2thcCBkYXJpIHBvcHVsYXNpLg0KLQkqKkFuYWxpc2lzIERhdGEqKjogVGVrbmlrLXRla25payBzdGF0aXN0aWsgZGlndW5ha2FuIHVudHVrIG1lbmdhbmFsaXNpcyBkYXRhLCB0ZXJtYXN1ayBkZXNrcmlwdGlmIHN0YXRpc3RpayBzZXBlcnRpIG1lYW4gKHJhdGEtcmF0YSksIG1lZGlhbiwgbW9kZSwgZGFuIGRldmlhc2kgc3RhbmRhciwgc2VydGEgaW5mZXJlbnNpYWwgc3RhdGlzdGlrIHNlcGVydGkgdWppIGhpcG90ZXNpcyBkYW4gYW5hbGlzaXMgcmVncmVzaS4NCi0JKipJbnRlcnByZXRhc2kgRGF0YSoqOiBNZW5hZnNpcmthbiBoYXNpbCBhbmFsaXNpcyB1bnR1ayBtZW1haGFtaSBhcGEgeWFuZyBkYXRhIHRlcnNlYnV0IGthdGFrYW5hIHRlbnRhbmcgZmVub21lbmEgeWFuZyBzZWRhbmcgZGlwZWxhamFyaS4gSW5pIG1lbGliYXRrYW4gcGVuYXJpa2FuIGtlc2ltcHVsYW4geWFuZyBkYXBhdCBtZW5qZWxhc2thbiBwb2xhLCB0cmVuLCBhdGF1IGh1YnVuZ2FuIGRhbGFtIGRhdGEuDQotCSoqUHJlc2VudGFzaSBEYXRhKio6IE1lbnlhamlrYW4gaGFzaWwgYW5hbGlzaXMgZGFsYW0gZm9ybWF0IHlhbmcgTXVkYWggZGlwYWhhbWksIHNlcGVydGkgdGFibGUsIGdyYWZpaywgYXRhdSB2aXN1YWxpc2FzaSBsYWlubnlhLCBzZWhpbmdnYSBpbmZvcm1hc2kgZGFwYXQgZGlzYW1wYWlrYW4gc2VjYXJhIGVmZWt0aWYga2VwYWRhIGF1ZGllbnMuDQoNCiMjIyBQZW50aW5nbnlhIFN0YXRpc3Rpaw0KDQotCSoqUGVuZ2FtYmlsYW4gS2VwdXR1c2FuKio6IFN0YXRpc3RpayBtZW11bmdraW5rYW4gaW5kaXZpZHUgZGFuIG9yZ2FuaXNhc2kgdW50dWsgbWVtYnVhdCBrZXB1dHVzYW4geWFuZyBsZWJpaCBiYWlrIGRhbiBsZWJpaCB0ZXJpbmZvcm1hc2kuIERlbmdhbiBkYXRhIHlhbmcgdGVwYXQgZGFuIGFuYWxpc2lzIHlhbmcgYmVuYXIsIGtlcHV0dXNhbiBkYXBhdCBkaWRhc2Fya2FuIHBhZGEgYnVrdGkgZW1waXJpcyBkYXJpcGFkYSBhc3Vtc2kgYXRhdSBzcGVrdWxhc2kuDQotCSoqSWRlbnRpZmlrYXNpIFBvbGEgZGFuIFRyZW4qKjogTWVsYWx1aSBhbmFsaXNpcyBzdGF0aXN0aWssIGtpdGEgZGFwYXQgbWVuZ2lkZW50aWZpa2FzaSBwb2xhIGRhbiB0cmVuIGRhbGFtIGRhdGEgeWFuZyBtdW5na2luIHRpZGFrIHRlcmxpaGF0IGRlbmdhbiBrYXNhdCBtYXRhLg0KLQkqKlVqaSBIaXBvdGVzaXMqKjogU3RhdGlzdGlrIG1lbXVuZ2tpbmthbiBraXRhIHVudHVrIG1lbmd1amkgaGlwb3Rlc2lzIGF0YXUgdGVvcmkgZGVuZ2FuIG1lbmdndW5ha2FuIGRhdGEuIFVqaSBoaXBvdGVzaXMgc2VwZXJ0aSB0LXRlc3QgYXRhdSBBTk9WQSBkYXBhdCBtZW5lbnR1a2FuIGFwYWthaCBwZXJiZWRhYW4gYW50YXJhIGtlbG9tcG9rIGF0YXUgdmFyaWFibGUgc2lnbmlmaWthbiBzZWNhcmEgc3RhdGlzdGlrLg0KLQkqKlByZWRpa3NpIGRhbiBQZXJlbmNhbmFhbioqOiBEZW5nYW4gbWVuZ2d1bmFrYW4gbW9kZWwgc3RhdGlzdGlrLCBraXRhIGRhcGF0IG1lbWJ1YXQgcHJlZGlrc2kgdGVudGFuZyBrZWphZGlhbiBkaSBtYXNhIGRlcGFuIGJlcmRhc2Fya2FuIGRhdGEgaGlzdG9yaXMuIA0KLQkqKkV2YWx1YXNpIFByb2dyYW0gZGFuIEtlYmlqYWthbioqOiBTdGF0aXN0aWsgZGlndW5ha2FuIHVudHVrIG1lbmdldmFsdWFzaSBlZmVrdGl2aXRhcyBwcm9ncmFtIGF0YXUga2ViaWpha2FuLiBEZW5nYW4gbWVuZ2FuYWxpc2lzIGRhdGEgc2ViZWx1bSBkYW4gc2VzdWRhaCBpbXBsZW1lbnRhc2ksIGtpdGEgZGFwYXQgbWVuaWxhaSBhcGFrYWggcGVydWJhaGFuIHlhbmcgZGlsYWt1a2FuIG1lbWlsaWtpIGRhbXBhayB5YW5nIGRpaW5naW5rYW4uDQotCSoqUGVuZWxpdGlhbiBkYW4gUGVuZ2VtYmFuZ2FuKio6IFN0YXRpc3RpayBtZW1haW5rYW4gcGVyYW4ga3VuY2kgZGFsYW0gbWVyYW5jYW5nIGVrc3BlcmltZW4sIG1lbmdhbmFsaXNpcyBoYXNpbCwgZGFuIG1lbmFyaWsga2VzaW1wdWxhbiB5YW5nIHZhbGlkLg0KLQkqKktlc2VoYXRhbiBkYW4gS2Vkb2t0ZXJhbioqOiBTdGF0aXN0aWsgZGlndW5ha2FuIHVudHVrIGFuYWxpc2lzIGVwaWRlbWlvbG9naSwgdWppIGtsaW5pcywgZGFuIHBlbmVsaXRpYW4gbWVkaXMuIEluaSBtZW1iYW50dSBkYWxhbSBtZW1haGFtaSBwcmV2YWxlbnNpIHBlbnlha2l0LCBlZmVrdGl2aXRhcyBwZW5nb2JhdGFuLCBkYW4gZmFjdG9yIHJpc2lrby4NCg0KIyMgSmVuaXMgU3RhdGlzdGlrYQ0KDQpTdGF0aXN0aWthIHRlcmJhZ2kgbWVuamFkaSBkdWEgamVuaXMgdXRhbWEsIHlhaXR1IFN0YXRpc3Rpa2EgZGVza3JpcHRpZiBkYW4gU3RhdGlzdGlrYSBpbmZlcmVuc2lhbC4gS2VkdWFueWEgbWVtaWxpa2kgdHVqdWFuIGRhbiB0ZWtuaWsgeWFuZyBiZXJiZWRhIGRhbGFtIG1lbmdhbmFsaXNpcyBkYXRhLg0KDQojIyMgU3RhdGlzdGlrYSBEZXNrcmlwdGlmDQoNClN0YXRpc3Rpa2EgZGVza3JpcHRpZiBtZWxpYmF0a2FuIG1ldG9kZSB5YW5nIGRpZ3VuYWthbiB1bnR1ayBtZW5nZ2FtYmFya2FuIGF0YXUgbWVyaW5na2FzIGRhdGEgZGFyaSBzYW1wZWwgYXRhdSBwb3B1bGFzaSB0YW5wYSBtZW1idWF0IGluZmVyZW5zaSBhdGF1IGdlbmVyYWxpc2FzaSB0ZW50YW5nIGRhdGEgdGVyc2VidXQuIFR1anVhbiB1dGFtYSBTdGF0aXN0aWthIGRlc2tyaXB0aWYgYWRhbGFoIHVudHVrIG1lbnlhamlrYW4gZGF0YSBkYWxhbSBiZW50dWsgeWFuZyBNdWRhaCBkaXBhaGFtaSBkYW4gbWVtYmVyaWthbiByaW5na2FzYW4geWFuZyBiZXJndW5hLg0KVGVrbmlrLXRla25payB1dGFtYSBkYWxhbSBTdGF0aXN0aWthIGRlc2tyaXB0aWYgbWVsaXB1dGk6DQoNCjEuCVVrdXJhbiBQZW1ldGFhbiBEYXRhDQotCU1lYW4gKFJhdGEtcmF0YSkNCi0JTWVkaWFuIA0KLQlNb2RlDQoyLglVa3VyYW4gRGlzcGVyc2lvbg0KLQlSYW5nZSAoUmVudGFuZykNCi0JVmFyaWFuY2UNCi0JU3RhbmRhcmQgRGV2aWF0aW9uIChEZXZpYXNpIFN0YW5kYXIpDQozLglWaXN1YWxpc2FzaSBEYXRhDQotCUhpc3RvZ3JhbQ0KLQlCb3ggUGxvdA0KLQlCYXIgQ2hhcnQgZGFuIFBpZSBDaGFydA0KDQojIyMgU3RhdGlzdGlrYSBJbmZlcmVuc2lhbA0KDQpTdGF0aXN0aWthIGluZmVyZW5zaWFsIG1lbGliYXRrYW4gbWV0b2RlIHlhbmcgZGlndW5ha2FuIHVudHVrIG1lbWJ1YXQgZ2VuZXJhbGlzYXNpIGF0YXUgaW5mZXJlbnNpIHRlbnRhbmcgcG9wdWxhc2kgYmVyZGFzYXJrYW4gZGF0YSBzYW1wZWwuIA0KVGVrbmlrLXRla25payB1dGFtYSBkYWxhbSBTdGF0aXN0aWthIGluZmVyZW5zaWFsIG1lbGlwdXRpOg0KDQoxLglVamkgSGlwb3Rlc2lzDQoNCi0JVWppIHQ6IGRpZ3VuYWthbiB1bnR1ayBtZW1iYW5kaW5na2FuIHJhdGEtcmF0YSBkYXJpIGR1YSBrZWxvbXBvayBhdGF1IHNhbXBlbA0KLQlVamkgQU5PVkEgKEFuYWx5c2lzIG9mIFZhcmlhbmNlKTogZGlndW5ha2FuIHVudHVrIG1lbWJhbmRpbmdrYW4gcmF0YS1yYXRhIGFudGFyYSBsZWJpaCBkYXJpIGR1YSBrZWxvbXBvaw0KLQlVamkgQ2hpLVNxdWFyZTogZGlndW5ha2FuIHVudHVrIG1lbmd1amkgaHVidW5nYW4gYW50YXJhIGR1YSB2YXJpYWJsZSBrYXRlZ29yaWthbC4NCg0KMi4JSW50ZXJ2YWwgS2VwZXJjYXlhYW4NCg0KSW50ZXJ2YWwga2VwZXJjYXlhYW4gbWVtYmVyaWthbiByZW50YW5nIG5pbGFpIHlhbmcgbXVuZ2tpbiBtZW5nYW5kdW5nIHBhcmFtZXRlciBwb3B1bGFzaS4NCg0KMy4JUmVncmVzaSBkYW4gS29yZWxhc2kNCg0KLQlSZWdyZXNpOiBtZW5nZ3VuYWthbiBkYXRhIHVudHVrIG1lbW9kZWxrYW4gaHVidW5nYW4gYW50YXJhIHZhcmlhYmxlIGRlcGVuZGVuIGRhbiBzYXR1IGF0YXUgbGViaWggdmFyaWFibGUgaW5kZXBlbmRlbnQsDQotCUtvcmVsYXNpOiBNZW5ndWt1ciBrZWt1YXRhbiBkYW4gYXJhaCBodWJ1bmdhbiBsaW5lYXIgYW50YXJhIGR1YSB2YXJpYWJsZS4NCg0KNC4JU2FtcGxpbmcgZGFuIEVzdGltYXNpDQoNCi0JU2FtcGxpbmc6IHByb3NlcyBwZW1pbGloYW4gc2FtcGVsIGRhcmkgcG9wdWxhc2kgdW50dWsgYW5hbGlzaXMuDQotCUVzdGltYXNpOiBtZW5nZ3VuYWthbiBkYXRhIHNhbXBlbCB1bnR1ayBtZW1wZXJraXJha2FuIHBhcmFtZXRlciBwb3B1bGFzaSwgc2VwZXJ0aSBtZWFuIGF0YXUgcHJvcG9yc2kuDQoNClN0YXRpc3Rpa2EgZGVza3JpcHRpZiBkYW4gaW5mZXJlbnNpYWwgc2FsaW5nIG1lbGVuZ2thcGkgZGFsYW0gYW5hbGlzaXMgZGF0YS4gU3RhdGlzdGlrYSBkZXNrcmlwdGlmIG1lbWJlcmlrYW4gZ2FtYmFyYW4gdW11bSB0ZW50YW5nIGRhdGEsIHNlZGFuZ2thbiBTdGF0aXN0aWthIGluZmVyZW5zaWFsIG1lbXVuZ2tpbmthbiBwZW5hcmlrYW4ga2VzaW1wdWxhbiBkYW4gcGVtYnVhdGFuIGtlcHV0dXNhbiBiZXJkYXNhcmthbiBkYXRhIHRlcnNlYnV0Lg0KDQojIyBKZW5pcyBEYXRhOiBLdWFsaXRhdGlmIHZhLiBLdWFudGl0YXRpZg0KDQojIyMgRGF0YSBLdWFsaXRhdGlmDQoNCkRhdGEga3VhbGl0YXRpZiBhZGFsYWggZGF0YSB5YW5nIG1lbmdnYW1iYXJrYW4ga3VhbGl0YXMgYXRhdSBrYXJha3RlcmlzdGlrIG5vbi1udW1lcmlrLiANCkplbmlzLWplbmlzIGRhdGEga3VhbGl0YXRpZiBtZWxpcHV0aToNCg0KMS4JRGF0YSBOb21pbmFsOiBEYXRhIG5vbWluYWwgYWRhbGFoIGRhdGEgeWFuZyB0ZXJkaXJpIGRhcmkga2F0ZWdvcmkgeWFuZyB0aWRhayBtZW1pbGlraSB1cnV0YW4gYXRhdSBoaWVyYXJraS4NCjIuCURhdGEgT3JkaW5hbDogRGF0YSBvcmRpbmFsIGFkYWxhaCBkYXRhIHlhbmcgbWVtaWxpa2kgdXJ1dGFuIGF0YXUgaGllcmFya2ksIHRldGFwaSBqYXJhayBhbnRhcmEga2F0ZWdvcmkgdGlkYWsgdGVydWt1ciBzZWNhcmEgdGVwYXQuDQoNCiMjIyBEYXRhIEt1YW50aXRhdGlmDQoNCkRhdGEga3VhbnRpdGF0aWYganVnYSBkaWtlbmFsIHNlYmFnYWkgZGF0YSBudW1lcmlrLCBhZGFsYWggZGF0YSB5YW5nIGRhcGF0IGRpdWt1ciBkYW4gZGloaXR1bmcuIA0KSmVuaXMtamVuaXMgZGF0YSBrdWFudGl0YXRpZiBtZWxpcHV0aToNCg0KMS4JRGF0YSBEaXNrcmV0OiBEYXRhIGRpc2tyZXQgYWRhbGFoIGRhdGEgeWFuZyBoYW55YSBkYXBhdCBtZW5nYW1iaWwgbmlsYWkgdGVydGVudHUgZGFsYW0gcmVudGFuZyB5YW5nIHRlcnBpc2FoIGF0YXUgdGVyaGl0dW5nLg0KMi4JRGF0YSBLb250aW51OiBEYXRhIGtvbnRpbnUgYWRhbGFoIGRhdGEgeWFuZyBkYXBhdCBtZW5nYW1iaWwgbmlsYWkgZGFsYW0gcmVudGFuZyB5YW5nIGtvbnRpbnUgYXRhdSB0YWsgdGVyaGluZ2dhLiANCg0KIyBQZW5ndW1wdWxhbiBEYXRhDQoNClBlbmd1bXB1bGFuIGRhdGEgbWVydXBha2FuIHRhaGFwIHBlbnRpbmcgZGFsYW0gcGVuZWxpdGlhbiwgZGkgbWFuYSBwZW5lbGl0aSBtZW5ndW1wdWxrYW4gaW5mb3JtYXNpIHVudHVrIG1lbmphd2FiIHBlcnRhbnlhYW4gcGVuZWxpdGlhbiBhdGF1IG1lbmd1amkgaGlwb3Rlc2lzLg0KDQojIyBEYXRhIFByaW1lcg0KDQpEYXRhIHByaW1lciBhZGFsYWggZGF0YSB5YW5nIGRpa3VtcHVsa2FuIGxhbmdzdW5nIGRhcmkgc3VtYmVybnlhLg0KDQotCVN1cnZlaTogbWV0b2RlIHlhbmcgbWVsaWJhdGthbiBzZXJhbmdrYWlhbiBwZXJ0YW55YWFuIGtlcGFkYSByZXNwb25kZW4uIEt1ZXNpb25lciBkYXBhdCBiZXJ1cGEgcGVydGFueWFhbiB0ZXJ0dXR1cCAocGlsaWhhbiBnYW5kYSkgYXRhdSB0ZXJidWthLg0KLQlXYXdhbmNhcmE6IG1ldG9kZSBwZW5ndW1wdWxhbiBkYXRhIG1lbGFsdWkgcGVyY2FrYXBhbiBsYW5nc3VuZy4gSW5pIGJpc2EgdGVyc3RydWt0dXIgKHBlcnRhbnlhYW4gdGV0YXApIGF0YXUgc2VtaS10ZXJzdHJ1a3R1ciAoZmxla3NpYmVsKQ0KLQlPYnNlcnZhc2k6IG1ldG9kZSBwZW5ndW1wdWxhbiBkZW5nYW4gbWVuZ2FtYXRpIHN1YmplayBhdGF1IG9iamVrIHRhbnBhIGludGVyYWtzaSBsYW5nc3VuZy4NCi0JRWtzcGVyaW1lbjogbWVsaWJhdGthbiBjb250cm9sIHZhcmlhYmxlIHVudHVrIG1lbGloYXQgcGVuZ2FydWhueWEgdGVyaGFkYXAgdmFyaWFibGUgbGFpbi4NCg0KIyMgRGF0YSBTZWt1bmRlcg0KDQpEYXRhIHNla3VuZGVyIGFkYWxhaCBkYXRhIHlhbmcgc3VkYWggZGlrdW1wdWxrYW4gb2xlaCBwaWhhayBsYWluLCB0ZXJzZWRpYSBkYWxhbSBkb2t1bWVuLCBsYXBvcmFuLCBhdGF1IGJhc2lzIGRhdGEuDQoNCi0JU3VtYmVyIFRlcnR1bGlzOiBQZW5ndW1wdWxhbiBkYXRhIGRhcmkgc3VtYmVyIHRlcnR1bGlzIG1lbGliYXRrYW4gZG9rdW1lbiB5YW5nIHN1ZGFoIGFkYSwgc2VwZXJ0aSBsYXBvcmFuIHRhaHVuYW4gYXRhdSBhcnRpa2VsLg0KLQlEYXRhYmFzZSBQdWJsaWs6IERhdGEgc2VrdW5kZXIganVnYSBiaXNhIGRpcGVyb2xlaCBkYXJpIGJhc2lzIGRhdGEgcHVibGljIHNlcGVydGkgZGF0YSBzZW5zdXMuDQoNCiMjIFJlbGlhYmlsaXRhcyBkYW4gVmFsaWRpdGFzDQoNClJlbGlhYmlsaXRhcyBkYW4gdmFsaWRpdGFzIGFkYWxhaCBkdWEga29uc2VwIHBlbnRpbmcgeWFuZyBtZW5lbnR1a2FuIGt1YWxpdGFzIGluZm9ybWFzaSB5YW5nIGRpcGVyb2xlaCBkYWxhbSBwZW5lbGl0aWFuLg0KDQotCVJlbGlhYmlsaXRhcyBEYXRhOiBrb25zaXN0ZW5zaSBwZW5ndWt1cmFuIGRhcmkgd2FrdHUga2Ugd2FrdHUuIERhdGEgeWFuZyByZWxpYWJlbCBtZW1iZXJpa2FuIGhhc2lsIHlhbmcgc2FtYSBkZW5nYW4ga29uZGlzaSB5YW5nIHNhbWEuDQotCVZhbGlkaXRhcyBEYXRhOiBtZW5ndWt1ciBzZWphdWggbWFuYSBpbnN0cnVtZW50IG1lbmd1a3VyIGFwYSB5YW5nIHNlaGFydXNueWEgZGl1a3VyLg0KDQojIFBlbnlhamlhbiBEYXRhDQoNClBlbnlhamlhbiBEYXRhIGFkYWxhaCBwcm9zZXMgcGVuZ29yZ2FuaXNhc2lhbiwgdmlzdWFsaXNhc2ksIGRhbiBpbnRlcnByZXRhc2kgZGF0YSBhZ2FyIGxlYmloIG11ZGFoIGRpcGFoYW1pIGRhbiBkYXBhdCBkaWFtYmlsIGtlc2ltcHVsYW4uIERhbGFtIGtvbnRla3MgYW5hbGlzaXMgZGF0YSwgcGVueWFqaWFuIGRpbGFrdWthbiBkZW5nYW4gbWVuZ2d1bmFrYW4gYmVyYmFnYWkgYWxhdCBkYW4gbWV0b2RlIHZpc3VhbGlzYXNpIHNlcGVydGkgdGFibGUsIGdyYWZpaywgZGFuIGRpYWdyYW0sIHRlcmdhbnR1bmcgcGFkYSBqZW5pcyBkYXRhbnlhIChrdWFsaXRhdGlmIGF0YXUga3VhbnRpdGF0aWYpLg0KDQojIyBEYXRhIEt1YWxpdGF0aWYNCg0KRGF0YSBrdWFsaXRhdGlmIGJpYXNhbnlhIG1lbmdnYW1iYXJrYW4ga2F0ZWdvcmkgYXRhdSBrZWxvbXBvaywgc2VwZXJ0aSBqZW5pcyBrZWxhbWluLCBwcmVmcmVuc2kgcHJvZHVrLCBhdGF1IGNhcmEgcGVtYmVsaWFuLiBQZW55YWppYW4gZGF0YSBrdWFsaXRhdGlmIGJpc2EgZGlsYWt1a2FuIGRlbmdhbjoNCg0KLQlUYWJlbCBEaXN0cmlidXNpIEZyZWt1ZW5zaQ0KLQlEaWFncmFtIEJhdGFuZw0KLQlEaWFncmFtIExpbmdrYXJhbg0KDQojIyBEYXRhIEt1YW50aXRhdGlmDQoNCkRhdGEga3VhbnRpdGF0aWYgbWVuZ2dhbWJhcmthbiB2YXJpYWJsZSBudW1lcmlrIHNlcGVydGkgdXNpYSwgcGVuZGFwYXRhbiwgZGFuIGp1bWxhaCBwZW1iZWxpYW4uIFBlbnlhamlhbiBkYXRhIGt1YW50aXRhdGlmIGRhcGF0IGRpbGFrdWthbiBkZW5nYW46DQoNCi0JRGlhZ3JhbSBIaXN0b2dyYW0NCi0JRGlhZ3JhbSBHYXJpcw0KLQlEaWFncmFtIEJveHBsb3QNCg0KIyMgTXVsdGl2YXJpYXQgRGF0YQ0KDQpEYXRhIG11bHRpdmFyaWF0IGFkYWxhaCBkYXRhIHlhbmcgbWVsaWJhdGthbiBsZWJpaCBkYXJpIGR1YSB2YXJpYWJsZSBwYWRhIHdha3R1IHlhbmcgc2FtYS4gUGVueWFqaWFuIGRhdGEgbXVsdGl2YXJpYXQgc2VyaW5nIG1lbmdndW5ha2FuOg0KDQotCVNjYXR0ZXIgUGxvdCBNYXRyaXgNCi0JSGVhdG1hcA0KDQoNCiMgQ29udG9oIEthc3VzOiBBbmFsaXNpcyBLZWJpYXNhYW4gQmVybWFpbiBHYW1lDQoNCkRhbGFtIGFuYWxpc2lzIGluaSwgcGVuZ3VtcHVsYW4gZGF0YSB0ZXJrYWl0IGRlbmdhbiAiKipLZWJpYXNhYW4gQmVybWFpbiBHYW1lIGRpIEthbGFuZ2FuIE1haGFzaXN3YSoqIiBkaWxha3VrYW4gbWVuZ2d1bmFrYW4gKiptZXRvZGUgcGVuZ3VtcHVsYW4gc3VydmVpIGRlbmdhbiBrdWVzaW9uZXIqKi4gTWV0b2RlIGluaSBtZW11bmdraW5rYW4gcGVuZ3VtcHVsYW4gZGF0YSBsYW5nc3VuZyBkYXJpIG1haGFzaXN3YSwgYmFpayBkYWxhbSBiZW50dWsgZGF0YSBrdWFudGl0YXRpZiBtYXVwdW4ga3VhbGl0YXRpZiwgc2VjYXJhIHNlZGVyaGFuYSBkYW4gdGVyc3RydWt0dXIuIERlbmdhbiBrdWVzaW9uZXIsIGtpdGEgZGFwYXQgbWVuZ2FqdWthbiBwZXJ0YW55YWFuIHNwZXNpZmlrIG1lbmdlbmFpIGtlYmlhc2FhbiBiZXJtYWluIGdhbWUsIGRhbXBha255YSB0ZXJoYWRhcCBha2FkZW1paywgZGFuIHBlcnNlcHNpIG1haGFzaXN3YSBtZW5nZW5haSBwZW5nYXJ1aCBnYW1lIHRlcmhhZGFwIGtlaGlkdXBhbiBzb3NpYWwgbWVyZWthLg0KDQojIyBQcm9zZXMgUGVuZ3VtcHVsYW4gRGF0YSBNZWxhbHVpIEt1ZXNpb25lcg0KDQpEYWxhbSBrdWVzaW9uZXIgaW5pLCBiZWJlcmFwYSBwZXJ0YW55YWFuIGRpYWp1a2FuIHVudHVrIG1lbmd1bXB1bGthbiBpbmZvcm1hc2kgeWFuZyByZWxldmFuLCBzZXBlcnRpOg0KDQoqKi0gRHVyYXNpIEJlcm1haW4gR2FtZToqKiBNYWhhc2lzd2EgZGltaW50YSBtZW5jYW50dW1rYW4gd2FrdHUgcmF0YS1yYXRhIChkYWxhbSBqYW0gYXRhdSBtZW5pdCkgeWFuZyBkaWhhYmlza2FuIHVudHVrIGJlcm1haW4gZ2FtZSBwZXIgaGFyaS4NCg0KKiotIEdlbnJlIEdhbWUgRmF2b3JpdDoqKiBNYWhhc2lzd2EgbWVtaWxpaCBkYXJpIGRhZnRhciBnZW5yZSAoYWtzaSwgcGV0dWFsYW5nYW4sIHB1enpsZSwgb2xhaHJhZ2EsIGRsbC4pIHVudHVrIG1lbmdldGFodWkgcHJlZmVyZW5zaSBqZW5pcyBnYW1lIHlhbmcgZGltYWlua2FuLg0KDQoqKi0gRGFtcGFrIFRlcmhhZGFwIFByZXN0YXNpIEFrYWRlbWlrOioqIFBlcnRhbnlhYW4gbWVuZ2VuYWkgcGVuZ2FydWgga2ViaWFzYWFuIGJlcm1haW4gZ2FtZSB0ZXJoYWRhcCBuaWxhaSBhdGF1IHBlbmNhcGFpYW4gYWthZGVtaWsgbWVyZWthLg0KDQoqKi0gRGFtcGFrIFRlcmhhZGFwIEtlaGlkdXBhbiBTb3NpYWw6KiogUGVydGFueWFhbiBtZW5nZW5haSBiYWdhaW1hbmEga2ViaWFzYWFuIGJlcm1haW4gZ2FtZSBtZW1wZW5nYXJ1aGkgaW50ZXJha3NpIHNvc2lhbCBhdGF1IGh1YnVuZ2FuIGRlbmdhbiB0ZW1hbi4NCg0KS3Vlc2lvbmVyIGluaSBkaWJhZ2lrYW4ga2VwYWRhIHNla2Vsb21wb2sgcmVzcG9uZGVuIHlhbmcgbWV3YWtpbGkgcG9wdWxhc2kgbWFoYXNpc3dhLiBNZXRvZGUga3Vlc2lvbmVyIG1lbXVkYWhrYW4gcGVuZ3VtcHVsYW4gZGF0YSBkYWxhbSBqdW1sYWggYmVzYXIgc2VjYXJhIGNlcGF0LCBzZWhpbmdnYSBoYXNpbG55YSBkYXBhdCBkaW9sYWggc2VjYXJhIHN0YXRpc3RpayB1bnR1ayBtZW1iZXJpa2FuIHdhd2FzYW4gdGVudGFuZyBwb2xhIGtlYmlhc2FhbiBiZXJtYWluIGdhbWUgZGkga2FsYW5nYW4gbWFoYXNpc3dhLg0KDQojIyBKZW5pcyBEYXRhIHlhbmcgRGlwZXJvbGVoDQoNCkRhdGEgeWFuZyBkaXBlcm9sZWggZGFyaSBrdWVzaW9uZXIgaW5pIHRlcmRpcmkgZGFyaToNCg0KLQkqKkRhdGEgS3VhbnRpdGF0aWYqKjogU2VwZXJ0aSBkdXJhc2kgcmF0YS1yYXRhIGJlcm1haW4gZ2FtZSBwZXIgaGFyaSAoZGFsYW0gamFtL21lbml0KSBkYW4gZnJla3VlbnNpIGJlcm1haW4gZ2FtZSBwZXIgbWluZ2d1LiBEYXRhIGluaSBtZW1iZXJpa2FuIGdhbWJhcmFuIGt1YW50aXRhdGlmIG1lbmdlbmFpIGludGVuc2l0YXMgYmVybWFpbiBnYW1lIGRpIGthbGFuZ2FuIG1haGFzaXN3YS4NCi0JKipEYXRhIEt1YWxpdGF0aWYqKjogVGVybWFzdWsgZ2VucmUgZ2FtZSBmYXZvcml0IGRhbiBwZXJzZXBzaSBkYW1wYWsgZ2FtZSBwYWRhIGFrYWRlbWlrIGRhbiBrZWhpZHVwYW4gc29zaWFsLiBEYXRhIGluaSBtZW1iYW50dSBtZW5nZ2FtYmFya2FuIHBhbmRhbmdhbiBtYWhhc2lzd2EgZGFuIHBlbmdhcnVoIGtlYmlhc2FhbiBiZXJtYWluIGdhbWUgc2VjYXJhIGxlYmloIG1lbmRhbGFtLg0KDQojIyBQZW55YWppYW4gRGF0YSBNZW5nZ3VuYWthbiBUYWJlbA0KDQpVbnR1ayBtZW1wZXJtdWRhaCAqKmludGVycHJldGFzaSBoYXNpbCBzdXJ2ZWkqKiwgZGF0YSBkYXJpIGt1ZXNpb25lciBkaXNhamlrYW4gZGFsYW0gYmVudHVrICoqdGFiZWwqKi4gVGFiZWwgaW5pIG1lbXVkYWhrYW4gcGVtYmFjYSBtZWxpaGF0IHBlcmJhbmRpbmdhbiBhbnRhci1rYXRlZ29yaSBzZWNhcmEgdGVyc3RydWt0dXIsIHNlaGluZ2dhIHBvbGEgYXRhdSB0cmVuIGRhcGF0IGRlbmdhbiBtdWRhaCBkaWlkZW50aWZpa2FzaS4gUGVueWFqaWFuIGRhdGEgZGFsYW0gYmVudHVrIHRhYmVsIG1lbWJlcmlrYW4gZ2FtYmFyYW4geWFuZyBqZWxhcyB0ZW50YW5nIGtlYmlhc2FhbiBiZXJtYWluIGdhbWUgZGkga2FsYW5nYW4gbWFoYXNpc3dhLCB5YW5nIGRhcGF0IGRpZ3VuYWthbiB1bnR1ayBtZW5pbGFpIGRhbXBha255YSB0ZXJoYWRhcCBrZWhpZHVwYW4gYWthZGVtaWsgZGFuIHNvc2lhbCBtZXJla2EuDQoNCg0KIyBBbmFsaXNpcyBLZWJpYXNhYW4gQmVybWFpbiBHYW1lDQoNClVudHVrIG1lbmdhbmFsaXMgKioiS2ViaWFzYWFuIEJlcm1haW4gR2FtZSBkaSBLYWxhbmdhbiBNYWhhc2lzd2Egc2VydGEgUGVuZ2FydWhueWEgVGVyaGFkYXAgUHJlc3Rhc2kgQWthZGVtaWsgZGFuIEtlaGlkdXBhbiBTb3NpYWwqKiIuIE1ldG9kZSBwZW5ndW1wdWxhbiBkYXRhIHlhbmcgc2VzdWFpIGhhcnVzIG1hbXB1IG1lbmFuZ2thcCBhc3BlayBrdWFudGl0YXRpZiBkYW4ga3VhbGl0YXRpZi4gSW5pIGthcmVuYSB0b3BpayBpbmkgdGlkYWsgaGFueWEgbWVtYnV0dWhrYW4gYW5na2EgKHNlcGVydGkgZHVyYXNpIGJlcm1haW4gYXRhdSBuaWxhaSBha2FkZW1payksIHRldGFwaSBqdWdhIHBlbmdhbGFtYW4gcHJpYmFkaSBkYW4gcGVyc2Vwc2kgbWFoYXNpc3dhLiBCZXJpa3V0IGFkYWxhaCBtZXRvZGUgcGVuZ3VtcHVsYW4gZGF0YSB5YW5nIHNlc3VhaToNCg0KIyMgU3VydmVpIGRlbmdhbiBLdWVzaW9uZXINCg0KIyMjCUVmaXNpZW5zaSBXYWt0dQ0KKipHb29nbGUgRm9ybSoqIG1lbXVuZ2tpbmthbiBwZW5ndW1wdWxhbiBkYXRhIGRhbGFtIHdha3R1IHlhbmcgcmVsYXRpZiBzaW5na2F0IGthcmVuYSBkYXBhdCBkaXNlYmFya2FuIHNlY2FyYSBvbmxpbmUuIE1haGFzaXN3YSBkYXBhdCBtZW5naXNpIGt1ZXNpb25lciBkaSBtYW5hIHNhamEgICAgICAgIGRhbiBrYXBhbiBzYWphLCBzZWhpbmdnYSBkYXRhIGRhcGF0IHRlcmt1bXB1bCBsZWJpaCBjZXBhdCBkaWJhbmRpbmdrYW4gbWV0b2RlIGxhaW4gc2VwZXJ0aSB3YXdhbmNhcmEgYXRhdSBvYnNlcnZhc2kgbGFuZ3N1bmcuDQoNCiMjIwlLZW11ZGFoYW4gQWtzZXMNCkRlbmdhbiAqKkdvb2dsZSBGb3JtKiosICpzdXJ2ZWkqIGRhcGF0IGRpc2ViYXJrYW4gZGVuZ2FuIG11ZGFoIG1lbGFsdWkgdGF1dGFuIHlhbmcgICAgZGliYWdpa2FuIGxld2F0IGVtYWlsLCBncnVwIG1lZGlhIHNvc2lhbCwgYXRhdSBwbGF0Zm9ybSBrYW1wdXMuIEluaSBtZW11ZGFoa2FuICAgICAgICByZXNwb25kZW4gdW50dWsgYmVycGFydGlzaXBhc2kgdGFucGEgcGVybHUgaGFkaXIgc2VjYXJhIGZpc2lrIGF0YXUgbWVuZ2F0dXIgd2FrdHUgICAgIGtodXN1cywgeWFuZyBtZW5naGVtYXQgd2FrdHUgYmFpayBiYWdpIHBlbmVsaXRpIG1hdXB1biByZXNwb25kZW4uDQoNCiMjIwlLZW1hbXB1YW4gTWVuZ3VtcHVsa2FuIERhdGEgS3VhbnRpdGF0aWYgZGFuIEt1YWxpdGF0aWYNCioqR29vZ2xlIEZvcm0qKiBtZW11bmdraW5rYW4gcGVuZWxpdGkgdW50dWsgbWVuZ3VtcHVsa2FuIGRhdGEgZGFsYW0gYmVudHVrICoqcGlsaWhhbiAgZ2FuZGEgYXRhdSBwZXJ0YW55YWFuIHRlcmJ1a2EqKi4gRGVuZ2FuIGZvcm1hdCBpbmksIHBlbmVsaXRpIGRhcGF0IG1lbXBlcm9sZWggZGF0YSBrdWFudGl0YXRpZiBtZW5nZW5haSBmcmVrdWVuc2kgZGFuIGR1cmFzaSBiZXJtYWluIGdhbWUsIHNlcnRhIGRhdGEga3VhbGl0YXRpZiAgICAgICAgIHNlcGVydGkgcGVyc2Vwc2kgcmVzcG9uZGVuIHRlcmhhZGFwIGRhbXBhayBiZXJtYWluIGdhbWUuDQoNCiMjIwlQZW5nb2xhaGFuIERhdGEgeWFuZyBNdWRhaA0KRGF0YSB5YW5nIHRlcmt1bXB1bCBkYXJpIEdvb2dsZSBGb3JtIGxhbmdzdW5nIHRlcmludGVncmFzaSBkYWxhbSBiZW50dWsgICAgICAgICAgICAgICAqKnNwcmVhZHNoZWV0KiosIHNlaGluZ2dhIG1lbXVkYWhrYW4gcGVuZWxpdGkgZGFsYW0gbWVsYWt1a2FuIGFuYWxpc2lzIGxlYmloIGxhbmp1dCAgIHRhbnBhIGhhcnVzIG1lbmdpbnB1dCBkYXRhIHNlY2FyYSBtYW51YWwuIEluaSBtZW5naGVtYXQgd2FrdHUgZGFsYW0gcHJvc2VzICAgICAgICAgICAgcGVuZ29sYWhhbiBkYW4gYW5hbGlzaXMgZGF0YS4NCg0KDQojIyBKZW5pcyBEYXRhIHlhbmcgRGloYXNpbGthbg0KRGVuZ2FuIGt1ZXNpb25lciBHb29nbGUgRm9ybSwgamVuaXMgZGF0YSB5YW5nIGRpaGFzaWxrYW4gbWVsaXB1dGk6DQpgYGB7ciwgZWNobz1GQUxTRX0NCg0KaGVhZChkYXRhX2t1ZXNpb25lciA8LSByZWFkLmNzdigifi91dHMvdXRzc3RhdGlzL2RhdGEzLmNzdiIpKQ0KDQoNCg0KYGBgDQoNCiMjIyBEYXRhIEt1YW50aXRhdGlmDQoqKkRhdGEga3VhbnRpdGF0aWYqKiBpbmkgYmVyYmVudHVrIGFuZ2thIGRhbiBkYXBhdCBkaWhpdHVuZyBhdGF1IGRpdWt1ci4gU2VwZXJ0aSBmcmVrdWVuc2kgYmVybWFpbiBnYW1lIHBlciBtaW5nZ3UsIHJhdGEtcmF0YSBkdXJhc2kgYmVybWFpbiBwZXIgc2VzaSwgZGFuIHBlcnNlbnRhc2UgbWFoYXNpc3dhIHlhbmcgbWVyYXNha2FuIGRhbXBhayBwYWRhIGFrYWRlbWlrLg0KDQojIyMgRGF0YSBLdWFsaXRhdGlmDQoqKkRhdGEga3VhbGl0YXRpZioqIGluaSBiZXJzaWZhdCBkZXNrcmlwdGlmIGRhbiBiaWFzYW55YSBiZXJ1cGEgdGVrcywga2F0YS1rYXRhLCBhdGF1IGthdGVnb3JpIHlhbmcgbWVuZ2dhbWJhcmthbiBrdWFsaXRhcyBhdGF1IGthcmFrdGVyaXN0aWsuIFNlcGVydGkgcGVyc2Vwc2kgbWFoYXNpc3dhIHRlbnRhbmcgYmFnYWltYW5hIGJlcm1haW4gZ2FtZSBtZW1lbmdhcnVoaSBwcmVzdGFzaSBha2FkZW1payBkYW4ga2VoaWR1cGFuIHNvc2lhbCBtZXJla2EuDQoNCkRlbmdhbiBtZXRvZGUgaW5pLCBoYXNpbCBhbmFsaXNpcyBkYXBhdCBtZW1wZXJvbGVoIGluZm9ybWFzaSB5YW5nIHJlbGV2YW4gc2VjYXJhIGVmaXNpZW4gZGFuIHBlbnlhamlhbiBkYXRhIHlhbmcgZWZla3RpZi4NCg0KDQoNCg0KIyBBbmFsaXNpcyBHcmFmaWsgMQ0KDQpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KbGlicmFyeShnZ3Bsb3QyKQ0KDQpkYXRhIDwtIGRhdGEuZnJhbWUoDQogIER1cmFzaSA9IGMoIkt1cmFuZyBkYXJpIDEgamFtIiwgIjEtMiBqYW0iLCAiMy00IGphbSIsICI1IGphbSBhdGF1IGxlYmloIiksDQogIFRpZGFrX21lbWVuZ2FydWhpID0gYyg0LCAyLCAxLCAwKSwNCiAgU2VkaWtpdF9tZW1lbmdhcnVoaSA9IGMoMSwgMywgMywgMiksDQogIEN1a3VwX21lbWVuZ2FydWhpID0gYygyLCA2LCA0LCAzKSwNCiAgU2FuZ2F0X21lbWVuZ2FydWhpID0gYygzLCA0LCA0LCAxKQ0KKQ0KbGlicmFyeShyZXNoYXBlMikNCmRhdGFfbWVsdCA8LSBtZWx0KGRhdGEsIGlkLnZhcnMgPSAiRHVyYXNpIiwgdmFyaWFibGUubmFtZSA9ICJQZW5nYXJ1aCIsIHZhbHVlLm5hbWUgPSAiTmlsYWkiKQ0KDQpnZ3Bsb3QoZGF0YV9tZWx0LCBhZXMoeCA9IER1cmFzaSwgeSA9IE5pbGFpLCBjb2xvciA9IFBlbmdhcnVoLCBncm91cCA9IFBlbmdhcnVoKSkgKw0KICBnZW9tX2xpbmUobGluZXdpZHRoID0gMSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAyKSArDQogIGxhYnModGl0bGUgPSAiUGVuZ2FydWggRHVyYXNpIEJlcm1haW4gR2FtZSBkZW5nYW4gSGFzaWwgQWthZGVtaWsiLA0KICAgICAgIHggPSAiRHVyYXNpIEJlcm1haW4gR2FtZSIsDQogICAgICAgeSA9ICJKdW1sYWggUmVzcG9uZGVuIikgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiYmx1ZSIsICJyZWQiLCAieWVsbG93IiwgImdyZWVuIikpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxKSkNCg0KDQpgYGANCkJlcmRhc2Fya2FuIGdyYWZpayB0ZXJzZWJ1dCwga2l0YSBkYXBhdCBtZWxpaGF0IGh1YnVuZ2FuIGFudGFyYSBkdXJhc2kgYmVybWFpbiBnYW1lIGRhbiBwZW5nYXJ1aG55YSB0ZXJoYWRhcCBoYXNpbCBha2FkZW1payByZXNwb25kZW4uIEJlcmlrdXQgYWRhbGFoIGFuYWxpc2lzIHBlciBrYXRlZ29yaSBwZW5nYXJ1aDoNCg0KMS4gKipUaWRhayBNZW1lbmdhcnVoaSAoV2FybmEgQmlydSkqKjoNCiAgIC0gUmVzcG9uZGVuIHlhbmcgbWVueWF0YWthbiBiZXJtYWluIGdhbWUgdGlkYWsgbWVtZW5nYXJ1aGkgaGFzaWwgYWthZGVtaWsgbWVtaWxpa2kganVtbGFoIHRlcnRpbmdnaSBwYWRhIGR1cmFzaSAia3VyYW5nIGRhcmkgMSBqYW0iIGRhbiBtZW51cnVuIHNlaXJpbmcgbWVuaW5na2F0bnlhIGR1cmFzaSBiZXJtYWluIGdhbWUuDQogICAtIEhhbCBpbmkgbWVuZ2luZGlrYXNpa2FuIGJhaHdhIHJlc3BvbmRlbiB5YW5nIGJlcm1haW4gZ2FtZSBsZWJpaCBsYW1hIGNlbmRlcnVuZyBtZXJhc2FrYW4gcGVuZ2FydWggcGFkYSBoYXNpbCBha2FkZW1payBtZXJla2EuDQoNCjIuICoqU2VkaWtpdCBNZW1lbmdhcnVoaSAoV2FybmEgTWVyYWgpKio6DQogICAtIFJlc3BvbmRlbiB5YW5nIG1lcmFzYWthbiBzZWRpa2l0IHBlbmdhcnVoIGRhcmkgYmVybWFpbiBnYW1lIG1lbnVuanVra2FuIGp1bWxhaCB5YW5nIHN0YWJpbCBwYWRhIGR1cmFzaSBiZXJtYWluIDEtMiBqYW0gaGluZ2dhIDUgamFtIGF0YXUgbGViaWguDQogICAtIFBhZGEgZHVyYXNpICJrdXJhbmcgZGFyaSAxIGphbSwiIGp1bWxhaCByZXNwb25kZW4geWFuZyBtZXJhc2FrYW4gc2VkaWtpdCBwZW5nYXJ1aCBtZW51cnVuIGRyYXN0aXMuDQoNCjMuICoqQ3VrdXAgTWVtZW5nYXJ1aGkgKFdhcm5hIEt1bmluZykqKjoNCiAgIC0gUGVuZ2FydWggY3VrdXAgbWVtZW5nYXJ1aGkgcGFsaW5nIGJhbnlhayBkaXJhc2FrYW4gb2xlaCByZXNwb25kZW4geWFuZyBiZXJtYWluIHNlbGFtYSAxLTIgamFtLCBuYW11biBqdW1sYWhueWEgbWVudXJ1biB0YWphbSBrZXRpa2EgZHVyYXNpIGJlcm1haW4gYmVydGFtYmFoLg0KICAgLSBJbmkgbWVudW5qdWtrYW4gYmFod2EgYmVybWFpbiBnYW1lIGRhbGFtIGR1cmFzaSBzZWRhbmcgKDEtMiBqYW0pIGxlYmloIHRlcmFzYSBwZW5nYXJ1aG55YSBkaWJhbmRpbmdrYW4gZHVyYXNpIGxhaW5ueWEuDQoNCjQuICoqU2FuZ2F0IE1lbWVuZ2FydWhpIChXYXJuYSBIaWphdSkqKjoNCiAgIC0gUGVuZ2FydWggc2FuZ2F0IG1lbWVuZ2FydWhpIHBhbGluZyBiYW55YWsgZGlyYXNha2FuIHBhZGEgZHVyYXNpIGJlcm1haW4gMS0yIGphbSwgdGV0YXBpIGp1bWxhaCByZXNwb25kZW4geWFuZyBtZXJhc2FrYW4gcGVuZ2FydWggaW5pIGJlcmt1cmFuZyBzZWlyaW5nIG1lbmluZ2thdG55YSBkdXJhc2kgYmVybWFpbi4NCiAgIC0gUmVzcG9uZGVuIGRlbmdhbiBkdXJhc2kgImt1cmFuZyBkYXJpIDEgamFtIiBqdWdhIG1lbnVuanVra2FuIGFkYW55YSBwZW5nYXJ1aCB5YW5nIGN1a3VwIHNpZ25pZmlrYW4uDQoNCioqS2VzaW1wdWxhbioqOg0KR3JhZmlrIGluaSBtZW51bmp1a2thbiBiYWh3YSBzZW1ha2luIGxhbWEgZHVyYXNpIGJlcm1haW4gZ2FtZSwgc2VtYWtpbiBrZWNpbCBqdW1sYWggcmVzcG9uZGVuIHlhbmcgbWVyYXNhIHRpZGFrIGRpcGVuZ2FydWhpIG9sZWggYWt0aXZpdGFzIHRlcnNlYnV0LiBSZXNwb25kZW4geWFuZyBiZXJtYWluIGdhbWUgZGVuZ2FuIGR1cmFzaSB5YW5nIGxlYmloIHNpbmdrYXQgKGt1cmFuZyBkYXJpIDEgamFtIGhpbmdnYSAxLTIgamFtKSBjZW5kZXJ1bmcgbWVyYXNhIGFkYSBwZW5nYXJ1aCBwYWRhIGhhc2lsIGFrYWRlbWlrLCBiYWlrIHNlZGlraXQsIGN1a3VwLCBtYXVwdW4gc2FuZ2F0IG1lbWVuZ2FydWhpLg0KDQoNCiMgQW5hbGlzaXMgR3JhZmlrIDINCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2UgPSBGQUxTRX0NCiMgTG9hZCBuZWNlc3NhcnkgbGlicmFyaWVzDQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBEYXRhIHdha3R1IGJlcm1haW4gZ2FtZSAoZGFsYW0gamFtKSBkYW4gcGVyc2VudGFzZW55YQ0KZGF0YSA8LSBkYXRhLmZyYW1lKA0KICBQZW5nYXJ1aCA9IGMoIlRpZGFrIE1lbXBlbmdhcnVoaSIsICJTZWRpa2l0IE1lbXBlbmdhcnVoaSIsICJDdWt1cCBNZW1wZW5nYXJ1aGkiLCAiU2FuZ2F0IE1lbXBlbmdhcnVoaSIpLA0KICBQZXJzZW50YXNlID0gYygyMCwgMzAsIDMzLjMsIDE2LjYpDQopDQoNCiMgQ3JlYXRlIGludGVyYWN0aXZlIHBpZSBjaGFydCB3aXRoIHBsb3RseQ0KZmlnIDwtIHBsb3RfbHkoDQogIGRhdGEsDQogIGxhYmVscyA9IH5QZW5nYXJ1aCwNCiAgdmFsdWVzID0gflBlcnNlbnRhc2UsDQogIHR5cGUgPSAncGllJywNCiAgdGV4dGluZm8gPSAnbGFiZWwrcGVyY2VudCcsDQogIGhvbGUgPSAiMC4xIiwNCiAgaW5zaWRldGV4dG9yaWVudGF0aW9uID0gJ3JhZGlhbCcNCikgJT4lDQogIGxheW91dCgNCiAgICB0aXRsZSA9ICJQZW5nYXJ1aCBHYW1lIFRlcmhhZGFwIEt1YWxpdGFzIFRpZHVyIiwNCiAgICBzaG93bGVnZW5kID0gVFJVRQ0KICApDQoNCmZpZw0KYGBgDQoNCkdyYWZpayBkaSBhdGFzIGFkYWxhaCBkaWFncmFtIHBpZSB5YW5nIG1lbnVuanVra2FuIHBlbmdhcnVoIGJlcm1haW4gZ2FtZSB0ZXJoYWRhcCBrdWFsaXRhcyB0aWR1ci4gQmVyaWt1dCBhZGFsYWggYW5hbGlzaXMgYmVyZGFzYXJrYW4gZGF0YSBkYWxhbSBncmFmaWs6DQoNCjEuICoqQ3VrdXAgTWVtZW5nYXJ1aGkgKFdhcm5hIEJpcnUgLSAzMy4zJSkqKjoNCiAgIC0gU2ViYWdpYW4gYmVzYXIgcmVzcG9uZGVuICgzMy4zJSkgbWVyYXNhIGJhaHdhIGJlcm1haW4gZ2FtZSBjdWt1cCBtZW1lbmdhcnVoaSBrdWFsaXRhcyB0aWR1ciBtZXJla2EuDQogICAtIEluaSBtZW51bmp1a2thbiBiYWh3YSBha3Rpdml0YXMgYmVybWFpbiBnYW1lIG11bmdraW4gYmVyZGFtcGFrIG1vZGVyYXQgcGFkYSBrdWFsaXRhcyB0aWR1ciBzZWJhZ2lhbiByZXNwb25kZW4sIG1lc2tpcHVuIHRpZGFrIG1lbmdnYW5nZ3Ugc2VjYXJhIHNpZ25pZmlrYW4uDQoNCjIuICoqU2VkaWtpdCBNZW1lbmdhcnVoaSAoV2FybmEgT3JhbnllIC0gMzAlKSoqOg0KICAgLSBTZWJhbnlhayAzMCUgcmVzcG9uZGVuIG1lcmFzYSBwZW5nYXJ1aCBkYXJpIGJlcm1haW4gZ2FtZSBoYW55YSBzZWRpa2l0IG1lbWVuZ2FydWhpIGt1YWxpdGFzIHRpZHVyIG1lcmVrYS4NCiAgIC0gUGVyc2VudGFzZSBpbmkgY3VrdXAgYmVzYXIgZGFuIG1lbnVuanVra2FuIGJhaHdhIHNlYmFnaWFuIHJlc3BvbmRlbiBtYXNpaCBtZXJhc2EgYmVybWFpbiBnYW1lIGJlcmRhbXBhaywgbmFtdW4gZGFtcGFrbnlhIHRpZGFrIHRlcmxhbHUgc2lnbmlmaWthbi4NCg0KMy4gKipUaWRhayBNZW1lbmdhcnVoaSAoV2FybmEgSGlqYXUgLSAyMCUpKio6DQogICAtIFNlYmFueWFrIDIwJSByZXNwb25kZW4gbWVyYXNhIGJhaHdhIGJlcm1haW4gZ2FtZSB0aWRhayBtZW1lbmdhcnVoaSBrdWFsaXRhcyB0aWR1ciBtZXJla2Egc2FtYSBzZWthbGkuDQogICAtIEhhbCBpbmkgbWVudW5qdWtrYW4gYmFod2EgYWRhIHNlYmFnaWFuIGtlY2lsIHJlc3BvbmRlbiB5YW5nIHRpZGFrIG1lcmFzYWthbiBwZW5nYXJ1aCBiZXJtYWluIGdhbWUgdGVyaGFkYXAgdGlkdXIgbWVyZWthLg0KDQo0LiAqKlNhbmdhdCBNZW1lbmdhcnVoaSAoV2FybmEgTWVyYWggLSAxNi42JSkqKjoNCiAgIC0gUmVzcG9uZGVuIHlhbmcgbWVyYXNha2FuIHBlbmdhcnVoIHNhbmdhdCBzaWduaWZpa2FuIHRlcmhhZGFwIGt1YWxpdGFzIHRpZHVyIGhhbnlhIHNlYmVzYXIgMTYuNiUuDQogICAtIE1lc2tpcHVuIHBlcnNlbnRhc2VueWEgcGFsaW5nIGtlY2lsLCBrZWxvbXBvayBpbmkgbWVudW5qdWtrYW4gYmFod2EgYmFnaSBzZWJhZ2lhbiBrZWNpbCByZXNwb25kZW4sIGJlcm1haW4gZ2FtZSBiZXJkYW1wYWsgc2FuZ2F0IHNpZ25pZmlrYW4gcGFkYSBrdWFsaXRhcyB0aWR1ciBtZXJla2EuDQoNCioqS2VzaW1wdWxhbioqOg0KU2VjYXJhIGtlc2VsdXJ1aGFuLCBzZWJhZ2lhbiBiZXNhciByZXNwb25kZW4gbWVyYXNhIGJhaHdhIGJlcm1haW4gZ2FtZSBtZW1iZXJpa2FuIGRhbXBhayB0ZXJoYWRhcCBrdWFsaXRhcyB0aWR1ciBtZXJla2EsIGRlbmdhbiBtYXlvcml0YXMgbWVyYXNha2FuIGRhbXBhayBjdWt1cCBhdGF1IHNlZGlraXQuIEhhbnlhIHNlYmFnaWFuIGtlY2lsIHlhbmcgbWVyYXNha2FuIGRhbXBhayB5YW5nIHNhbmdhdCBzaWduaWZpa2FuLCBkYW4gMjAlIG1lcmFzYSB0aWRhayBhZGEgcGVuZ2FydWggc2FtYSBzZWthbGkuIEluaSBtZW5naW5kaWthc2lrYW4gYmFod2EgYmVybWFpbiBnYW1lIGNlbmRlcnVuZyBtZW1pbGlraSBwZW5nYXJ1aCBtb2RlcmF0IGhpbmdnYSByZW5kYWggcGFkYSBrdWFsaXRhcyB0aWR1ciBiYWdpIHNlYmFnaWFuIGJlc2FyIHJlc3BvbmRlbi4NCg0KIyBBbmFsaXNpcyBHcmFmaWsgMw0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2UgPSBGQUxTRX0NCiMgTG9hZCBuZWNlc3NhcnkgbGlicmFyaWVzDQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBEYXRhIHdha3R1IGJlcm1haW4gZ2FtZSAoZGFsYW0gamFtKSBkYW4gcGVyc2VudGFzZW55YQ0KZGF0YSA8LSBkYXRhLmZyYW1lKA0KICBKZW5pc19LZWxhbWluID0gYygiTGFraS1sYWtpIiwgIlBlcmVtcHVhbiIpLA0KICBQZXJzZW50YXNlID0gYyg0My4zLCA1Ni42KQ0KKQ0KDQojIENyZWF0ZSBpbnRlcmFjdGl2ZSBiYXIgY2hhcnQgd2l0aCBwbG90bHkNCmZpZyA8LSBwbG90X2x5KA0KICBkYXRhLA0KICB4ID0gfkplbmlzX0tlbGFtaW4sDQogIHkgPSB+UGVyc2VudGFzZSwNCiAgdHlwZSA9ICdiYXInLA0KICB0ZXh0ID0gfnBhc3RlKFBlcnNlbnRhc2UsICIlIiksDQogIHRleHRwb3NpdGlvbiA9ICdhdXRvJw0KKSAlPiUNCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gIkplbmlzIEtlbGFtaW4gUmVzcG9uZGVuIiwNCiAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiSmVuaXMgS2VsYW1pbiIpLA0KICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJQZXJzZW50YXNlICglKSIpDQogICkNCg0KZmlnDQoNCmBgYA0KDQoNCioqQW5hbGlzaXMgR3JhZmlrKioNCg0KMS4gKipEaXN0cmlidXNpIEplbmlzIEtlbGFtaW4gUmVzcG9uZGVuKiogIA0KICAgQmVyZGFzYXJrYW4gZ3JhZmlrIGRpc3RyaWJ1c2kgamVuaXMga2VsYW1pbiByZXNwb25kZW4sIG1heW9yaXRhcyByZXNwb25kZW4gYWRhbGFoIHBlcmVtcHVhbiAoNTYuNiUpLCBzZW1lbnRhcmEgbGFraS1sYWtpIGJlcmp1bWxhaCA0My4zJS4gRGlzdHJpYnVzaSBpbmkgbWVtYmVyaWthbiBnYW1iYXJhbiBiYWh3YSBwZXJlbXB1YW4gc2VkaWtpdCBsZWJpaCBiYW55YWsgYmVycGFydGlzaXBhc2kgZGFsYW0gcGVuZWxpdGlhbiBpbmkuIE1lbmdpbmdhdCBwZW5lbGl0aWFuIGluaSBiZXJ0dWp1YW4gdW50dWsgbWVtYWhhbWkgcGVuZ2FydWggYmVybWFpbiBnYW1lLCBkaXN0cmlidXNpIGluaSBtZW5qYWRpIHBlbnRpbmcga2FyZW5hIGxha2ktbGFraSBkYW4gcGVyZW1wdWFuIG1lbWlsaWtpIGtlY2VuZGVydW5nYW4geWFuZyBiZXJiZWRhIGRhbGFtIGhhbCBkdXJhc2kgZGFuIGZyZWt1ZW5zaSBiZXJtYWluIGdhbWUsIHlhbmcgbXVuZ2tpbiBtZW1lbmdhcnVoaSBoYXNpbCBha2hpciB0ZXJrYWl0IHBlbmdhcnVoIGdhbWUgcGFkYSBrdWFsaXRhcyB0aWR1ciBkYW4gcHJlc3Rhc2kgYWthZGVtaWsuDQoNCjIuICoqUGVuZ2FydWggRHVyYXNpIEJlcm1haW4gR2FtZSB0ZXJoYWRhcCBIYXNpbCBBa2FkZW1payoqICANCiAgIEdyYWZpayB5YW5nIG1lbnVuanVra2FuIGh1YnVuZ2FuIGFudGFyYSBkdXJhc2kgYmVybWFpbiBnYW1lIGRhbiBwZW5nYXJ1aG55YSB0ZXJoYWRhcCBoYXNpbCBha2FkZW1payBtZW1iZXJpa2FuIGJlYmVyYXBhIHRlbXVhbiBwZW50aW5nOg0KICAgLSBSZXNwb25kZW4geWFuZyBiZXJtYWluIGdhbWUgZGVuZ2FuIGR1cmFzaSAxLTIgamFtIHBlciBoYXJpIHNlYmFnaWFuIGJlc2FyIG1lbGFwb3JrYW4gYmFod2EgYmVybWFpbiBnYW1lIGN1a3VwIG1lbWVuZ2FydWhpICg0IHJlc3BvbmRlbikgaGluZ2dhIHNhbmdhdCBtZW1lbmdhcnVoaSAoNiByZXNwb25kZW4pIGhhc2lsIGFrYWRlbWlrIG1lcmVrYS4NCiAgIC0gRGkgc2lzaSBsYWluLCBwYWRhIGtlbG9tcG9rIHlhbmcgYmVybWFpbiBnYW1lIGxlYmloIGxhbWEgKDUgamFtIGF0YXUgbGViaWgpLCBzZWJhZ2lhbiBiZXNhciByZXNwb25kZW4ganVzdHJ1IG1lcmFzYSBiYWh3YSBkdXJhc2kgYmVybWFpbiBnYW1lIHNlZGlraXQgbWVtZW5nYXJ1aGkgaGFzaWwgYWthZGVtaWsgKDIgcmVzcG9uZGVuKSBhdGF1IGJhaGthbiB0aWRhayBtZW1lbmdhcnVoaSBzYW1hIHNla2FsaSAoMiByZXNwb25kZW4pLiANCiAgIC0gSGFsIGluaSBkYXBhdCBkaWludGVycHJldGFzaWthbiBiYWh3YSBtYWhhc2lzd2EgeWFuZyBsZWJpaCBsYW1hIGJlcm1haW4gZ2FtZSBtdW5na2luIHN1ZGFoIHRlcmJpYXNhIG1lbmdhdHVyIHdha3R1IG1lcmVrYSwgc2VoaW5nZ2EgcGVuZ2FydWhueWEgdGVyaGFkYXAgaGFzaWwgYWthZGVtaWsgdGlkYWsgc2VsYWx1IGJlc2FyLiBOYW11biwgcmVzcG9uZGVuIHlhbmcgYmVybWFpbiBkYWxhbSBkdXJhc2kgbGViaWggcGVuZGVrIG1lcmFzYSBhZGEgZGFtcGFrIHlhbmcgc2lnbmlmaWthbiwgbXVuZ2tpbiBrYXJlbmEgcGVuZ2F0dXJhbiB3YWt0dSB5YW5nIGt1cmFuZyBzZWltYmFuZy4NCg0KMy4gKipQZW5nYXJ1aCBCZXJtYWluIEdhbWUgdGVyaGFkYXAgS3VhbGl0YXMgVGlkdXIqKiAgDQogICBEaWFncmFtIHBpZSB5YW5nIG1lbnVuanVra2FuIHBlbmdhcnVoIGJlcm1haW4gZ2FtZSB0ZXJoYWRhcCBrdWFsaXRhcyB0aWR1ciBtZW51bmp1a2thbiBiYWh3YToNCiAgIC0gU2ViYWdpYW4gYmVzYXIgcmVzcG9uZGVuIG1lcmFzYWthbiBkYW1wYWsgc2VkYW5nIGhpbmdnYSByZW5kYWgsIHlhaXR1IDMzLjMlIG1lcmFzYSBjdWt1cCBtZW1lbmdhcnVoaSBkYW4gMzAlIG1lcmFzYSBzZWRpa2l0IG1lbWVuZ2FydWhpLiANCiAgIC0gU2ViYW55YWsgMjAlIHJlc3BvbmRlbiBtZXJhc2EgYmVybWFpbiBnYW1lIHRpZGFrIG1lbWVuZ2FydWhpIGt1YWxpdGFzIHRpZHVyIG1lcmVrYSwgc2VtZW50YXJhIDE2LjYlIG1lcmFzYSBzYW5nYXQgZGlwZW5nYXJ1aGkuDQogICAtIERhdGEgaW5pIG1lbnVuanVra2FuIGJhaHdhIG1lc2tpcHVuIGJlcm1haW4gZ2FtZSBtZW1pbGlraSBkYW1wYWsgdGVyaGFkYXAga3VhbGl0YXMgdGlkdXIsIHNlYmFnaWFuIGJlc2FyIG1haGFzaXN3YSBtZXJhc2FrYW4gZGFtcGFrbnlhIHBhZGEgdGluZ2thdCBzZWRhbmcgaGluZ2dhIHJlbmRhaC4gSW5pIG11bmdraW4gZGlzZWJhYmthbiBvbGVoIGtlbWFtcHVhbiBtYWhhc2lzd2EgdW50dWsgbWVueWVpbWJhbmdrYW4gd2FrdHUgYmVybWFpbiBnYW1lIGRlbmdhbiBrZWJ1dHVoYW4gdGlkdXIgbWVyZWthLg0KDQoqKktlc2ltcHVsYW4qKg0KDQpEYXJpIHBlbmVsaXRpYW4gaW5pLCBkYXBhdCBkaXNpbXB1bGthbiBiYWh3YSBkdXJhc2kgZGFuIGludGVuc2l0YXMgYmVybWFpbiBnYW1lIG1lbWlsaWtpIHBlbmdhcnVoIHlhbmcgYmVydmFyaWFzaSBwYWRhIGFzcGVrIGFrYWRlbWlrIGRhbiBrdWFsaXRhcyB0aWR1ciBtYWhhc2lzd2EuIE1heW9yaXRhcyByZXNwb25kZW4gcGVyZW1wdWFuIG1lbnVuanVra2FuIGJhaHdhIGFkYSBwZW5nYXJ1aCBiZXJtYWluIGdhbWUgdGVyaGFkYXAga3VhbGl0YXMgdGlkdXIgbWVyZWthLCBtZXNraXB1biBkYW1wYWtueWEgY2VuZGVydW5nIHRpZGFrIHNpZ25pZmlrYW4uIERpIHNpc2kgbGFpbiwgcGVuZ2FydWggYmVybWFpbiBnYW1lIHRlcmhhZGFwIGhhc2lsIGFrYWRlbWlrIHRhbXBhayBsZWJpaCBzaWduaWZpa2FuIHBhZGEgcmVzcG9uZGVuIGRlbmdhbiBkdXJhc2kgYmVybWFpbiB5YW5nIGxlYmloIHNpbmdrYXQuIFRlbXVhbiBpbmkgbWVuZ2dhbWJhcmthbiBiYWh3YSBwZW5nYXR1cmFuIHdha3R1IHlhbmcgYmFpayBkYWxhbSBiZXJtYWluIGdhbWUgZGFwYXQgbWVtYmFudHUgbWVuZ3VyYW5naSBkYW1wYWsgbmVnYXRpZm55YSBwYWRhIHByZXN0YXNpIGFrYWRlbWlrIGRhbiBrdWFsaXRhcyB0aWR1ci4NCg0KDQojIFJlZmVyZW5zaQ0KQy4gQmFrdGkgU2lyZWdhciwgTS5TYy4sIE0uIFMuIEFuZGkgUHVqbyBSYWhhZGksIFMuVC4sIGFuZCBNLiBLLiBNb25pY2EgTWF5ZW5pIE1hbnVydW5nLCDigJxQZW5nYW50YXIgU3RhdGlzdGlrIHVudHVrIFNhaW5zIERhdGEs4oCdIFJwdWJzLiBbT25saW5lXS4gQXZhaWxhYmxlOiBodHRwczovL2Jvb2tkb3duLm9yZy9kc2NpZW5jZWxhYnMvc3RhdGlzdGlrYV9kYXNhci9fYm9vay9QZW5ndW1wdWxhbl9EYXRhLmh0bWw=