Margin of Error

Sampling and Survey technique

Logo

Studi Kasus: Menangani Margin of Error dalam Metode Sampling

Latar Belakang

Sebuah universitas ingin melakukan survei untuk memperkirakan rata-rata pengeluaran makanan bulanan mahasiswanya. Tujuannya adalah mendapatkan estimasi yang akurat dan dapat digeneralisasi ke seluruh populasi mahasiswa, dengan margin of error (MoE) yang wajar. Untuk mencapai ini, peneliti mempertimbangkan dua metode sampling:

Sebuah universitas ingin melakukan survei untuk memperkirakan rata-rata pengeluaran makanan bulanan mahasiswanya. Tujuannya adalah mendapatkan estimasi yang akurat dan dapat digeneralisasi ke seluruh populasi mahasiswa, dengan margin of error (MoE) yang wajar. Untuk mencapai ini, peneliti mempertimbangkan dua metode sampling:

  1. Probability Sampling (Simple Random Sampling - SRS)

  2. Non-Probability Sampling (Convenience Sampling)

1. Probability Sampling (Simple Random Sampling - SRS)

Definisi

Probability Sampling adalah metode pengambilan sampel di mana setiap anggota populasi memiliki peluang yang sama untuk terpilih. Dalam kasus ini, Simple Random Sampling (SRS) digunakan.

Cara Kerja

Populasi mahasiswa diidentifikasi, dan sampel diambil secara acak dari populasi tersebut.

Setiap mahasiswa memiliki peluang yang sama untuk terpilih.

Data pengeluaran makanan bulanan dikumpulkan dari sampel yang terpilih.

Keuntungan

Akurasi tinggi: Karena sampel diambil secara acak, hasilnya dapat digeneralisasi ke seluruh populasi.

Margin of Error (MoE) dapat dihitung: MoE memberikan gambaran tentang seberapa jauh estimasi sampel mungkin berbeda dari nilai populasi sebenarnya.

Simulasi dengan R Markdown

Berikut adalah kode R Markdown untuk mensimulasikan Simple Random Sampling (SRS) dan menghitung Margin of Error (MoE):

# Parameter
populasi_mean <- 1200000  # Rata-rata populasi (dalam rupiah)
populasi_std <- 200000    # Standar deviasi populasi
ukuran_sampel <- 100      # Ukuran sampel
tingkat_kepercayaan <- 0.95

# Simulasi Simple Random Sampling (SRS)
set.seed(123)
srs_sampel <- rnorm(ukuran_sampel, mean = populasi_mean, sd = populasi_std)

# Menghitung rata-rata dan standar deviasi sampel
srs_mean <- mean(srs_sampel)
srs_std <- sd(srs_sampel)

# Menghitung Margin of Error (MoE)
z_score <- qnorm((1 + tingkat_kepercayaan) / 2)
srs_moe <- z_score * (srs_std / sqrt(ukuran_sampel))

# Hasil
cat("Simple Random Sampling (SRS):\n")
## Simple Random Sampling (SRS):
cat("Rata-rata sampel:", srs_mean, "\n")
## Rata-rata sampel: 1218081
cat("Margin of Error (MoE):", srs_moe, "\n")
## Margin of Error (MoE): 35781.72
cat("Interval Kepercayaan 95%: [", srs_mean - srs_moe, ", ", srs_mean + srs_moe, "]\n")
## Interval Kepercayaan 95%: [ 1182299 ,  1253863 ]

2. Non-Probability Sampling (Convenience Sampling)

Definisi

Non-Probability Sampling adalah metode pengambilan sampel di mana tidak semua anggota populasi memiliki peluang yang sama untuk terpilih. Dalam kasus ini, Convenience Sampling digunakan, di mana sampel diambil berdasarkan kemudahan akses.

Cara Kerja

Peneliti memilih mahasiswa yang mudah diakses, seperti mahasiswa di kantin atau di sekitar kampus.

Data pengeluaran makanan bulanan dikumpulkan dari sampel tersebut.

Keuntungan

Mudah dan cepat: Tidak memerlukan kerangka sampling yang lengkap.

Biaya rendah: Karena sampel diambil dari populasi yang mudah diakses.

Kekurangan

Risiko bias: Sampel mungkin tidak mewakili seluruh populasi.

Margin of Error (MoE) tidak dapat dihitung: Karena sampel tidak diambil secara acak, hasilnya tidak dapat digeneralisasi dengan tingkat kepercayaan yang tinggi.

Simulasi dengan R Markdown

Berikut adalah kode R Markdown untuk mensimulasikan Convenience Sampling:

# Simulasi Convenience Sampling (dengan asumsi bias)
set.seed(456)
conv_sampel <- rnorm(ukuran_sampel, mean = populasi_mean - 100000, sd = populasi_std + 50000)

# Menghitung rata-rata sampel
conv_mean <- mean(conv_sampel)

# Hasil
cat("Convenience Sampling:\n")
## Convenience Sampling:
cat("Rata-rata sampel:", conv_mean, "\n")
## Rata-rata sampel: 1130144
cat("Catatan: Margin of Error (MoE) tidak dapat dihitung karena sampel bias.\n")
## Catatan: Margin of Error (MoE) tidak dapat dihitung karena sampel bias.

Perbandingan Kedua Metode

## Warning: package 'knitr' was built under R version 4.4.2
## Warning: package 'kableExtra' was built under R version 4.4.3
Aspek Probability.Sampling..SRS. Non.Probability.Sampling..Convenience.Sampling.
Akurasi Tinggi, karena sampel acak Rendah, karena sampel bias
Generalizability Dapat digeneralisasi ke populasi Tidak dapat digeneralisasi dengan baik
Margin of Error (MoE) Dapat dihitung secara statistik Tidak dapat dihitung secara statistik
Kemudahan Lebih rumit dan memakan waktu Mudah dan cepat
Biaya Lebih tinggi Lebih rendah

Visualisasi Hasil

Berikut adalah visualisasi perbandingan antara kedua metode:

library(ggplot2)

# Data untuk visualisasi
data <- data.frame(
  Metode = c("SRS", "Convenience Sampling"),
  Rata_Rata = c(srs_mean, conv_mean),
  MoE = c(srs_moe, NA)
)

# Plot
ggplot(data, aes(x = Metode, y = Rata_Rata, fill = Metode)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(aes(ymin = Rata_Rata - MoE, ymax = Rata_Rata + MoE), width = 0.2, color = "Blue") +
  labs(title = "Perbandingan Rata-Rata Pengeluaran Makanan Bulanan",
       y = "Rata-Rata (Rp)",
       x = "Metode Sampling") +
  theme_minimal()

## Kesimpulan Probability Sampling (SRS) lebih direkomendasikan jika tujuan penelitian adalah mendapatkan estimasi yang akurat dan dapat digeneralisasi dengan margin of error yang dapat dihitung. Metode ini memastikan bahwa setiap anggota populasi memiliki peluang yang sama untuk terpilih, sehingga hasilnya lebih representatif.

Non-Probability Sampling (Convenience Sampling) cocok untuk studi eksploratif atau ketika sumber daya terbatas, tetapi hasilnya tidak dapat digeneralisasi dengan tingkat kepercayaan yang tinggi. Metode ini rentan terhadap bias, sehingga estimasi yang dihasilkan mungkin tidak akurat.

LS0tDQp0aXRsZTogIk1hcmdpbiBvZiBFcnJvciINCnN1YnRpdGxlOiAiU2FtcGxpbmcgYW5kIFN1cnZleSB0ZWNobmlxdWUiDQphdXRob3I6ICJNdWhhbW1hZCBOYWJpbCBQcmF0YW1hIg0KZGF0ZTogImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJUIgJWQsICVZJylgIg0Kb3V0cHV0Og0KICBybWRmb3JtYXRzOjpyZWFkdGhlZG93bjoNCiAgICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQ0KICAgIHRodW1ibmFpbHM6IHRydWUNCiAgICBsaWdodGJveDogdHJ1ZQ0KICAgIGdhbGxlcnk6IHRydWUNCiAgICBsaWJfZGlyOiBsaWJzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCINCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93Ig0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGNzczogInN0eWxlLmNzcyINCi0tLQ0KDQo8aW1nIGlkPSJpc2lfbmFtYSIgc3JjPSJDOi9Vc2Vycy9NIE5hYmlsIFByYXRhbWEvT25lRHJpdmUvUGljdHVyZXMvU2NyZWVuc2hvdHMvR2FtYmFyIFdoYXRzQXBwIDIwMjQtMTItMDYgcHVrdWwgMTMuMzMuMTVfYzNmZDBmYzcuanBnIiBhbHQ9IkxvZ28iIHN0eWxlPSJ3aWR0aDoyMDBweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsiPg0KDQojIFN0dWRpIEthc3VzOiAqKk1lbmFuZ2FuaSBNYXJnaW4gb2YgRXJyb3IgZGFsYW0gTWV0b2RlIFNhbXBsaW5nKioNCg0KIyMgTGF0YXIgQmVsYWthbmcNClNlYnVhaCB1bml2ZXJzaXRhcyBpbmdpbiBtZWxha3VrYW4gc3VydmVpIHVudHVrIG1lbXBlcmtpcmFrYW4gcmF0YS1yYXRhIHBlbmdlbHVhcmFuIG1ha2FuYW4gYnVsYW5hbiBtYWhhc2lzd2FueWEuIFR1anVhbm55YSBhZGFsYWggbWVuZGFwYXRrYW4gZXN0aW1hc2kgeWFuZyBha3VyYXQgZGFuIGRhcGF0IGRpZ2VuZXJhbGlzYXNpIGtlIHNlbHVydWggcG9wdWxhc2kgbWFoYXNpc3dhLCBkZW5nYW4gbWFyZ2luIG9mIGVycm9yIChNb0UpIHlhbmcgd2FqYXIuIFVudHVrIG1lbmNhcGFpIGluaSwgcGVuZWxpdGkgbWVtcGVydGltYmFuZ2thbiBkdWEgbWV0b2RlIHNhbXBsaW5nOg0KDQpTZWJ1YWggdW5pdmVyc2l0YXMgaW5naW4gbWVsYWt1a2FuIHN1cnZlaSB1bnR1ayBtZW1wZXJraXJha2FuIHJhdGEtcmF0YSBwZW5nZWx1YXJhbiBtYWthbmFuIGJ1bGFuYW4gbWFoYXNpc3dhbnlhLiBUdWp1YW5ueWEgYWRhbGFoIG1lbmRhcGF0a2FuIGVzdGltYXNpIHlhbmcgYWt1cmF0IGRhbiBkYXBhdCBkaWdlbmVyYWxpc2FzaSBrZSBzZWx1cnVoIHBvcHVsYXNpIG1haGFzaXN3YSwgZGVuZ2FuIG1hcmdpbiBvZiBlcnJvciAoTW9FKSB5YW5nIHdhamFyLiBVbnR1ayBtZW5jYXBhaSBpbmksIHBlbmVsaXRpIG1lbXBlcnRpbWJhbmdrYW4gZHVhIG1ldG9kZSBzYW1wbGluZzoNCg0KMS4gUHJvYmFiaWxpdHkgU2FtcGxpbmcgKFNpbXBsZSBSYW5kb20gU2FtcGxpbmcgLSBTUlMpDQoNCjIuIE5vbi1Qcm9iYWJpbGl0eSBTYW1wbGluZyAoQ29udmVuaWVuY2UgU2FtcGxpbmcpDQoNCiMjICoqMS4gUHJvYmFiaWxpdHkgU2FtcGxpbmcgKFNpbXBsZSBSYW5kb20gU2FtcGxpbmcgLSBTUlMpKioNCg0KIyMjIERlZmluaXNpDQpQcm9iYWJpbGl0eSBTYW1wbGluZyBhZGFsYWggbWV0b2RlIHBlbmdhbWJpbGFuIHNhbXBlbCBkaSBtYW5hIHNldGlhcCBhbmdnb3RhIHBvcHVsYXNpIG1lbWlsaWtpIHBlbHVhbmcgeWFuZyBzYW1hIHVudHVrIHRlcnBpbGloLiBEYWxhbSBrYXN1cyBpbmksIFNpbXBsZSBSYW5kb20gU2FtcGxpbmcgKFNSUykgZGlndW5ha2FuLg0KDQojIyMgQ2FyYSBLZXJqYQ0KUG9wdWxhc2kgbWFoYXNpc3dhIGRpaWRlbnRpZmlrYXNpLCBkYW4gc2FtcGVsIGRpYW1iaWwgc2VjYXJhIGFjYWsgZGFyaSBwb3B1bGFzaSB0ZXJzZWJ1dC4NCg0KU2V0aWFwIG1haGFzaXN3YSBtZW1pbGlraSBwZWx1YW5nIHlhbmcgc2FtYSB1bnR1ayB0ZXJwaWxpaC4NCg0KRGF0YSBwZW5nZWx1YXJhbiBtYWthbmFuIGJ1bGFuYW4gZGlrdW1wdWxrYW4gZGFyaSBzYW1wZWwgeWFuZyB0ZXJwaWxpaC4NCg0KIyMjIEtldW50dW5nYW4NCkFrdXJhc2kgdGluZ2dpOiBLYXJlbmEgc2FtcGVsIGRpYW1iaWwgc2VjYXJhIGFjYWssIGhhc2lsbnlhIGRhcGF0IGRpZ2VuZXJhbGlzYXNpIGtlIHNlbHVydWggcG9wdWxhc2kuDQoNCioqTWFyZ2luIG9mIEVycm9yIChNb0UpIGRhcGF0IGRpaGl0dW5nOioqIE1vRSBtZW1iZXJpa2FuIGdhbWJhcmFuIHRlbnRhbmcgc2ViZXJhcGEgamF1aCBlc3RpbWFzaSBzYW1wZWwgbXVuZ2tpbiBiZXJiZWRhIGRhcmkgbmlsYWkgcG9wdWxhc2kgc2ViZW5hcm55YS4NCg0KIyMjIFNpbXVsYXNpIGRlbmdhbiBSIE1hcmtkb3duDQpCZXJpa3V0IGFkYWxhaCBrb2RlIFIgTWFya2Rvd24gdW50dWsgbWVuc2ltdWxhc2lrYW4gU2ltcGxlIFJhbmRvbSBTYW1wbGluZyAoU1JTKSBkYW4gbWVuZ2hpdHVuZyBNYXJnaW4gb2YgRXJyb3IgKE1vRSk6DQoNCmBgYHtyfQ0KIyBQYXJhbWV0ZXINCnBvcHVsYXNpX21lYW4gPC0gMTIwMDAwMCAgIyBSYXRhLXJhdGEgcG9wdWxhc2kgKGRhbGFtIHJ1cGlhaCkNCnBvcHVsYXNpX3N0ZCA8LSAyMDAwMDAgICAgIyBTdGFuZGFyIGRldmlhc2kgcG9wdWxhc2kNCnVrdXJhbl9zYW1wZWwgPC0gMTAwICAgICAgIyBVa3VyYW4gc2FtcGVsDQp0aW5na2F0X2tlcGVyY2F5YWFuIDwtIDAuOTUNCg0KIyBTaW11bGFzaSBTaW1wbGUgUmFuZG9tIFNhbXBsaW5nIChTUlMpDQpzZXQuc2VlZCgxMjMpDQpzcnNfc2FtcGVsIDwtIHJub3JtKHVrdXJhbl9zYW1wZWwsIG1lYW4gPSBwb3B1bGFzaV9tZWFuLCBzZCA9IHBvcHVsYXNpX3N0ZCkNCg0KIyBNZW5naGl0dW5nIHJhdGEtcmF0YSBkYW4gc3RhbmRhciBkZXZpYXNpIHNhbXBlbA0Kc3JzX21lYW4gPC0gbWVhbihzcnNfc2FtcGVsKQ0Kc3JzX3N0ZCA8LSBzZChzcnNfc2FtcGVsKQ0KDQojIE1lbmdoaXR1bmcgTWFyZ2luIG9mIEVycm9yIChNb0UpDQp6X3Njb3JlIDwtIHFub3JtKCgxICsgdGluZ2thdF9rZXBlcmNheWFhbikgLyAyKQ0Kc3JzX21vZSA8LSB6X3Njb3JlICogKHNyc19zdGQgLyBzcXJ0KHVrdXJhbl9zYW1wZWwpKQ0KDQojIEhhc2lsDQpjYXQoIlNpbXBsZSBSYW5kb20gU2FtcGxpbmcgKFNSUyk6XG4iKQ0KY2F0KCJSYXRhLXJhdGEgc2FtcGVsOiIsIHNyc19tZWFuLCAiXG4iKQ0KY2F0KCJNYXJnaW4gb2YgRXJyb3IgKE1vRSk6Iiwgc3JzX21vZSwgIlxuIikNCmNhdCgiSW50ZXJ2YWwgS2VwZXJjYXlhYW4gOTUlOiBbIiwgc3JzX21lYW4gLSBzcnNfbW9lLCAiLCAiLCBzcnNfbWVhbiArIHNyc19tb2UsICJdXG4iKQ0KYGBgDQojIyAqKjIuIE5vbi1Qcm9iYWJpbGl0eSBTYW1wbGluZyAoQ29udmVuaWVuY2UgU2FtcGxpbmcpKioNCg0KIyMjIERlZmluaXNpDQpOb24tUHJvYmFiaWxpdHkgU2FtcGxpbmcgYWRhbGFoIG1ldG9kZSBwZW5nYW1iaWxhbiBzYW1wZWwgZGkgbWFuYSB0aWRhayBzZW11YSBhbmdnb3RhIHBvcHVsYXNpIG1lbWlsaWtpIHBlbHVhbmcgeWFuZyBzYW1hIHVudHVrIHRlcnBpbGloLiBEYWxhbSBrYXN1cyBpbmksIENvbnZlbmllbmNlIFNhbXBsaW5nIGRpZ3VuYWthbiwgZGkgbWFuYSBzYW1wZWwgZGlhbWJpbCBiZXJkYXNhcmthbiBrZW11ZGFoYW4gYWtzZXMuDQoNCiMjIyBDYXJhIEtlcmphDQpQZW5lbGl0aSBtZW1pbGloIG1haGFzaXN3YSB5YW5nIG11ZGFoIGRpYWtzZXMsIHNlcGVydGkgbWFoYXNpc3dhIGRpIGthbnRpbiBhdGF1IGRpIHNla2l0YXIga2FtcHVzLg0KDQpEYXRhIHBlbmdlbHVhcmFuIG1ha2FuYW4gYnVsYW5hbiBkaWt1bXB1bGthbiBkYXJpIHNhbXBlbCB0ZXJzZWJ1dC4NCg0KIyMjIEtldW50dW5nYW4NCk11ZGFoIGRhbiBjZXBhdDogVGlkYWsgbWVtZXJsdWthbiBrZXJhbmdrYSBzYW1wbGluZyB5YW5nIGxlbmdrYXAuDQoNCkJpYXlhIHJlbmRhaDogS2FyZW5hIHNhbXBlbCBkaWFtYmlsIGRhcmkgcG9wdWxhc2kgeWFuZyBtdWRhaCBkaWFrc2VzLg0KDQojIyMgS2VrdXJhbmdhbg0KUmlzaWtvIGJpYXM6IFNhbXBlbCBtdW5na2luIHRpZGFrIG1ld2FraWxpIHNlbHVydWggcG9wdWxhc2kuDQoNCioqTWFyZ2luIG9mIEVycm9yIChNb0UpIHRpZGFrIGRhcGF0IGRpaGl0dW5nOioqIEthcmVuYSBzYW1wZWwgdGlkYWsgZGlhbWJpbCBzZWNhcmEgYWNhaywgaGFzaWxueWEgdGlkYWsgZGFwYXQgZGlnZW5lcmFsaXNhc2kgZGVuZ2FuIHRpbmdrYXQga2VwZXJjYXlhYW4geWFuZyB0aW5nZ2kuDQoNCiMjIyBTaW11bGFzaSBkZW5nYW4gUiBNYXJrZG93bg0KQmVyaWt1dCBhZGFsYWgga29kZSBSIE1hcmtkb3duIHVudHVrIG1lbnNpbXVsYXNpa2FuIENvbnZlbmllbmNlIFNhbXBsaW5nOg0KYGBge3J9DQojIFNpbXVsYXNpIENvbnZlbmllbmNlIFNhbXBsaW5nIChkZW5nYW4gYXN1bXNpIGJpYXMpDQpzZXQuc2VlZCg0NTYpDQpjb252X3NhbXBlbCA8LSBybm9ybSh1a3VyYW5fc2FtcGVsLCBtZWFuID0gcG9wdWxhc2lfbWVhbiAtIDEwMDAwMCwgc2QgPSBwb3B1bGFzaV9zdGQgKyA1MDAwMCkNCg0KIyBNZW5naGl0dW5nIHJhdGEtcmF0YSBzYW1wZWwNCmNvbnZfbWVhbiA8LSBtZWFuKGNvbnZfc2FtcGVsKQ0KDQojIEhhc2lsDQpjYXQoIkNvbnZlbmllbmNlIFNhbXBsaW5nOlxuIikNCmNhdCgiUmF0YS1yYXRhIHNhbXBlbDoiLCBjb252X21lYW4sICJcbiIpDQpjYXQoIkNhdGF0YW46IE1hcmdpbiBvZiBFcnJvciAoTW9FKSB0aWRhayBkYXBhdCBkaWhpdHVuZyBrYXJlbmEgc2FtcGVsIGJpYXMuXG4iKQ0KYGBgDQojIyAqKlBlcmJhbmRpbmdhbiBLZWR1YSBNZXRvZGUqKg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmxpYnJhcnkoa25pdHIpDQpsaWJyYXJ5KGthYmxlRXh0cmEpDQoNCmRhdGEgPC0gZGF0YS5mcmFtZSgNCiAgQXNwZWsgPSBjKCJBa3VyYXNpIiwgIkdlbmVyYWxpemFiaWxpdHkiLCAiTWFyZ2luIG9mIEVycm9yIChNb0UpIiwgIktlbXVkYWhhbiIsICJCaWF5YSIpLA0KICBgUHJvYmFiaWxpdHkgU2FtcGxpbmcgKFNSUylgID0gYygiVGluZ2dpLCBrYXJlbmEgc2FtcGVsIGFjYWsiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGFwYXQgZGlnZW5lcmFsaXNhc2kga2UgcG9wdWxhc2kiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGFwYXQgZGloaXR1bmcgc2VjYXJhIHN0YXRpc3RpayIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZWJpaCBydW1pdCBkYW4gbWVtYWthbiB3YWt0dSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZWJpaCB0aW5nZ2kiKSwNCiAgYE5vbi1Qcm9iYWJpbGl0eSBTYW1wbGluZyAoQ29udmVuaWVuY2UgU2FtcGxpbmcpYCA9IGMoIlJlbmRhaCwga2FyZW5hIHNhbXBlbCBiaWFzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRpZGFrIGRhcGF0IGRpZ2VuZXJhbGlzYXNpIGRlbmdhbiBiYWlrIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRpZGFrIGRhcGF0IGRpaGl0dW5nIHNlY2FyYSBzdGF0aXN0aWsiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTXVkYWggZGFuIGNlcGF0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlYmloIHJlbmRhaCIpDQopDQoNCmthYmxlKGRhdGEsIGZvcm1hdCA9ICJodG1sIiwgYWxpZ24gPSAibCIsIGVzY2FwZSA9IEZBTFNFKSAlPiUNCiAga2FibGVfc3R5bGluZygic3RyaXBlZCIsIGZ1bGxfd2lkdGggPSBGQUxTRSkNCmBgYA0KDQojIyAqKlZpc3VhbGlzYXNpIEhhc2lsKioNCkJlcmlrdXQgYWRhbGFoIHZpc3VhbGlzYXNpIHBlcmJhbmRpbmdhbiBhbnRhcmEga2VkdWEgbWV0b2RlOg0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCg0KIyBEYXRhIHVudHVrIHZpc3VhbGlzYXNpDQpkYXRhIDwtIGRhdGEuZnJhbWUoDQogIE1ldG9kZSA9IGMoIlNSUyIsICJDb252ZW5pZW5jZSBTYW1wbGluZyIpLA0KICBSYXRhX1JhdGEgPSBjKHNyc19tZWFuLCBjb252X21lYW4pLA0KICBNb0UgPSBjKHNyc19tb2UsIE5BKQ0KKQ0KDQojIFBsb3QNCmdncGxvdChkYXRhLCBhZXMoeCA9IE1ldG9kZSwgeSA9IFJhdGFfUmF0YSwgZmlsbCA9IE1ldG9kZSkpICsNCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIikgKw0KICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gUmF0YV9SYXRhIC0gTW9FLCB5bWF4ID0gUmF0YV9SYXRhICsgTW9FKSwgd2lkdGggPSAwLjIsIGNvbG9yID0gIkJsdWUiKSArDQogIGxhYnModGl0bGUgPSAiUGVyYmFuZGluZ2FuIFJhdGEtUmF0YSBQZW5nZWx1YXJhbiBNYWthbmFuIEJ1bGFuYW4iLA0KICAgICAgIHkgPSAiUmF0YS1SYXRhIChScCkiLA0KICAgICAgIHggPSAiTWV0b2RlIFNhbXBsaW5nIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KIyMgKipLZXNpbXB1bGFuKioNCioqUHJvYmFiaWxpdHkgU2FtcGxpbmcgKFNSUykqKiBsZWJpaCBkaXJla29tZW5kYXNpa2FuIGppa2EgdHVqdWFuIHBlbmVsaXRpYW4gYWRhbGFoIG1lbmRhcGF0a2FuIGVzdGltYXNpIHlhbmcgYWt1cmF0IGRhbiBkYXBhdCBkaWdlbmVyYWxpc2FzaSBkZW5nYW4gbWFyZ2luIG9mIGVycm9yIHlhbmcgZGFwYXQgZGloaXR1bmcuIE1ldG9kZSBpbmkgbWVtYXN0aWthbiBiYWh3YSBzZXRpYXAgYW5nZ290YSBwb3B1bGFzaSBtZW1pbGlraSBwZWx1YW5nIHlhbmcgc2FtYSB1bnR1ayB0ZXJwaWxpaCwgc2VoaW5nZ2EgaGFzaWxueWEgbGViaWggcmVwcmVzZW50YXRpZi4NCg0KKipOb24tUHJvYmFiaWxpdHkgU2FtcGxpbmcgKENvbnZlbmllbmNlIFNhbXBsaW5nKSoqIGNvY29rIHVudHVrIHN0dWRpIGVrc3Bsb3JhdGlmIGF0YXUga2V0aWthIHN1bWJlciBkYXlhIHRlcmJhdGFzLCB0ZXRhcGkgaGFzaWxueWEgdGlkYWsgZGFwYXQgZGlnZW5lcmFsaXNhc2kgZGVuZ2FuIHRpbmdrYXQga2VwZXJjYXlhYW4geWFuZyB0aW5nZ2kuIE1ldG9kZSBpbmkgcmVudGFuIHRlcmhhZGFwIGJpYXMsIHNlaGluZ2dhIGVzdGltYXNpIHlhbmcgZGloYXNpbGthbiBtdW5na2luIHRpZGFrIGFrdXJhdC4NCg0KIyMgKlJFRkVSRU5TSSoNCmh0dHBzOi8vYm9va2Rvd24ub3JnL2RzY2llbmNlbGFicy9zYW1wbGluZ19hbmRfc3VydmV5X3RlY2huaXF1ZXMvZG9jcy8wNC1NYXJnaW4tb2YtRXJyb3IuaHRtbCA=