UTS Statiska Dasar Kelompok 3

Dampak Partisipasi Dalam Organisasi Kampus Terhadap Prestasi Akademik Mahasiswa (Kelompok 3)

Logo


1. PENTINGNYA STATISTIKA

Statistika penting untuk membantu pengambilan keputusan berdasarkan data yang akurat, meningkatkan pemahaman informasi, dan memecahkan masalah dengan menemukan pola dan tren. Ini juga berguna dalam perencanaan keuangan, penelitian akademik, dan pengembangan karir profesional.

A. Proses Pengumpulan Data

Proses pengumpulan data adalah langkah-langkah untuk mengumpulkan informasi yang diperlukan. Tujuannya adalah mendapatkan data yang relevan untuk dianalisis guna menjawab pertanyaan atau mencapai tujuan penelitian.Ada beberapa metode yang digunakan secara umum, yaitu :

  • Survei: Menggunakan kuesioner atau formulir untuk mengumpulkan data dari responden.
  • Wawancara: Pertemuan tatap muka atau telepon untuk mendapatkan informasi mendalam.
  • Observasi: Mengamati dan mencatat kejadian atau perilaku.
  • Eksperimen: Mengendalikan variabel untuk melihat efeknya.

B. Jenis Data Yang Diperoleh

-Data kualitatif Data yang berbentuk kata-kata atau deskripsi, bukan angka. Biasanya dipakai untuk memahami pendapat, pengalaman, atau alasan di balik sesuatu. Contohnya, hasil wawancara atau review produk.

-Data kuantitatif data yang berbentuk angka dan bisa dihitung. Biasanya digunakan untuk mengukur sesuatu secara objektif, seperti jumlah penjualan, tingkat pendapatan, atau nilai rata-rata. Contohnya, hasil survei jumlah penduduk atau statistik penjualan.

C. Cara Menyajikan Data

1. Tabel
Menyusun data dalam baris dan kolom untuk memudahkan analisis.

2. Grafik dan Diagram
- Grafik yang menggunakan batang vertikal atau horizontal untuk membandingkan jumlah atau frekuensi dari berbagai kategori atau kelompok data.

  • Diagram Lingkaran (Pie Chart): Digunakan untuk menunjukkan proporsi atau persentase dari keseluruhan data dalam bentuk irisan lingkaran.

  • Diagram Garis: Menggambarkan tren atau perubahan data seiring waktu dengan menghubungkan titik-titik data menggunakan garis.

3. Statistik Deskriptif Menggunakan ukuran seperti rata-rata, median, mode, dan standar deviasi untuk menggambarkan karakteristik utama data.

4. Infografis Kombinasi teks, gambar, dan grafik untuk menyajikan informasi secara visual yang mudah dipahami.

5. Pengelompokan Data Mengelompokkan data berdasarkan kategori atau interval tertentu untuk memudahkan analisis.

D. Contoh Kasus

Penggunaan aplikasi pengingat tugas semakin populer di kalangan mahasiswa untuk meningkatkan kepatuhan dalam menyelesaikan tugas kuliah. Penelitian ini mengkaji dampaknya terhadap efektivitas penyelesaian tugas.

1. Metode Pengumpulan Data Survei online melalui Google Forms digunakan untuk mengumpulkan data. Mahasiswa diminta mengisi kuesioner terkait frekuensi penggunaan aplikasi pengingat tugas (misalnya Google Keep, Todoist) dan dampaknya terhadap kepatuhan mereka dalam menyelesaikan tugas kuliah. Kuesioner terdiri dari pertanyaan pilihan ganda dan pertanyaan terbuka.

2. Alasan Memilih Metode Yang Digunakan Survei online dipilih karena efisien, mudah dijangkau, dan memungkinkan pengumpulan data dalam jumlah besar dengan cepat. Dengan Google Forms, data bisa dikumpulkan dari mahasiswa secara anonim, meningkatkan kejujuran jawaban. Selain itu, mahasiswa dapat mengisi kuesioner kapan saja, meningkatkan partisipasi.

3. Jenis Data Yang Dihasilkan

Data Kuantitatif Angka yang diukur, seperti frekuensi penggunaan aplikasi pengingat dan persentase tugas yang diselesaikan tepat waktu. Data ini memungkinkan analisis statistik objektif.

Frekuensi Penggunaan Aplikasi Pengingat

Setiap hari: 5 mahasiswa

3-4 kali seminggu: 3 mahasiswa

1-2 kali seminggu: 2 mahasiswa

Tingkat Kepatuhan dalam Menyelesaikan Tugas

90% atau lebih tepat waktu: 4 mahasiswa

70%-89% tepat waktu: 4 mahasiswa

Kurang dari 70% tepat waktu: 2 mahasiswa

Data Kualitatif: Deskripsi pengalaman mahasiswa terkait penggunaan aplikasi pengingat, yang memberikan wawasan mendalam yang tidak bisa dijelaskan hanya dengan angka.

Dampak Aplikasi Pengingat Tugas Membantu: 6 mahasiswa Cukup membantu: 3 mahasiswa Tidak membantu: 1 mahasiswa

4. Penyajian Data

disajikan dalam diagram lingkaran untuk menggambarkan frekuensi penggunaan aplikasi pengingat dan tingkat kepatuhan mahasiswa dalam menyelesaikan tugas. Diagram lingkaran dipilih karena dapat menunjukkan proporsi masing-masing kategori secara visual, sehingga memudahkan pemahaman tentang distribusi persentase mahasiswa dalam hal penggunaan aplikasi pengingat dan kepatuhan dalam menyelesaikan tugas tepat waktu.

2. TEKNIK ANALISA DATA

Dampak Partisipasi dalam Organisasi Kampus terhadap Prestasi Akademik Mahasiswa

A. Metode Pengumpulan Data

Survei online melalui alat Google Forms digunakan untuk mengumpulkan data. Mahasiswa diminta mengisi kuesioner melalui link Google Form yang berisi pertanyaan terkait jam partisipasi mereka dalam organisasi kampus dan dampaknya terhadap prestasi akademik mereka. Kuesioner terdiri dari 10 pertanyaan kuantitatif dan kualitatif terkait durasi keterlibatan, dampaknya pada waktu belajar, serta pengaruh organisasi terhadap IPK. Survei diikuti oleh 10 responden.

B. Alasan Memilih Metode Yang Digunakan

Kami menggunakan Survei online dengan menggunakan alat Google Forms dipilih karena berikut :

  • Jangkauan Luas: Menjangkau mahasiswa dari berbagai tempat tanpa batasan geografis.

  • Biaya Efisien: Tanpa biaya cetak atau distribusi fisik.

  • Pengumpulan Data Cepat: Data terkumpul secara real-time.

  • Kemudahan Analisis: Data langsung dalam format digital. dijadiin kalimat

C. Jenis Data Yang Dihasilkan

Data yang dihasilkan terdiri dari dua jenis:

  • Data Kuantitatif: Angka yang diukur, seperti jumlah jam partisipasi mahasiswa dalam organisasi kampus per minggu dan IPK mahasiswa. Data ini memungkinkan analisis statistik untuk melihat hubungan antara tingkat keterlibatan organisasi dan prestasi akademik.

  • Data Kualitatif: Deskripsi pengalaman mahasiswa terkait dampak partisipasi mereka dalam organisasi terhadap prestasi akademik. Data ini memberikan wawasan mendalam tentang persepsi mahasiswa yang tidak dapat dijelaskan hanya dengan angka.

    Contoh Data Hasil Pengumpulan: Dampak Partisipasi Organisasi terhadap IPK (tampilin data yang hasil excel)

3. PENYAJIAN DATA DALAM BENTUK DIAGRAM

Data disajikan dalam diagram lingkaran untuk menggambarkan frekuensi partisipasi mahasiswa dalam organisasi dan distribusi IPK mahasiswa. Diagram lingkaran dipilih karena visualisasi ini memudahkan pemahaman tentang proporsi masing-masing kategori dalam hal keterlibatan organisasi dan dampaknya terhadap prestasi akademik. Dengan diagram ini, pembaca dapat dengan mudah melihat hubungan antara tingkat partisipasi dalam organisasi kampus dan tingkat prestasi akademik mahasiswa.

A. DATA KUALITATIF (SURVEY)

Fokus data kualitatif dalam penelitian ini adalah manfaat utama dari organisasi,tantangan menyeimbangkan waktu,pengembangan keterampilan akademik,dukungan organisasi terhadap akademik,manfaat utama yang mahasiswa rasakan dari keikutsertaan dalam organisasi kampus,Berikut alasan mengapa menggunakan data kualitatif:

  • Menggali pengalaman dan persepsi mahasiswa terkait manfaat dan tantangan dalam organisasi.
  • Memahami konteks dan dinamika yang tidak bisa diukur dengan angka.
  • Menangkap faktor subjektif seperti dukungan organisasi dan keseimbangan waktu.
  • Mengungkap keberagaman perspektif dari mahasiswa mengenai partisipasi dalam organisasi kampus.

Berikut ini merupakan data kualitatif dari penelitian

Nama Jenis.Kelamin Manfaat.Utama.dari.Organisasi Tantangan.Menyeimbangkan.Waktu Pengembangan.Keterampilan.Akademik Dukungan.Organisasi.terhadap.Akademik Apa.manfaat.utama.yang.Anda.rasakan.dari.keikutsertaan.dalam.organisasi.kampus.
Ahmad Fadli Laki-laki Meningkatkan keterampilan komunikasi Kesulitan mengatur jadwal Membantu Mendukung Meningkatkan keterampilan komunikasi
Nur Aisyah Perempuan Menambah pengalaman kepemimpinan Beban tugas yang menumpuk Sangat membantu Sangat mendukung Menambah pengalaman kepemimpinan
Dika Pratama Laki-laki Membangun jejaring sosial Kehilangan waktu belajar Netral Kurang mendukung Meningkatkan keterampilan manajemen waktu
Siti Rahmawati Perempuan Meningkatkan keterampilan manajemen waktu Tidak ada tantangan Membantu Mendukung Meningkatkan keterampilan komunikasi
Fajar Maulana Laki-laki Lainnya Stres atau kelelahan Kurang membantu Netral Meningkatkan keterampilan manajemen waktu
Lina Kartika Perempuan Menambah pengalaman kepemimpinan Beban tugas yang menumpuk Sangat membantu Sangat mendukung Menambah pengalaman kepemimpinan
Arif Setiawan Laki-laki Meningkatkan keterampilan komunikasi Kesulitan mengatur jadwal Membantu Mendukung Meningkatkan keterampilan komunikasi
Rina Melati Perempuan Membangun jejaring sosial Kehilangan waktu belajar Kurang membantu Tidak mendukung Meningkatkan keterampilan manajemen waktu
Budi Santoso Laki-laki Meningkatkan keterampilan komunikasi Tidak ada tantangan Sangat membantu Sangat mendukung Meningkatkan keterampilan komunikasi
Maya Sari Perempuan Meningkatkan keterampilan manajemen waktu Kesulitan mengatur jadwal Membantu Mendukung Meningkatkan keterampilan manajemen waktu

Tabel kualitatif ini menunjukkan manfaat dan tantangan yang dihadapi mahasiswa dalam organisasi kampus. Manfaat utama yang dirasakan meliputi peningkatan keterampilan komunikasi, kepemimpinan, dan manajemen waktu. Tantangan terbesar adalah kesulitan mengatur jadwal, stres, dan beban tugas yang menumpuk. Sebagian besar mahasiswa merasa dukungan organisasi terhadap akademik cukup membantu, meskipun beberapa merasa dukungan tersebut kurang signifikan. Keikutsertaan dalam organisasi memberikan manfaat untuk pengembangan keterampilan, namun membutuhkan kemampuan mengatur waktu yang baik.

B. DATA KUANTITATIF (SURVEY)

Fokus data kuantitatif dalam penelitian ini adalah waktu per minggu yang dihabiskan oleh mahasiswa dalam organisasi,IPK terbaru,pertemuan organisasi per bulan,gangguan belajar per minggu,jam belajar di luar kuliah,Berikut alasan mengapa menggunakan data kuantitatif:

  • Mengukur waktu dan frekuensi yang dihabiskan mahasiswa dalam organisasi dan aktivitas akademik secara objektif.
  • Menganalisis hubungan antar variabel seperti waktu organisasi dan IPK, atau gangguan belajar dengan jam belajar.
  • Memberikan data numerik yang dapat dibandingkan dan dianalisis untuk menemukan pola atau tren.
  • Menilai dampak kuantitatif dari keikutsertaan dalam organisasi terhadap prestasi akademik dan gangguan belajar.

Berikut ini merupakan data kuantitatif dari penelitian

Nama Jenis.Kelamin Jam.per.Minggu.di.Organisasi IPK.Terbaru Pertemuan.Organisasi.per.Bulan Gangguan.Belajar.per.Minggu Jam.Belajar.di.Luar.Kuliah
Ahmad Fadli Laki-laki 6-10 jam 3.50 - 3.89 3-4 kali 1-2 kali 6-10 jam
Nur Aisyah Perempuan 11-15 jam 3.00 - 3.49 5-6 kali 3-4 kali 11-15 jam
Dika Pratama Laki-laki 16-20 jam 2.50 - 2.99 7-8 kali 5-6 kali 0-5 jam
Siti Rahmawati Perempuan 0-5 jam 3.90 - 4.00 1-2 kali 0 kali 16-20 jam
Fajar Maulana Laki-laki 6-10 jam 2.00 - 2.49 5-6 kali 3-4 kali 6-10 jam
Lina Kartika Perempuan 16-20 jam 3.00 - 3.49 7-8 kali 5-6 kali 0-5 jam
Arif Setiawan Laki-laki 11-15 jam 3.50 - 3.89 5-6 kali 1-2 kali 6-10 jam
Rina Melati Perempuan Lebih dari 20 jam 3.00 - 3.49 Lebih dari 8 kali 5-6 kali 0-5 jam
Budi Santoso Laki-laki 6-10 jam 3.90 - 4.00 1-2 kali 0 kali 16-20 jam
Maya Sari Perempuan 0-5 jam 3.50 - 3.89 3-4 kali 1-2 kali 11-15 jam

Tabel kuantitatif ini menunjukkan data mahasiswa yang terlibat dalam organisasi kampus dan dampaknya terhadap prestasi akademik mereka. Data ini menggambarkan hubungan antara jumlah jam yang dihabiskan dalam organisasi, frekuensi pertemuan, gangguan belajar, dan waktu belajar di luar kuliah dengan IPK mahasiswa. Secara umum, mahasiswa yang lebih banyak berpartisipasi dalam organisasi cenderung memiliki waktu belajar yang lebih sedikit dan IPK yang lebih bervariasi, sementara mahasiswa dengan keterlibatan organisasi yang lebih sedikit cenderung memiliki waktu belajar lebih banyak dan IPK yang lebih tinggi.

GRAFIK DATA

Jenis Kelamin Frekuensi
Laki-laki 5
Perempuan 5

Diagram lingkaran ini menunjukkan distribusi jenis kelamin mahasiswa yang terlibat dalam organisasi kampus terkait dampak partisipasi terhadap prestasi akademik. Berdasarkan data, jumlah mahasiswa laki-laki dan perempuan yang berpartisipasi dalam organisasi kampus adalah seimbang, masing-masing 50%. Ini menunjukkan bahwa dampak partisipasi dalam organisasi kampus terhadap prestasi akademik dapat dirasakan oleh mahasiswa dari kedua jenis kelamin secara merata.

Diagram lingkaran ini menunjukkan distribusi waktu yang dihabiskan mahasiswa dalam organisasi kampus terkait dampak partisipasi terhadap prestasi akademik. Berdasarkan data persentase, 30% mahasiswa menghabiskan waktu 6-10 jam per minggu dalam organisasi, sementara 20% masing-masing menghabiskan waktu 0-5 jam, 11-15 jam, dan 16-20 jam. Sisanya, 10% mahasiswa menghabiskan lebih dari 20 jam per minggu. Hal ini menunjukkan bahwa sebagian besar mahasiswa terlibat dalam organisasi dengan durasi moderat (6-10 jam), dan dampak terhadap prestasi akademik dapat bervariasi tergantung pada seberapa banyak waktu yang dihabiskan dalam kegiatan organisasi.

IPK Terbaru Frekuensi Persentase
3.00 - 3.49 3 30
3.50 - 3.89 3 30
3.90 - 4.00 2 20
2.00 - 2.49 1 10
2.50 - 2.99 1 10

Diagram lingkaran ini menunjukkan distribusi IPK mahasiswa yang terlibat dalam organisasi kampus, dengan 30% mahasiswa memiliki IPK antara 3.00 - 3.49 dan 30% lainnya memiliki IPK antara 3.50 - 3.89. Sebanyak 20% mahasiswa memiliki IPK di atas 3.90, sementara 10% memiliki IPK antara 2.00 - 2.49 dan 2.50 - 2.99. Sebagian besar mahasiswa memiliki IPK yang baik, menunjukkan bahwa partisipasi dalam organisasi kampus tidak selalu berdampak negatif terhadap prestasi akademik, meskipun ada sebagian kecil mahasiswa yang memiliki IPK lebih rendah.

Gangguan Belajar Frekuensi Persentase
1-2 kali 3 30
5-6 kali 3 30
0 kali 2 20
3-4 kali 2 20

Diagram lingkaran ini menunjukkan frekuensi gangguan dalam jam belajar mahasiswa setiap minggu. Sebanyak 30% mahasiswa mengalami gangguan 1-2 kali per minggu, 30% lainnya 5-6 kali, sementara 20% tidak mengalami gangguan sama sekali dan 20% lainnya mengalami gangguan 3-4 kali. Kesimpulannya, sebagian besar mahasiswa mengalami gangguan belajar, yang menunjukkan tantangan dalam mengatur waktu antara kegiatan organisasi dan akademik.

KESIMPULAN

Kesimpulan Berdasarkan data ini, dampak partisipasi dalam organisasi kampus terhadap prestasi akademik dirasakan secara merata oleh mahasiswa dari kedua jenis kelamin. Mayoritas mahasiswa menghabiskan waktu sedang dalam organisasi, dengan sebagian lainnya terlibat lebih banyak atau lebih sedikit. Meskipun sebagian besar mahasiswa memiliki IPK yang baik, tantangan muncul dalam menjaga keseimbangan antara kegiatan organisasi dan akademik. Beberapa mahasiswa melaporkan kesulitan dalam mengatur waktu belajar mereka akibat keterlibatan dalam organisasi, yang dapat mempengaruhi fokus akademik mereka.

Selain itu, gangguan dalam jam belajar, seperti stres dan kesulitan mengelola waktu, menjadi masalah utama bagi banyak mahasiswa. Secara keseluruhan, manajemen waktu yang baik dan menciptakan suasana yang nyaman untuk belajar sangat penting agar mahasiswa dapat mengoptimalkan prestasi akademik mereka sambil tetap aktif dalam organisasi kampus.

REFERENSI

Algorit.ma. (2022). Pentingnya statistika dalam kehidupan sehari-hari. Algoritma. Diakses dari https://algorit.ma/blog/pentingnya-statistika-dalam-kehidupan-sehari-hari-2022/

Sampoerna University. (n.d.). Teknik pengumpulan data: Arti, proses, dan jenis data. Sampoerna University. Diakses dari https://www.sampoernauniversity.ac.id/id/teknik-pengumpulan-data-arti-proses-dan-jenis-data/

Kazee Blog. (n.d.). Jenis-jenis data dan contohnya. Kazee Blog. Diakses dari https://blog.kazee.id/jenis-jenis-data-dan-contohnya

Deepublish. (n.d.). Cara menyajikan data. Deepublish. Diakses dari https://penerbitdeepublish.com/cara-menyajikan-data/

Putra, A. W. (2018). Perilaku Akademik Aktivis (Studi Kasus Pada Mahasiswa Fis UNM Yang Aktif di Organisasi Daerah) (Doctoral dissertation, UNIVERSITAS NEGERI MAKASSAR).https://eprints.unm.ac.id/11775/

Haryanti, A., & Santoso, R. (2020). Prokrastinasi akademik pada mahasiswa organisasi. SUKMA: Jurnal Penelitian Psikologi, 1(1).https://jurnal.untag-sby.ac.id/index.php/sukma/article/view/3592

Al Musawi, H. (2024). Dampak aktivitas organisasi internal kampus terhadap keaktifan akademik mahasiswa (Doctoral dissertation, UIN Sunan Gunung Djati Bandung).https://digilib.uinsgd.ac.id/97715/

Ayu, S., Ayu, S. P., Mukjizat, L., Ariesta, A. D., & Jadidah, I. T. (2023). ANALISIS HUBUNGAN KEAKTIFAN BERORGANISASI TERHADAP HASIL AKADEMIK MAHASISWA PROGRAM STUDI PENDIDIKAN GURU MADRASAH IBTIDAIYAH UIN RADEN FATAH PALEMBANG. JIMR: Journal Of International Multidisciplinary Research, 2(02), 189-196.https://azramedia-indonesia.azramediaindonesia.com/index.php/JIMR/article/view/844

Yazidulfalach, A., & Ludigdo, U. (2013). Dampak kesertaan mahasiswa pada lembaga kemahasiswaan terhadap prestasi akademik (studi kasus mahasiswa jurusan akuntansi S1 Fakultas ekonomi dan bisnis Universitas Brawijaya). Jurnal Ilmiah Mahasiswa FEB, 2(1).https://jimfeb.ub.ac.id/index.php/jimfeb/article/view/904

LS0tDQp0aXRsZTogIlVUUyBTdGF0aXNrYSBEYXNhciBLZWxvbXBvayAzIg0KDQpzdWJ0aXRsZTogIkRhbXBhayBQYXJ0aXNpcGFzaSBEYWxhbSBPcmdhbmlzYXNpIEthbXB1cyBUZXJoYWRhcCBQcmVzdGFzaSBBa2FkZW1payBNYWhhc2lzd2EgKEtlbG9tcG9rIDMpIg0KDQphdXRob3I6IA0KICAtICIgRmlrYSBJcnNhbmRpIERlc3Z5YW50aSAoNTIyNDAwMDEzKSINCiAgLSAiT2xpdmlhIE1laWxpbmRhIERhdnRpbiBQZXNpcmVyb24gKDUyMjQwMDExKSINCiAgLSAiTXVoYW1tYWQgTmFiaWwgUHJhdGFtYSg1MjI0MDAxNikiDQpkYXRlOiAgImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJUIgJWQsICVZJylgIg0Kb3V0cHV0Og0KICBybWRmb3JtYXRzOjpyZWFkdGhlZG93bjoNCiAgICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQ0KICAgIHRodW1ibmFpbHM6IHRydWUNCiAgICBsaWdodGJveDogdHJ1ZQ0KICAgIGdhbGxlcnk6IHRydWUNCiAgICBsaWJfZGlyOiBsaWJzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCINCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93Ig0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGNzczogInN0eWxlL3N0eWxlLmNzcyINCi0tLQ0KDQo8aW1nIGlkPSJsb2dvLXV0YW1hIiBzcmM9ImltZy9mb3RvLXNlay5qcGciIGFsdD0iTG9nbyI+DQoNCg0KLS0tDQoNCiMgMS4gUEVOVElOR05ZQSBTVEFUSVNUSUtBDQpTdGF0aXN0aWthIHBlbnRpbmcgdW50dWsgbWVtYmFudHUgcGVuZ2FtYmlsYW4ga2VwdXR1c2FuIGJlcmRhc2Fya2FuIGRhdGEgeWFuZyBha3VyYXQsIG1lbmluZ2thdGthbiBwZW1haGFtYW4gaW5mb3JtYXNpLCBkYW4gbWVtZWNhaGthbiBtYXNhbGFoIGRlbmdhbiBtZW5lbXVrYW4gcG9sYSBkYW4gdHJlbi4gSW5pIGp1Z2EgYmVyZ3VuYSBkYWxhbSBwZXJlbmNhbmFhbiBrZXVhbmdhbiwgcGVuZWxpdGlhbiBha2FkZW1paywgZGFuIHBlbmdlbWJhbmdhbiBrYXJpciBwcm9mZXNpb25hbC4NCg0KIyMgQS4gUHJvc2VzIFBlbmd1bXB1bGFuIERhdGENCiAgDQogIFByb3NlcyBwZW5ndW1wdWxhbiBkYXRhIGFkYWxhaCBsYW5na2FoLWxhbmdrYWggdW50dWsgbWVuZ3VtcHVsa2FuIGluZm9ybWFzaSB5YW5nIGRpcGVybHVrYW4uIFR1anVhbm55YSBhZGFsYWggbWVuZGFwYXRrYW4gZGF0YSB5YW5nIHJlbGV2YW4gdW50dWsgZGlhbmFsaXNpcyBndW5hIG1lbmphd2FiIHBlcnRhbnlhYW4gYXRhdSBtZW5jYXBhaSB0dWp1YW4gcGVuZWxpdGlhbi5BZGEgYmViZXJhcGEgbWV0b2RlIHlhbmcgZGlndW5ha2FuIHNlY2FyYSB1bXVtLCB5YWl0dSA6DQogIA0KICAgLSAqU3VydmVpOiogTWVuZ2d1bmFrYW4ga3Vlc2lvbmVyIGF0YXUgZm9ybXVsaXIgdW50dWsgbWVuZ3VtcHVsa2FuIGRhdGEgZGFyaSByZXNwb25kZW4uDQogICAtICpXYXdhbmNhcmE6KiBQZXJ0ZW11YW4gdGF0YXAgbXVrYSBhdGF1IHRlbGVwb24gdW50dWsgbWVuZGFwYXRrYW4gaW5mb3JtYXNpIG1lbmRhbGFtLg0KICAgLSAqT2JzZXJ2YXNpOiogTWVuZ2FtYXRpIGRhbiBtZW5jYXRhdCBrZWphZGlhbiBhdGF1IHBlcmlsYWt1Lg0KICAgLSAqRWtzcGVyaW1lbjoqIE1lbmdlbmRhbGlrYW4gdmFyaWFiZWwgdW50dWsgbWVsaWhhdCBlZmVrbnlhLg0KICAgDQojIyBCLiBKZW5pcyBEYXRhIFlhbmcgRGlwZXJvbGVoDQoNCiAgIC0qKkRhdGEga3VhbGl0YXRpZioqIERhdGEgeWFuZyBiZXJiZW50dWsga2F0YS1rYXRhIGF0YXUgZGVza3JpcHNpLCBidWthbiBhbmdrYS4gQmlhc2FueWEgZGlwYWthaSB1bnR1ayBtZW1haGFtaSBwZW5kYXBhdCwgcGVuZ2FsYW1hbiwgYXRhdSBhbGFzYW4gZGkgYmFsaWsgc2VzdWF0dS4gQ29udG9obnlhLCBoYXNpbCB3YXdhbmNhcmEgYXRhdSByZXZpZXcgcHJvZHVrLg0KDQogICAtKipEYXRhIGt1YW50aXRhdGlmKiogZGF0YSB5YW5nIGJlcmJlbnR1ayBhbmdrYSBkYW4gYmlzYSBkaWhpdHVuZy4gQmlhc2FueWEgZGlndW5ha2FuIHVudHVrIG1lbmd1a3VyIHNlc3VhdHUgc2VjYXJhIG9iamVrdGlmLCBzZXBlcnRpIGp1bWxhaCBwZW5qdWFsYW4sIHRpbmdrYXQgcGVuZGFwYXRhbiwgYXRhdSBuaWxhaSByYXRhLXJhdGEuIENvbnRvaG55YSwgaGFzaWwgc3VydmVpIGp1bWxhaCBwZW5kdWR1ayBhdGF1IHN0YXRpc3RpayBwZW5qdWFsYW4uDQogICANCiMjIEMuIENhcmEgTWVueWFqaWthbiBEYXRhDQoNCioqMS4gVGFiZWwqKiAgDQogICBNZW55dXN1biBkYXRhIGRhbGFtIGJhcmlzIGRhbiBrb2xvbSB1bnR1ayBtZW11ZGFoa2FuIGFuYWxpc2lzLg0KDQoqKjIuIEdyYWZpayBkYW4gRGlhZ3JhbSoqICAgIA0KICAgLSBHcmFmaWsgeWFuZyBtZW5nZ3VuYWthbiBiYXRhbmcgdmVydGlrYWwgYXRhdSBob3Jpem9udGFsIHVudHVrIG1lbWJhbmRpbmdrYW4ganVtbGFoIGF0YXUgZnJla3VlbnNpIGRhcmkgYmVyYmFnYWkga2F0ZWdvcmkgYXRhdSBrZWxvbXBvayBkYXRhLg0KICAgDQogICAtICpEaWFncmFtIExpbmdrYXJhbiAoUGllIENoYXJ0KToqIERpZ3VuYWthbiB1bnR1ayBtZW51bmp1a2thbiBwcm9wb3JzaSBhdGF1IHBlcnNlbnRhc2UgZGFyaSBrZXNlbHVydWhhbiBkYXRhIGRhbGFtIGJlbnR1ayBpcmlzYW4gbGluZ2thcmFuLg0KICANCiAgIC0gKkRpYWdyYW0gR2FyaXM6KiBNZW5nZ2FtYmFya2FuIHRyZW4gYXRhdSBwZXJ1YmFoYW4gZGF0YSBzZWlyaW5nIHdha3R1IGRlbmdhbiBtZW5naHVidW5na2FuIHRpdGlrLXRpdGlrIGRhdGEgbWVuZ2d1bmFrYW4gZ2FyaXMuDQogIA0KKiozLiBTdGF0aXN0aWsgRGVza3JpcHRpZioqIE1lbmdndW5ha2FuIHVrdXJhbiBzZXBlcnRpIHJhdGEtcmF0YSwgbWVkaWFuLCBtb2RlLCBkYW4gc3RhbmRhciBkZXZpYXNpIHVudHVrIG1lbmdnYW1iYXJrYW4ga2FyYWt0ZXJpc3RpayB1dGFtYSBkYXRhLg0KDQoqKjQuIEluZm9ncmFmaXMqKiAgICAgS29tYmluYXNpIHRla3MsIGdhbWJhciwgZGFuIGdyYWZpayB1bnR1ayBtZW55YWppa2FuIGluZm9ybWFzaSBzZWNhcmEgdmlzdWFsIHlhbmcgbXVkYWggZGlwYWhhbWkuDQoNCioqNS4gUGVuZ2Vsb21wb2thbiBEYXRhKiogTWVuZ2Vsb21wb2trYW4gZGF0YSBiZXJkYXNhcmthbiBrYXRlZ29yaSBhdGF1IGludGVydmFsIHRlcnRlbnR1IHVudHVrIG1lbXVkYWhrYW4gYW5hbGlzaXMuDQoNCiMjIEQuIENvbnRvaCBLYXN1cyANClBlbmdndW5hYW4gYXBsaWthc2kgcGVuZ2luZ2F0IHR1Z2FzIHNlbWFraW4gcG9wdWxlciBkaSBrYWxhbmdhbiBtYWhhc2lzd2EgdW50dWsgbWVuaW5na2F0a2FuIGtlcGF0dWhhbiBkYWxhbSBtZW55ZWxlc2Fpa2FuIHR1Z2FzIGt1bGlhaC4gUGVuZWxpdGlhbiBpbmkgbWVuZ2thamkgZGFtcGFrbnlhIHRlcmhhZGFwIGVmZWt0aXZpdGFzIHBlbnllbGVzYWlhbiB0dWdhcy4NCg0KKioxLiBNZXRvZGUgUGVuZ3VtcHVsYW4gRGF0YSoqDQpTdXJ2ZWkgb25saW5lIG1lbGFsdWkgR29vZ2xlIEZvcm1zIGRpZ3VuYWthbiB1bnR1ayBtZW5ndW1wdWxrYW4gZGF0YS4gTWFoYXNpc3dhIGRpbWludGEgbWVuZ2lzaSBrdWVzaW9uZXIgdGVya2FpdCBmcmVrdWVuc2kgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgdHVnYXMgKG1pc2FsbnlhIEdvb2dsZSBLZWVwLCBUb2RvaXN0KSBkYW4gZGFtcGFrbnlhIHRlcmhhZGFwIGtlcGF0dWhhbiBtZXJla2EgZGFsYW0gbWVueWVsZXNhaWthbiB0dWdhcyBrdWxpYWguIEt1ZXNpb25lciB0ZXJkaXJpIGRhcmkgcGVydGFueWFhbiBwaWxpaGFuIGdhbmRhIGRhbiBwZXJ0YW55YWFuIHRlcmJ1a2EuDQoNCioqMi4gQWxhc2FuIE1lbWlsaWggTWV0b2RlIFlhbmcgRGlndW5ha2FuKioNClN1cnZlaSBvbmxpbmUgZGlwaWxpaCBrYXJlbmEgZWZpc2llbiwgbXVkYWggZGlqYW5na2F1LCBkYW4gbWVtdW5na2lua2FuIHBlbmd1bXB1bGFuIGRhdGEgZGFsYW0ganVtbGFoIGJlc2FyIGRlbmdhbiBjZXBhdC4gRGVuZ2FuIEdvb2dsZSBGb3JtcywgZGF0YSBiaXNhIGRpa3VtcHVsa2FuIGRhcmkgbWFoYXNpc3dhIHNlY2FyYSBhbm9uaW0sIG1lbmluZ2thdGthbiBrZWp1anVyYW4gamF3YWJhbi4gU2VsYWluIGl0dSwgbWFoYXNpc3dhIGRhcGF0IG1lbmdpc2kga3Vlc2lvbmVyIGthcGFuIHNhamEsIG1lbmluZ2thdGthbiBwYXJ0aXNpcGFzaS4NCg0KKiozLiBKZW5pcyBEYXRhIFlhbmcgRGloYXNpbGthbioqDQoNCipEYXRhIEt1YW50aXRhdGlmKiBBbmdrYSB5YW5nIGRpdWt1ciwgc2VwZXJ0aSBmcmVrdWVuc2kgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgZGFuIHBlcnNlbnRhc2UgdHVnYXMgeWFuZyBkaXNlbGVzYWlrYW4gdGVwYXQgd2FrdHUuIERhdGEgaW5pIG1lbXVuZ2tpbmthbiBhbmFsaXNpcyBzdGF0aXN0aWsgb2JqZWt0aWYuDQoNCkZyZWt1ZW5zaSBQZW5nZ3VuYWFuIEFwbGlrYXNpIFBlbmdpbmdhdA0KDQpTZXRpYXAgaGFyaTogNSBtYWhhc2lzd2ENCg0KMy00IGthbGkgc2VtaW5nZ3U6IDMgbWFoYXNpc3dhDQoNCjEtMiBrYWxpIHNlbWluZ2d1OiAyIG1haGFzaXN3YQ0KDQpUaW5na2F0IEtlcGF0dWhhbiBkYWxhbSBNZW55ZWxlc2Fpa2FuIFR1Z2FzDQoNCjkwJSBhdGF1IGxlYmloIHRlcGF0IHdha3R1OiA0IG1haGFzaXN3YQ0KDQo3MCUtODklIHRlcGF0IHdha3R1OiA0IG1haGFzaXN3YQ0KDQpLdXJhbmcgZGFyaSA3MCUgdGVwYXQgd2FrdHU6IDIgbWFoYXNpc3dhDQoNCkRhdGEgS3VhbGl0YXRpZjogRGVza3JpcHNpIHBlbmdhbGFtYW4gbWFoYXNpc3dhIHRlcmthaXQgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQsIHlhbmcgbWVtYmVyaWthbiB3YXdhc2FuIG1lbmRhbGFtIHlhbmcgdGlkYWsgYmlzYSBkaWplbGFza2FuIGhhbnlhIGRlbmdhbiBhbmdrYS4NCg0KDQpEYW1wYWsgQXBsaWthc2kgUGVuZ2luZ2F0IFR1Z2FzDQpNZW1iYW50dTogNiBtYWhhc2lzd2ENCkN1a3VwIG1lbWJhbnR1OiAzIG1haGFzaXN3YQ0KVGlkYWsgbWVtYmFudHU6IDEgbWFoYXNpc3dhDQoNCioqNC4gUGVueWFqaWFuIERhdGEqKg0KDQpkaXNhamlrYW4gZGFsYW0gZGlhZ3JhbSBsaW5na2FyYW4gdW50dWsgbWVuZ2dhbWJhcmthbiBmcmVrdWVuc2kgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgZGFuIHRpbmdrYXQga2VwYXR1aGFuIG1haGFzaXN3YSBkYWxhbSBtZW55ZWxlc2Fpa2FuIHR1Z2FzLiBEaWFncmFtIGxpbmdrYXJhbiBkaXBpbGloIGthcmVuYSBkYXBhdCBtZW51bmp1a2thbiBwcm9wb3JzaSBtYXNpbmctbWFzaW5nIGthdGVnb3JpIHNlY2FyYSB2aXN1YWwsIHNlaGluZ2dhIG1lbXVkYWhrYW4gcGVtYWhhbWFuIHRlbnRhbmcgZGlzdHJpYnVzaSBwZXJzZW50YXNlIG1haGFzaXN3YSBkYWxhbSBoYWwgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgZGFuIGtlcGF0dWhhbiBkYWxhbSBtZW55ZWxlc2Fpa2FuIHR1Z2FzwqB0ZXBhdMKgd2FrdHUuDQoNCg0KIyAyLiBURUtOSUsgQU5BTElTQSBEQVRBDQoqRGFtcGFrIFBhcnRpc2lwYXNpIGRhbGFtIE9yZ2FuaXNhc2kgS2FtcHVzIHRlcmhhZGFwIFByZXN0YXNpIEFrYWRlbWlrIE1haGFzaXN3YSoNCg0KIyMgQS4gTWV0b2RlIFBlbmd1bXB1bGFuIERhdGENCg0KU3VydmVpIG9ubGluZSBtZWxhbHVpIGFsYXQgR29vZ2xlIEZvcm1zIGRpZ3VuYWthbiB1bnR1ayBtZW5ndW1wdWxrYW4gZGF0YS4gTWFoYXNpc3dhIGRpbWludGEgbWVuZ2lzaSBrdWVzaW9uZXIgbWVsYWx1aSBsaW5rICA8YSBocmVmID0gImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2Zvcm1zL2QvZS8xRkFJcFFMU2Z5cjJYTXJqUk15YzVFNWtCNnFYbUVTX2pPa3JZdjhyZmJiMTlkRFVuRVBzcDVndy92aWV3Zm9ybT91c3A9c2ZfbGluayI+R29vZ2xlIEZvcm08L2E+ICB5YW5nIGJlcmlzaSBwZXJ0YW55YWFuIHRlcmthaXQgamFtIHBhcnRpc2lwYXNpIG1lcmVrYSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyBkYW4gZGFtcGFrbnlhIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrIG1lcmVrYS4gS3Vlc2lvbmVyICB0ZXJkaXJpIGRhcmkgMTAgcGVydGFueWFhbiBrdWFudGl0YXRpZiBkYW4ga3VhbGl0YXRpZiB0ZXJrYWl0IGR1cmFzaSBrZXRlcmxpYmF0YW4sIGRhbXBha255YSBwYWRhIHdha3R1IGJlbGFqYXIsIHNlcnRhIHBlbmdhcnVoIG9yZ2FuaXNhc2kgdGVyaGFkYXAgSVBLLiBTdXJ2ZWkgZGlpa3V0aSBvbGVowqAxMMKgcmVzcG9uZGVuLg0KDQojIyBCLiBBbGFzYW4gTWVtaWxpaCBNZXRvZGUgWWFuZyBEaWd1bmFrYW4NCg0KS2FtaSBtZW5nZ3VuYWthbiBTdXJ2ZWkgb25saW5lIGRlbmdhbiBtZW5nZ3VuYWthbiBhbGF0IEdvb2dsZSBGb3JtcyBkaXBpbGloIGthcmVuYSBiZXJpa3V0IDoNCg0KLSBKYW5na2F1YW4gTHVhczogTWVuamFuZ2thdSBtYWhhc2lzd2EgZGFyaSBiZXJiYWdhaSB0ZW1wYXQgdGFucGEgYmF0YXNhbiBnZW9ncmFmaXMuDQoNCi0gQmlheWEgRWZpc2llbjogVGFucGEgYmlheWEgY2V0YWsgYXRhdSBkaXN0cmlidXNpIGZpc2lrLg0KDQotIFBlbmd1bXB1bGFuIERhdGEgQ2VwYXQ6IERhdGEgdGVya3VtcHVsIHNlY2FyYSByZWFsLXRpbWUuDQoNCi0gS2VtdWRhaGFuIEFuYWxpc2lzOiBEYXRhIGxhbmdzdW5nIGRhbGFtIGZvcm1hdCBkaWdpdGFsLg0KZGlqYWRpaW4ga2FsaW1hdA0KDQojIyBDLiBKZW5pcyBEYXRhIFlhbmcgRGloYXNpbGthbiAgICANCkRhdGEgeWFuZyBkaWhhc2lsa2FuIHRlcmRpcmkgZGFyaSBkdWEgamVuaXM6DQoNCi0gRGF0YSBLdWFudGl0YXRpZjogQW5na2EgeWFuZyBkaXVrdXIsIHNlcGVydGkganVtbGFoIGphbSBwYXJ0aXNpcGFzaSBtYWhhc2lzd2EgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgcGVyIG1pbmdndSBkYW4gSVBLIG1haGFzaXN3YS4gRGF0YSBpbmkgbWVtdW5na2lua2FuIGFuYWxpc2lzIHN0YXRpc3RpayB1bnR1ayBtZWxpaGF0IGh1YnVuZ2FuIGFudGFyYSB0aW5na2F0IGtldGVybGliYXRhbiBvcmdhbmlzYXNpIGRhbiBwcmVzdGFzaSBha2FkZW1pay4NCg0KLSBEYXRhIEt1YWxpdGF0aWY6IERlc2tyaXBzaSBwZW5nYWxhbWFuIG1haGFzaXN3YSB0ZXJrYWl0IGRhbXBhayBwYXJ0aXNpcGFzaSBtZXJla2EgZGFsYW0gb3JnYW5pc2FzaSB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1pay4gRGF0YSBpbmkgbWVtYmVyaWthbiB3YXdhc2FuIG1lbmRhbGFtIHRlbnRhbmcgcGVyc2Vwc2kgbWFoYXNpc3dhIHlhbmcgdGlkYWsgZGFwYXQgZGlqZWxhc2thbiBoYW55YSBkZW5nYW4gYW5na2EuDQoNCiAgQ29udG9oIERhdGEgSGFzaWwgUGVuZ3VtcHVsYW46DQogICBEYW1wYWsgUGFydGlzaXBhc2kgT3JnYW5pc2FzaSB0ZXJoYWRhcCBJUEsNCiAgICAgKHRhbXBpbGluIGRhdGEgeWFuZyBoYXNpbCBleGNlbCkNCg0KDQojIDMuIFBFTllBSklBTiBEQVRBIERBTEFNIEJFTlRVSyBESUFHUkFNDQoNCkRhdGEgZGlzYWppa2FuIGRhbGFtIGRpYWdyYW0gbGluZ2thcmFuIHVudHVrIG1lbmdnYW1iYXJrYW4gZnJla3VlbnNpIHBhcnRpc2lwYXNpIG1haGFzaXN3YSBkYWxhbSBvcmdhbmlzYXNpIGRhbiBkaXN0cmlidXNpIElQSyBtYWhhc2lzd2EuIERpYWdyYW0gbGluZ2thcmFuIGRpcGlsaWgga2FyZW5hIHZpc3VhbGlzYXNpIGluaSBtZW11ZGFoa2FuIHBlbWFoYW1hbiB0ZW50YW5nIHByb3BvcnNpIG1hc2luZy1tYXNpbmcga2F0ZWdvcmkgZGFsYW0gaGFsIGtldGVybGliYXRhbiBvcmdhbmlzYXNpIGRhbiBkYW1wYWtueWEgdGVyaGFkYXAgcHJlc3Rhc2kgYWthZGVtaWsuIERlbmdhbiBkaWFncmFtIGluaSwgcGVtYmFjYSBkYXBhdCBkZW5nYW4gbXVkYWggbWVsaWhhdCBodWJ1bmdhbiBhbnRhcmEgdGluZ2thdCBwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyBkYW4gdGluZ2thdCBwcmVzdGFzaSBha2FkZW1pa8KgbWFoYXNpc3dhLg0KDQojIyBBLiBEQVRBIEtVQUxJVEFUSUYgKFNVUlZFWSkNCkZva3VzIGRhdGEga3VhbGl0YXRpZiBkYWxhbSBwZW5lbGl0aWFuIGluaSBhZGFsYWggbWFuZmFhdCB1dGFtYSBkYXJpIG9yZ2FuaXNhc2ksdGFudGFuZ2FuIG1lbnllaW1iYW5na2FuIHdha3R1LHBlbmdlbWJhbmdhbiBrZXRlcmFtcGlsYW4gYWthZGVtaWssZHVrdW5nYW4gb3JnYW5pc2FzaSB0ZXJoYWRhcCBha2FkZW1payxtYW5mYWF0IHV0YW1hIHlhbmcgbWFoYXNpc3dhIHJhc2FrYW4gZGFyaSBrZWlrdXRzZXJ0YWFuIGRhbGFtIG9yZ2FuaXNhc2kga2FtcHVzLEJlcmlrdXQgYWxhc2FuIG1lbmdhcGEgbWVuZ2d1bmFrYW4gZGF0YSBrdWFsaXRhdGlmOg0KDQotICoqTWVuZ2dhbGkgcGVuZ2FsYW1hbiBkYW4gcGVyc2Vwc2kgbWFoYXNpc3dhKiogdGVya2FpdCBtYW5mYWF0IGRhbiB0YW50YW5nYW4gZGFsYW0gb3JnYW5pc2FzaS4NCi0gKipNZW1haGFtaSBrb250ZWtzIGRhbiBkaW5hbWlrYSoqIHlhbmcgdGlkYWsgYmlzYSBkaXVrdXIgZGVuZ2FuIGFuZ2thLg0KLSAqKk1lbmFuZ2thcCBmYWt0b3Igc3ViamVrdGlmKiogc2VwZXJ0aSBkdWt1bmdhbiBvcmdhbmlzYXNpIGRhbiBrZXNlaW1iYW5nYW4gd2FrdHUuDQotICoqTWVuZ3VuZ2thcCBrZWJlcmFnYW1hbiBwZXJzcGVrdGlmKiogZGFyaSBtYWhhc2lzd2EgbWVuZ2VuYWkgcGFydGlzaXBhc2kgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMuDQoNCkJlcmlrdXQgaW5pIG1lcnVwYWthbiBkYXRhIGt1YWxpdGF0aWYgZGFyaSBwZW5lbGl0aWFuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQ0KZGF0YV9rdWFsaSA9IHJlYWQuY3N2KCJkYXRhL2RhdGFfa3VhbGl0YXRpZi5jc3YiKQ0Ka25pdHI6OmthYmxlKGRhdGFfa3VhbGkpDQpgYGANClRhYmVsIGt1YWxpdGF0aWYgaW5pIG1lbnVuanVra2FuIG1hbmZhYXQgZGFuIHRhbnRhbmdhbiB5YW5nIGRpaGFkYXBpIG1haGFzaXN3YSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cy4gTWFuZmFhdCB1dGFtYSB5YW5nIGRpcmFzYWthbiBtZWxpcHV0aSBwZW5pbmdrYXRhbiBrZXRlcmFtcGlsYW4ga29tdW5pa2FzaSwga2VwZW1pbXBpbmFuLCBkYW4gbWFuYWplbWVuIHdha3R1LiBUYW50YW5nYW4gdGVyYmVzYXIgYWRhbGFoIGtlc3VsaXRhbiBtZW5nYXR1ciBqYWR3YWwsIHN0cmVzLCBkYW4gYmViYW4gdHVnYXMgeWFuZyBtZW51bXB1ay4gU2ViYWdpYW4gYmVzYXIgbWFoYXNpc3dhIG1lcmFzYSBkdWt1bmdhbiBvcmdhbmlzYXNpIHRlcmhhZGFwIGFrYWRlbWlrIGN1a3VwIG1lbWJhbnR1LCBtZXNraXB1biBiZWJlcmFwYSBtZXJhc2EgZHVrdW5nYW4gdGVyc2VidXQga3VyYW5nIHNpZ25pZmlrYW4uIEtlaWt1dHNlcnRhYW4gZGFsYW0gb3JnYW5pc2FzaSBtZW1iZXJpa2FuIG1hbmZhYXQgdW50dWsgcGVuZ2VtYmFuZ2FuIGtldGVyYW1waWxhbiwgbmFtdW4gbWVtYnV0dWhrYW4ga2VtYW1wdWFuIG1lbmdhdHVyIHdha3R1IHlhbmcgYmFpay4NCg0KIyMgQi4gREFUQSBLVUFOVElUQVRJRiAoU1VSVkVZKQ0KRm9rdXMgZGF0YSBrdWFudGl0YXRpZiBkYWxhbSBwZW5lbGl0aWFuIGluaSBhZGFsYWggd2FrdHUgcGVyIG1pbmdndSB5YW5nIGRpaGFiaXNrYW4gb2xlaCBtYWhhc2lzd2EgZGFsYW0gb3JnYW5pc2FzaSxJUEsgdGVyYmFydSxwZXJ0ZW11YW4gb3JnYW5pc2FzaSBwZXIgYnVsYW4sZ2FuZ2d1YW4gYmVsYWphciBwZXIgbWluZ2d1LGphbSBiZWxhamFyIGRpIGx1YXIga3VsaWFoLEJlcmlrdXQgYWxhc2FuIG1lbmdhcGEgbWVuZ2d1bmFrYW4gZGF0YSBrdWFudGl0YXRpZjoNCg0KLSAqKk1lbmd1a3VyIHdha3R1IGRhbiBmcmVrdWVuc2kqKiB5YW5nIGRpaGFiaXNrYW4gbWFoYXNpc3dhIGRhbGFtIG9yZ2FuaXNhc2kgZGFuIGFrdGl2aXRhcyBha2FkZW1payBzZWNhcmEgb2JqZWt0aWYuDQotICoqTWVuZ2FuYWxpc2lzIGh1YnVuZ2FuIGFudGFyIHZhcmlhYmVsKiogc2VwZXJ0aSB3YWt0dSBvcmdhbmlzYXNpIGRhbiBJUEssIGF0YXUgZ2FuZ2d1YW4gYmVsYWphciBkZW5nYW4gamFtIGJlbGFqYXIuDQotICoqTWVtYmVyaWthbiBkYXRhIG51bWVyaWsqKiB5YW5nIGRhcGF0IGRpYmFuZGluZ2thbiBkYW4gZGlhbmFsaXNpcyB1bnR1ayBtZW5lbXVrYW4gcG9sYSBhdGF1IHRyZW4uDQotICoqTWVuaWxhaSBkYW1wYWsga3VhbnRpdGF0aWYqKiBkYXJpIGtlaWt1dHNlcnRhYW4gZGFsYW0gb3JnYW5pc2FzaSB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkYW4gZ2FuZ2d1YW4gYmVsYWphci4NCg0KDQpCZXJpa3V0IGluaSBtZXJ1cGFrYW4gZGF0YSBrdWFudGl0YXRpZiBkYXJpIHBlbmVsaXRpYW4NCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZGF0YSA9IHJlYWQuY3N2KCJkYXRhL2RhdGFfa3VhbnRpdGF0aWYuY3N2IikNCmtuaXRyOjprYWJsZShkYXRhKQ0KYGBgDQoNClRhYmVsIGt1YW50aXRhdGlmIGluaSBtZW51bmp1a2thbiBkYXRhIG1haGFzaXN3YSB5YW5nIHRlcmxpYmF0IGRhbGFtIG9yZ2FuaXNhc2kga2FtcHVzIGRhbiBkYW1wYWtueWEgdGVyaGFkYXAgcHJlc3Rhc2kgYWthZGVtaWsgbWVyZWthLiBEYXRhIGluaSBtZW5nZ2FtYmFya2FuIGh1YnVuZ2FuIGFudGFyYSBqdW1sYWggamFtIHlhbmcgZGloYWJpc2thbiBkYWxhbSBvcmdhbmlzYXNpLCBmcmVrdWVuc2kgcGVydGVtdWFuLCBnYW5nZ3VhbiBiZWxhamFyLCBkYW4gd2FrdHUgYmVsYWphciBkaSBsdWFyIGt1bGlhaCBkZW5nYW4gSVBLIG1haGFzaXN3YS4gU2VjYXJhIHVtdW0sIG1haGFzaXN3YSB5YW5nIGxlYmloIGJhbnlhayBiZXJwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGNlbmRlcnVuZyBtZW1pbGlraSB3YWt0dSBiZWxhamFyIHlhbmcgbGViaWggc2VkaWtpdCBkYW4gSVBLIHlhbmcgbGViaWggYmVydmFyaWFzaSwgc2VtZW50YXJhIG1haGFzaXN3YSBkZW5nYW4ga2V0ZXJsaWJhdGFuIG9yZ2FuaXNhc2kgeWFuZyBsZWJpaCBzZWRpa2l0IGNlbmRlcnVuZyBtZW1pbGlraSB3YWt0dSBiZWxhamFyIGxlYmloIGJhbnlhayBkYW4gSVBLIHlhbmcgbGViaWggdGluZ2dpLg0KDQojIEdSQUZJSyBEQVRBDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQoNCiMgRnVuZ3NpIHVudHVrIG1lbWJ1YXQgZ3JhZmlrIGRvbmF0DQpidWF0X2RvbnV0X3Bsb3RseSA8LSBmdW5jdGlvbihkYXRhLCBrb2xvbSwganVkdWwpIHsNCiAgIyBNZW5naGl0dW5nIGZyZWt1ZW5zaSBzZXRpYXAga2F0ZWdvcmkgZGkga29sb20NCiAgZGF0YV9kaWFncmFtIDwtIGRhdGEgJT4lDQogICAgY291bnQoISFzeW0oa29sb20pLCBuYW1lID0gIkZyZWt1ZW5zaSIpICU+JQ0KICAgIHJlbmFtZSgiS2F0ZWdvcmkiID0gISFzeW0oa29sb20pKSAlPiUNCiAgICBhcnJhbmdlKGRlc2MoRnJla3VlbnNpKSkNCiAgDQogICMgTWVtYnVhdCBncmFmaWsgZG9uYXQgZGVuZ2FuIFBsb3RseQ0KICBwbG90X2x5KGRhdGFfZGlhZ3JhbSwgDQogICAgICAgICAgbGFiZWxzID0gfkthdGVnb3JpLCANCiAgICAgICAgICB2YWx1ZXMgPSB+RnJla3VlbnNpLCANCiAgICAgICAgICB0eXBlID0gJ3BpZScsIA0KICAgICAgICAgIHRleHRpbmZvID0gJ2xhYmVsK3BlcmNlbnQnLCAgICAgICAgIyBNZW5hbXBpbGthbiBsYWJlbCBkYW4gcGVyc2VudGFzZQ0KICAgICAgICAgIGluc2lkZXRleHRvcmllbnRhdGlvbiA9ICdyYWRpYWwnLCAgIyBPcmllbnRhc2kgdGVrcyBkaSBkYWxhbSBpcmlzYW4NCiAgICAgICAgICBob2xlID0gMC4zLCAgICAgICAgICAgICAgICAgICAgICAgICMgTWVuZ2F0dXIgdWt1cmFuIGx1YmFuZw0KICAgICAgICAgIG1hcmtlciA9IGxpc3QoY29sb3JzID0gUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKG4gPSBucm93KGRhdGFfZGlhZ3JhbSksIG5hbWUgPSAiU2V0MyIpKSkgJT4lDQogICAgbGF5b3V0KHRpdGxlID0ganVkdWwsIHNob3dsZWdlbmQgPSBUUlVFKQ0KfQ0KYGBgDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQoNCmRhdGFfZGlhZ3JhbSA8LSBkYXRhICU+JQ0KICBjb3VudChKZW5pcy5LZWxhbWluLCBuYW1lID0gIkZyZWt1ZW5zaSIpICU+JQ0KICByZW5hbWUoIkplbmlzIEtlbGFtaW4iID0gSmVuaXMuS2VsYW1pbikgJT4lDQogIGFycmFuZ2UoZGVzYyhGcmVrdWVuc2kpKQ0Ka25pdHI6OmthYmxlKGRhdGFfZGlhZ3JhbSkNCmJ1YXRfZG9udXRfcGxvdGx5KGRhdGEsICJKZW5pcy5LZWxhbWluIiwgIkplbmlzIEtlbGFtaW4iKQ0KYGBgDQpEaWFncmFtIGxpbmdrYXJhbiBpbmkgbWVudW5qdWtrYW4gZGlzdHJpYnVzaSBqZW5pcyBrZWxhbWluIG1haGFzaXN3YSB5YW5nIHRlcmxpYmF0IGRhbGFtIG9yZ2FuaXNhc2kga2FtcHVzIHRlcmthaXQgZGFtcGFrIHBhcnRpc2lwYXNpIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrLiBCZXJkYXNhcmthbiBkYXRhLCBqdW1sYWggbWFoYXNpc3dhIGxha2ktbGFraSBkYW4gcGVyZW1wdWFuIHlhbmcgYmVycGFydGlzaXBhc2kgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgYWRhbGFoIHNlaW1iYW5nLCBtYXNpbmctbWFzaW5nIDUwJS4gSW5pIG1lbnVuanVra2FuIGJhaHdhIGRhbXBhayBwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkYXBhdCBkaXJhc2FrYW4gb2xlaCBtYWhhc2lzd2EgZGFyaSBrZWR1YSBqZW5pcyBrZWxhbWluIHNlY2FyYSBtZXJhdGEuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBNZW11YXQgbGlicmFyeSB5YW5nIGRpcGVybHVrYW4NCmxpYnJhcnkocGxvdGx5KQ0KDQojIE1lbWJ1YXQgaGlzdG9ncmFtIGRlbmdhbiB2YXJpYXNpIHdhcm5hDQpwbG90X2x5KGRhdGEgPSBkYXRhLCANCiAgICAgICAgeCA9IH5KYW0ucGVyLk1pbmdndS5kaS5PcmdhbmlzYXNpLCAgIyBHYW50aSAnUGVuZGFwYXRhbicgZGVuZ2FuIG5hbWEga29sb20geWFuZyBzZXN1YWkNCiAgICAgICAgdHlwZSA9ICJoaXN0b2dyYW0iLA0KICAgICAgICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKG4gPSAzLCBuYW1lID0gIlNldDIiKVsxXSwgDQogICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpc3QoY29sb3IgPSAid2hpdGUiLCB3aWR0aCA9IDEpKSkgJT4lDQogIGxheW91dCh0aXRsZSA9ICJKYW0gcGVyIE1pbmdndSBkaSBPcmdhbmlzYXNpIiwNCiAgICAgICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJKYW0gcGVyIE1pbmdndSIpLA0KICAgICAgICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIkZyZWt1ZW5zaSIpKQ0KYGBgDQoNCkRpYWdyYW0gbGluZ2thcmFuIGluaSBtZW51bmp1a2thbiBkaXN0cmlidXNpIHdha3R1IHlhbmcgZGloYWJpc2thbiBtYWhhc2lzd2EgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgdGVya2FpdCBkYW1wYWsgcGFydGlzaXBhc2kgdGVyaGFkYXAgcHJlc3Rhc2kgYWthZGVtaWsuIEJlcmRhc2Fya2FuIGRhdGEgcGVyc2VudGFzZSwgMzAlIG1haGFzaXN3YSBtZW5naGFiaXNrYW4gd2FrdHUgNi0xMCBqYW0gcGVyIG1pbmdndSBkYWxhbSBvcmdhbmlzYXNpLCBzZW1lbnRhcmEgMjAlIG1hc2luZy1tYXNpbmcgbWVuZ2hhYmlza2FuIHdha3R1IDAtNSBqYW0sIDExLTE1IGphbSwgZGFuIDE2LTIwIGphbS4gU2lzYW55YSwgMTAlIG1haGFzaXN3YSBtZW5naGFiaXNrYW4gbGViaWggZGFyaSAyMCBqYW0gcGVyIG1pbmdndS4gSGFsIGluaSBtZW51bmp1a2thbiBiYWh3YSBzZWJhZ2lhbiBiZXNhciBtYWhhc2lzd2EgdGVybGliYXQgZGFsYW0gb3JnYW5pc2FzaSBkZW5nYW4gZHVyYXNpIG1vZGVyYXQgKDYtMTAgamFtKSwgZGFuIGRhbXBhayB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkYXBhdCBiZXJ2YXJpYXNpIHRlcmdhbnR1bmcgcGFkYSBzZWJlcmFwYSBiYW55YWsgd2FrdHUgeWFuZyBkaWhhYmlza2FuIGRhbGFtIGtlZ2lhdGFuIG9yZ2FuaXNhc2kuDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IGRwbHlyDQpsaWJyYXJ5KGRwbHlyKQ0KDQojIE1lbWJ1YXQgdGFiZWwgZGlzdHJpYnVzaSBkZW5nYW4ga29sb20gcGVyc2VudGFzZQ0KdGFiZWxfZGF0YSA8LSBkYXRhICU+JQ0KICBjb3VudChJUEsuVGVyYmFydSwgDQogICAgICAgIG5hbWUgPSAiRnJla3VlbnNpIikgJT4lDQogIG11dGF0ZShQZXJzZW50YXNlID0gcm91bmQoKEZyZWt1ZW5zaSAvIHN1bShGcmVrdWVuc2kpKSAqIDEwMCwgMikpICU+JSAgIyBNZW5naGl0dW5nIHBlcnNlbnRhc2UNCiAgcmVuYW1lKCJJUEsgVGVyYmFydSIgPSBJUEsuVGVyYmFydSkgJT4lDQogIGFycmFuZ2UoZGVzYyhGcmVrdWVuc2kpKSAgIyBNZW5ndXJ1dGthbiBkYXJpIHlhbmcgdGVyYmVzYXIga2UgdGVya2VjaWwNCg0KIyBNZW5hbXBpbGthbiB0YWJlbCBkaXN0cmlidXNpDQprbml0cjo6a2FibGUodGFiZWxfZGF0YSkgDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQoNCiMgTWVueWltcGFuIHRhYmVsIGRpc3RyaWJ1c2kgc2ViYWdhaSB0YWJsZV9kYXRhIGFnYXIgc2VzdWFpIGRlbmdhbiBuYW1hIG9iamVrIGRpIHBsb3QNCnRhYmxlX2RhdGEgPC0gdGFiZWxfZGF0YQ0KDQojIE1lbWJ1YXQgZGlhZ3JhbSBiYXRhbmcgZGVuZ2FuIGdncGxvdDINCnAgPC0gZ2dwbG90KHRhYmxlX2RhdGEsIGFlcyh4ID0gYElQSyBUZXJiYXJ1YCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IEZyZWt1ZW5zaSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbCA9IGBJUEsgVGVyYmFydWAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBwYXN0ZTAoIlBlcnNlbnRhc2U6ICIsIFBlcnNlbnRhc2UsICIlIikpKSArICAjIE1lbmFtYmFoa2FuIHBlcnNlbnRhc2UgZGkgdG9vbHRpcA0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gRnJla3VlbnNpKSwgDQogICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMS4xKSwgICMgTWVuYW1waWxrYW4gaGFueWEgZnJla3VlbnNpIGRpIGxhYmVsDQogICAgICAgICAgICBjb2xvciA9ICJibGFjayIsIHNpemUgPSAzKSArICAjIE1lbmdhdHVyIHdhcm5hIGRhbiB1a3VyYW4gbGFiZWwNCiAgbGFicyh0aXRsZSA9ICJJUEsgVGVyYmFydSIsDQogICAgICAgeCA9ICJJUEsgVGVyYmFydSIsDQogICAgICAgeSA9ICJGcmVrdWVuc2kiKSArDQogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiU2V0MiIpICsgICMgTWVuZ2d1bmFrYW4gcGFsZXQgd2FybmENCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArICAgICAgIyBNZW55ZW1idW55aWthbiBsZWdlbmRhDQogIGNvb3JkX2ZsaXAoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVtYnVhdCBkaWFncmFtIG1lbmphZGkgaG9yaXpvbnRhbA0KDQojIE1lbmdvbnZlcnNpIGdncGxvdCBtZW5qYWRpIHBsb3RseSB1bnR1ayBpbnRlcmFrdGlmIGRlbmdhbiB0b29sdGlwIHBlcnNlbnRhc2UNCnBsb3RseV9wbG90IDwtIGdncGxvdGx5KHAsIHRvb2x0aXAgPSBjKCJ4IiwgInkiLCAidGV4dCIpKQ0KDQojIE1lbmFtcGlsa2FuIHBsb3QgaW50ZXJha3RpZg0KcGxvdGx5X3Bsb3QNCmBgYA0KDQoNCkRpYWdyYW0gbGluZ2thcmFuIGluaSBtZW51bmp1a2thbiBkaXN0cmlidXNpIElQSyBtYWhhc2lzd2EgeWFuZyB0ZXJsaWJhdCBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cywgZGVuZ2FuIDMwJSBtYWhhc2lzd2EgbWVtaWxpa2kgSVBLIGFudGFyYSAzLjAwIC0gMy40OSBkYW4gMzAlIGxhaW5ueWEgbWVtaWxpa2kgSVBLIGFudGFyYSAzLjUwIC0gMy44OS4gU2ViYW55YWsgMjAlIG1haGFzaXN3YSBtZW1pbGlraSBJUEsgZGkgYXRhcyAzLjkwLCBzZW1lbnRhcmEgMTAlIG1lbWlsaWtpIElQSyBhbnRhcmEgMi4wMCAtIDIuNDkgZGFuIDIuNTAgLSAyLjk5LiBTZWJhZ2lhbiBiZXNhciBtYWhhc2lzd2EgbWVtaWxpa2kgSVBLIHlhbmcgYmFpaywgbWVudW5qdWtrYW4gYmFod2EgcGFydGlzaXBhc2kgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgdGlkYWsgc2VsYWx1IGJlcmRhbXBhayBuZWdhdGlmIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrLCBtZXNraXB1biBhZGEgc2ViYWdpYW4ga2VjaWwgbWFoYXNpc3dhIHlhbmcgbWVtaWxpa2kgSVBLIGxlYmloIHJlbmRhaC4NCg0KDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgTWVtdWF0IGxpYnJhcnkgZHBseXINCmxpYnJhcnkoZHBseXIpDQoNCiMgTWVtYnVhdCB0YWJlbCBkaXN0cmlidXNpIGRlbmdhbiBrb2xvbSBwZXJzZW50YXNlDQp0YWJlbF9kYXRhIDwtIGRhdGEgJT4lDQogIGNvdW50KEdhbmdndWFuLkJlbGFqYXIucGVyLk1pbmdndSwgDQogICAgICAgIG5hbWUgPSAiRnJla3VlbnNpIikgJT4lDQogIG11dGF0ZShQZXJzZW50YXNlID0gcm91bmQoKEZyZWt1ZW5zaSAvIHN1bShGcmVrdWVuc2kpKSAqIDEwMCwgMikpICU+JSAgIyBNZW5naGl0dW5nIHBlcnNlbnRhc2UNCiAgcmVuYW1lKCJHYW5nZ3VhbiBCZWxhamFyIiA9IEdhbmdndWFuLkJlbGFqYXIucGVyLk1pbmdndSkgJT4lDQogIGFycmFuZ2UoZGVzYyhGcmVrdWVuc2kpKSAgIyBNZW5ndXJ1dGthbiBkYXJpIHlhbmcgdGVyYmVzYXIga2UgdGVya2VjaWwNCg0KIyBNZW5hbXBpbGthbiB0YWJlbCBkaXN0cmlidXNpDQprbml0cjo6a2FibGUodGFiZWxfZGF0YSkgDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQoNCiMgTWVueWltcGFuIHRhYmVsIGRpc3RyaWJ1c2kgc2ViYWdhaSB0YWJsZV9kYXRhIGFnYXIgc2VzdWFpIGRlbmdhbiBuYW1hIG9iamVrIGRpIHBsb3QNCnRhYmxlX2RhdGEgPC0gdGFiZWxfZGF0YQ0KDQojIE1lbWJ1YXQgZGlhZ3JhbSBiYXRhbmcgZGVuZ2FuIGdncGxvdDINCnAgPC0gZ2dwbG90KHRhYmxlX2RhdGEsIGFlcyh4ID0gYEdhbmdndWFuIEJlbGFqYXJgLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gRnJla3VlbnNpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsID0gYEdhbmdndWFuIEJlbGFqYXJgLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gcGFzdGUwKCJQZXJzZW50YXNlOiAiLCBQZXJzZW50YXNlLCAiJSIpKSkgKyAgIyBNZW5hbWJhaGthbiBwZXJzZW50YXNlIGRpIHRvb2x0aXANCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IEZyZWt1ZW5zaSksIA0KICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDEuMSksICAjIE1lbmFtcGlsa2FuIGhhbnlhIGZyZWt1ZW5zaSBkaSBsYWJlbA0KICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBzaXplID0gMykgKyAgIyBNZW5nYXR1ciB3YXJuYSBkYW4gdWt1cmFuIGxhYmVsDQogIGxhYnModGl0bGUgPSAiR2FuZ2d1YW4gQmVsYWphciIsDQogICAgICAgeCA9ICJHYW5nZ3VhbiBCZWxhamFyIiwNCiAgICAgICB5ID0gIkZyZWt1ZW5zaSIpICsNCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJTZXQyIikgKyAgIyBNZW5nZ3VuYWthbiBwYWxldCB3YXJuYQ0KICB0aGVtZV9taW5pbWFsKCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpDQoNCiMgTWVuZ29udmVyc2kgZ2dwbG90IG1lbmphZGkgcGxvdGx5IHVudHVrIGludGVyYWt0aWYgZGVuZ2FuIHRvb2x0aXAgcGVyc2VudGFzZQ0KcGxvdGx5X3Bsb3QgPC0gZ2dwbG90bHkocCwgdG9vbHRpcCA9IGMoIngiLCAieSIsICJ0ZXh0IikpDQoNCiMgTWVuYW1waWxrYW4gcGxvdCBpbnRlcmFrdGlmDQpwbG90bHlfcGxvdA0KYGBgDQpEaWFncmFtIGxpbmdrYXJhbiBpbmkgbWVudW5qdWtrYW4gZnJla3VlbnNpIGdhbmdndWFuIGRhbGFtIGphbSBiZWxhamFyIG1haGFzaXN3YSBzZXRpYXAgbWluZ2d1LiBTZWJhbnlhayAzMCUgbWFoYXNpc3dhIG1lbmdhbGFtaSBnYW5nZ3VhbiAxLTIga2FsaSBwZXIgbWluZ2d1LCAzMCUgbGFpbm55YSA1LTYga2FsaSwgc2VtZW50YXJhIDIwJSB0aWRhayBtZW5nYWxhbWkgZ2FuZ2d1YW4gc2FtYSBzZWthbGkgZGFuIDIwJSBsYWlubnlhIG1lbmdhbGFtaSBnYW5nZ3VhbiAzLTQga2FsaS4gS2VzaW1wdWxhbm55YSwgc2ViYWdpYW4gYmVzYXIgbWFoYXNpc3dhIG1lbmdhbGFtaSBnYW5nZ3VhbiBiZWxhamFyLCB5YW5nIG1lbnVuanVra2FuIHRhbnRhbmdhbiBkYWxhbSBtZW5nYXR1ciB3YWt0dSBhbnRhcmEga2VnaWF0YW4gb3JnYW5pc2FzaSBkYW4gYWthZGVtaWsuDQoNCiMjIEtFU0lNUFVMQU4NCg0KS2VzaW1wdWxhbg0KQmVyZGFzYXJrYW4gZGF0YSBpbmksIGRhbXBhayBwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkaXJhc2FrYW4gc2VjYXJhIG1lcmF0YSBvbGVoIG1haGFzaXN3YSBkYXJpIGtlZHVhIGplbmlzIGtlbGFtaW4uIE1heW9yaXRhcyBtYWhhc2lzd2EgbWVuZ2hhYmlza2FuIHdha3R1IHNlZGFuZyBkYWxhbSBvcmdhbmlzYXNpLCBkZW5nYW4gc2ViYWdpYW4gbGFpbm55YSB0ZXJsaWJhdCBsZWJpaCBiYW55YWsgYXRhdSBsZWJpaCBzZWRpa2l0LiBNZXNraXB1biBzZWJhZ2lhbiBiZXNhciBtYWhhc2lzd2EgbWVtaWxpa2kgSVBLIHlhbmcgYmFpaywgdGFudGFuZ2FuIG11bmN1bCBkYWxhbSBtZW5qYWdhIGtlc2VpbWJhbmdhbiBhbnRhcmEga2VnaWF0YW4gb3JnYW5pc2FzaSBkYW4gYWthZGVtaWsuIEJlYmVyYXBhIG1haGFzaXN3YSBtZWxhcG9ya2FuIGtlc3VsaXRhbiBkYWxhbSBtZW5nYXR1ciB3YWt0dSBiZWxhamFyIG1lcmVrYSBha2liYXQga2V0ZXJsaWJhdGFuIGRhbGFtIG9yZ2FuaXNhc2ksIHlhbmcgZGFwYXQgbWVtcGVuZ2FydWhpIGZva3VzIGFrYWRlbWlrIG1lcmVrYS4NCg0KU2VsYWluIGl0dSwgZ2FuZ2d1YW4gZGFsYW0gamFtIGJlbGFqYXIsIHNlcGVydGkgc3RyZXMgZGFuIGtlc3VsaXRhbiBtZW5nZWxvbGEgd2FrdHUsIG1lbmphZGkgbWFzYWxhaCB1dGFtYSBiYWdpIGJhbnlhayBtYWhhc2lzd2EuIFNlY2FyYSBrZXNlbHVydWhhbiwgbWFuYWplbWVuIHdha3R1IHlhbmcgYmFpayBkYW4gbWVuY2lwdGFrYW4gc3Vhc2FuYSB5YW5nIG55YW1hbiB1bnR1ayBiZWxhamFyIHNhbmdhdCBwZW50aW5nIGFnYXIgbWFoYXNpc3dhIGRhcGF0IG1lbmdvcHRpbWFsa2FuIHByZXN0YXNpIGFrYWRlbWlrIG1lcmVrYSBzYW1iaWwgdGV0YXAgYWt0aWYgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMuDQoNCiMgUkVGRVJFTlNJDQoNCkFsZ29yaXQubWEuICgyMDIyKS4gUGVudGluZ255YSBzdGF0aXN0aWthIGRhbGFtIGtlaGlkdXBhbiBzZWhhcmktaGFyaS4gQWxnb3JpdG1hLiBEaWFrc2VzIGRhcmkgaHR0cHM6Ly9hbGdvcml0Lm1hL2Jsb2cvcGVudGluZ255YS1zdGF0aXN0aWthLWRhbGFtLWtlaGlkdXBhbi1zZWhhcmktaGFyaS0yMDIyLw0KDQpTYW1wb2VybmEgVW5pdmVyc2l0eS4gKG4uZC4pLiBUZWtuaWsgcGVuZ3VtcHVsYW4gZGF0YTogQXJ0aSwgcHJvc2VzLCBkYW4gamVuaXMgZGF0YS4gU2FtcG9lcm5hIFVuaXZlcnNpdHkuIERpYWtzZXMgZGFyaSBodHRwczovL3d3dy5zYW1wb2VybmF1bml2ZXJzaXR5LmFjLmlkL2lkL3Rla25pay1wZW5ndW1wdWxhbi1kYXRhLWFydGktcHJvc2VzLWRhbi1qZW5pcy1kYXRhLw0KDQpLYXplZSBCbG9nLiAobi5kLikuIEplbmlzLWplbmlzIGRhdGEgZGFuIGNvbnRvaG55YS4gS2F6ZWUgQmxvZy4gRGlha3NlcyBkYXJpIGh0dHBzOi8vYmxvZy5rYXplZS5pZC9qZW5pcy1qZW5pcy1kYXRhLWRhbi1jb250b2hueWENCg0KRGVlcHVibGlzaC4gKG4uZC4pLiBDYXJhIG1lbnlhamlrYW4gZGF0YS4gRGVlcHVibGlzaC4gRGlha3NlcyBkYXJpIGh0dHBzOi8vcGVuZXJiaXRkZWVwdWJsaXNoLmNvbS9jYXJhLW1lbnlhamlrYW4tZGF0YS8NCg0KUHV0cmEsIEEuIFcuICgyMDE4KS4gUGVyaWxha3UgQWthZGVtaWsgQWt0aXZpcyAoU3R1ZGkgS2FzdXMgUGFkYSBNYWhhc2lzd2EgRmlzIFVOTSBZYW5nIEFrdGlmIGRpIE9yZ2FuaXNhc2kgRGFlcmFoKSAoRG9jdG9yYWwgZGlzc2VydGF0aW9uLCBVTklWRVJTSVRBUyBORUdFUkkgTUFLQVNTQVIpLmh0dHBzOi8vZXByaW50cy51bm0uYWMuaWQvMTE3NzUvIA0KDQpIYXJ5YW50aSwgQS4sICYgU2FudG9zbywgUi4gKDIwMjApLiBQcm9rcmFzdGluYXNpIGFrYWRlbWlrIHBhZGEgbWFoYXNpc3dhIG9yZ2FuaXNhc2kuIFNVS01BOiBKdXJuYWwgUGVuZWxpdGlhbiBQc2lrb2xvZ2ksIDEoMSkuaHR0cHM6Ly9qdXJuYWwudW50YWctc2J5LmFjLmlkL2luZGV4LnBocC9zdWttYS9hcnRpY2xlL3ZpZXcvMzU5MiANCg0KQWwgTXVzYXdpLCBILiAoMjAyNCkuIERhbXBhayBha3Rpdml0YXMgb3JnYW5pc2FzaSBpbnRlcm5hbCBrYW1wdXMgdGVyaGFkYXAga2Vha3RpZmFuIGFrYWRlbWlrIG1haGFzaXN3YSAoRG9jdG9yYWwgZGlzc2VydGF0aW9uLCBVSU4gU3VuYW4gR3VudW5nIERqYXRpIEJhbmR1bmcpLmh0dHBzOi8vZGlnaWxpYi51aW5zZ2QuYWMuaWQvOTc3MTUvIA0KDQpBeXUsIFMuLCBBeXUsIFMuIFAuLCBNdWtqaXphdCwgTC4sIEFyaWVzdGEsIEEuIEQuLCAmIEphZGlkYWgsIEkuIFQuICgyMDIzKS4gQU5BTElTSVMgSFVCVU5HQU4gS0VBS1RJRkFOIEJFUk9SR0FOSVNBU0kgVEVSSEFEQVAgSEFTSUwgQUtBREVNSUsgTUFIQVNJU1dBIFBST0dSQU0gU1RVREkgUEVORElESUtBTiBHVVJVIE1BRFJBU0FIIElCVElEQUlZQUggVUlOIFJBREVOIEZBVEFIIFBBTEVNQkFORy4gSklNUjogSm91cm5hbCBPZiBJbnRlcm5hdGlvbmFsIE11bHRpZGlzY2lwbGluYXJ5IFJlc2VhcmNoLCAyKDAyKSwgMTg5LTE5Ni5odHRwczovL2F6cmFtZWRpYS1pbmRvbmVzaWEuYXpyYW1lZGlhaW5kb25lc2lhLmNvbS9pbmRleC5waHAvSklNUi9hcnRpY2xlL3ZpZXcvODQ0IA0KDQpZYXppZHVsZmFsYWNoLCBBLiwgJiBMdWRpZ2RvLCBVLiAoMjAxMykuIERhbXBhayBrZXNlcnRhYW4gbWFoYXNpc3dhIHBhZGEgbGVtYmFnYSBrZW1haGFzaXN3YWFuIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrIChzdHVkaSBrYXN1cyBtYWhhc2lzd2EganVydXNhbiBha3VudGFuc2kgUzEgRmFrdWx0YXMgZWtvbm9taSBkYW4gYmlzbmlzIFVuaXZlcnNpdGFzIEJyYXdpamF5YSkuIEp1cm5hbCBJbG1pYWggTWFoYXNpc3dhIEZFQiwgMigxKS5odHRwczovL2ppbWZlYi51Yi5hYy5pZC9pbmRleC5waHAvamltZmViL2FydGljbGUvdmlldy85MDQgDQoNCg0KDQoNCg0K