Tugas Pertemuan 12

Logo

Studi Kasus 1

Diketahui

Probabilitas:

  • Probabilitas produk cacat \(P(D = \text{Yes}) = 5\% = 0.05\)

  • Probabilitas produk tidak cacat \(P(D = \text{No}) = 95\% = 0.95\)

  • Probabilitas penggunaan komponen berkualitas rendah \(P(C = \text{Low} | D = \text{Yes}) = 80\% = 0.8\)

  • Probabilitas penggunaan komponen berkualitas rendah \(P(C = \text{Low} | D = \text{No}) = 20\% = 0.2\)

  • Probabilitas proses produksi di bawah standar \(P(P = \text{Below} | D = \text{Yes}) = 70\% = 0.7\)

  • Probabilitas proses produksi di bawah standar \(P(P = \text{Below} | D = \text{No}) = 30\% = 0.3\)

Pertanyaan Berapa probabilitas bahwa suatu produk akan cacat (\(D = \text{Yes}\)), jika diketahui:

  1. Komponen yang digunakan berkualitas rendah (\(C = \text{Low}\)),

  2. Proses produksi dilakukan di bawah standar (\(P = \text{Below}\)).

Gunakan Teorema Bayes.


Jawaban

Gunakan formula Teorema Bayes:

\[ P(D = \text{Yes} | C = \text{Low}, P = \text{Below}) = \frac{P(D = \text{Yes}) \cdot P(C = \text{Low} | D = \text{Yes}) \cdot P(P = \text{Below} | D = \text{Yes})}{P(C = \text{Low}, P = \text{Below})} \]


Langkah-langkah

1. Hitung \(P(D = \text{Yes}, C = \text{Low}, P = \text{Below})\):

Rumus: \[ P(D = \text{Yes}, C = \text{Low}, P = \text{Below}) = P(D = \text{Yes}) \cdot P(C = \text{Low} | D = \text{Yes}) \cdot P(P = \text{Below} | D = \text{Yes}) \]

Substitusi angka: \[ P(D = \text{Yes}, C = \text{Low}, P = \text{Below}) = 0.05 \cdot 0.8 \cdot 0.7 \]

Hasil: \[ P(D = \text{Yes}, C = \text{Low}, P = \text{Below}) = 0.028 \]


2. Hitung \(P(C = \text{Low}, P = \text{Below})\):

Menggunakan aturan total probabilitas: \[ P(C = \text{Low}, P = \text{Below}) = P(D = \text{Yes}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{Yes}) + P(D = \text{No}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{No}) \]

Bagian 1: \(P(D = \text{Yes}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{Yes})\):

Rumus: \[ P(D = \text{Yes}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{Yes}) = P(D = \text{Yes}) \cdot P(C = \text{Low} | D = \text{Yes}) \cdot P(P = \text{Below} | D = \text{Yes}) \]

Substitusi angka: \[ P(D = \text{Yes}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{Yes}) = 0.05 \cdot 0.8 \cdot 0.7 \]

Hasil: \[ P(D = \text{Yes}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{Yes}) = 0.028 \]

Bagian 2: \(P(D = \text{No}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{No})\):

Rumus: \[ P(D = \text{No}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{No}) = P(D = \text{No}) \cdot P(C = \text{Low} | D = \text{No}) \cdot P(P = \text{Below} | D = \text{No}) \]

Substitusi angka: \[ P(D = \text{No}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{No}) = 0.95 \cdot 0.2 \cdot 0.3 \]

Hasil: \[ P(D = \text{No}) \cdot P(C = \text{Low}, P = \text{Below} | D = \text{No}) = 0.057 \]

Total \(P(C = \text{Low}, P = \text{Below})\): \[ P(C = \text{Low}, P = \text{Below}) = 0.028 + 0.057 = 0.085 \]


3. Hitung \(P(D = \text{Yes} | C = \text{Low}, P = \text{Below})\):

Rumus: \[ P(D = \text{Yes} | C = \text{Low}, P = \text{Below}) = \frac{P(D = \text{Yes}, C = \text{Low}, P = \text{Below})}{P(C = \text{Low}, P = \text{Below})} \]

Substitusi angka: \[ P(D = \text{Yes} | C = \text{Low}, P = \text{Below}) = \frac{0.028}{0.085} \]

Hasil: \[ P(D = \text{Yes} | C = \text{Low}, P = \text{Below}) = 0.3294 \]


Hasil Akhir

Probabilitas bahwa suatu produk akan cacat (\(D = \text{Yes}\)), jika diketahui bahwa produk menggunakan komponen berkualitas rendah (\(C = \text{Low}\)) dan proses produksinya di bawah standar (\(P = \text{Below}\)), adalah 32.94% atau 0.3294.

Studi Kasus 2

Diketahui

Probabilitas dasar:

  • \(P(F) = 0.01\) (Probabilitas transaksi adalah penipuan).

  • \(P(\neg F) = 0.99\) (Probabilitas transaksi bukan penipuan).

Kombinasi karakteristik:

  1. Lokasi asing: \(P(L = \text{Foreign}) = 0.20\),

  2. Jumlah transaksi tinggi: \(P(A = \text{High}) = 0.10\),

  3. Metode pembayaran kartu kredit: \(P(M = \text{CreditCard}) = 0.50\).

Probabilitas bersyarat untuk transaksi penipuan:

  • \(P(L = \text{Foreign} | F) = 0.40\),

  • \(P(A = \text{High} | F) = 0.50\),

  • \(P(M = \text{CreditCard} | F) = 0.60\).

Probabilitas bersyarat untuk transaksi non-penipuan:

  • \(P(L = \text{Foreign} | \neg F) = 0.10\),

  • \(P(A = \text{High} | \neg F) = 0.05\),

  • \(P(M = \text{CreditCard} | \neg F) = 0.30\).


Langkah Langkah

2. Hitung \(P(\text{Combination} | F)\)

Probabilitas semua kondisi terjadi bersamaan, diberikan transaksi adalah penipuan: \[ P(\text{Combination} | F) = P(L = \text{Foreign} | F) \cdot P(A = \text{High} | F) \cdot P(M = \text{CreditCard} | F) \]

Substitusi angka: \[ P(\text{Combination} | F) = 0.40 \cdot 0.50 \cdot 0.60 \]

Perhitungan: \[ P(\text{Combination} | F) = 0.12 \]


3. Hitung \(P(\text{Combination} | \neg F)\)

Probabilitas semua kondisi terjadi bersamaan, diberikan transaksi bukan penipuan: \[ P(\text{Combination} | \neg F) = P(L = \text{Foreign} | \neg F) \cdot P(A = \text{High} | \neg F) \cdot P(M = \text{CreditCard} | \neg F) \]

Substitusi angka: \[ P(\text{Combination} | \neg F) = 0.10 \cdot 0.05 \cdot 0.30 \]

Perhitungan: \[ P(\text{Combination} | \neg F) = 0.0015 \]


4. Hitung \(P(\text{Combination})\)

Menggunakan aturan total probabilitas: \[ P(\text{Combination}) = P(\text{Combination} | F) \cdot P(F) + P(\text{Combination} | \neg F) \cdot P(\neg F) \]

Substitusi angka: \[ P(\text{Combination}) = (0.12 \cdot 0.01) + (0.0015 \cdot 0.99) \]

Perhitungan: \[ P(\text{Combination}) = 0.0012 + 0.001485 = 0.002685 \]


5. Hitung \(P(F | \text{Combination})\)

Gunakan Teorema Bayes: \[ P(F | \text{Combination}) = \frac{P(\text{Combination} | F) \cdot P(F)}{P(\text{Combination})} \]

Substitusi angka: \[ P(F | \text{Combination}) = \frac{0.12 \cdot 0.01}{0.002685} \]

Perhitungan: \[ P(F | \text{Combination}) = \frac{0.0012}{0.002685} = 0.4472 \]

Konversi ke persentase: \[ P(F | \text{Combination}) = 44.72\% \]


Hasil Akhir

Probabilitas transaksi adalah penipuan, diberikan kombinasi karakteristik tersebut, adalah 44.72%.

LS0tDQp0aXRsZTogIlR1Z2FzIFBlcnRlbXVhbiAxMiINCnN1YnRpdGxlOiAiIg0KYXV0aG9yOiAiTS4gUmFnaWwgUml6a2kgTXVseWEgKDUyMjQwMDI3KSINCmRhdGU6ICAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJlYWR0aGVkb3duOiAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgdGh1bWJuYWlsczogdHJ1ZQ0KICAgIGxpZ2h0Ym94OiB0cnVlDQogICAgZ2FsbGVyeTogdHJ1ZQ0KICAgIGxpYl9kaXI6IGxpYnMNCiAgICBkZl9wcmludDogInBhZ2VkIg0KICAgIGNvZGVfZm9sZGluZzogInNob3ciDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgY3NzOiAic3R5bGUuY3NzIg0KLS0tDQoNCjxpbWcgaWQ9ImxvZ28tdXRhbWEiIHNyYz0iQ292ZXIuanBlZz9yYXc9dHJ1ZSIgYWx0PSJMb2dvIiBzdHlsZT0id2lkdGg6MjAwcHg7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IGF1dG87Ij4NCg0KIyBTdHVkaSBLYXN1cyAxDQoNCg0KIyMgKipEaWtldGFodWkqKg0KDQoqKlByb2JhYmlsaXRhczoqKg0KDQotIFByb2JhYmlsaXRhcyBwcm9kdWsgY2FjYXQgXCggUChEID0gXHRleHR7WWVzfSkgPSA1XCUgPSAwLjA1IFwpDQoNCi0gUHJvYmFiaWxpdGFzIHByb2R1ayB0aWRhayBjYWNhdCBcKCBQKEQgPSBcdGV4dHtOb30pID0gOTVcJSA9IDAuOTUgXCkNCg0KLSBQcm9iYWJpbGl0YXMgcGVuZ2d1bmFhbiBrb21wb25lbiBiZXJrdWFsaXRhcyByZW5kYWggXCggUChDID0gXHRleHR7TG93fSB8IEQgPSBcdGV4dHtZZXN9KSA9IDgwXCUgPSAwLjggXCkNCg0KLSBQcm9iYWJpbGl0YXMgcGVuZ2d1bmFhbiBrb21wb25lbiBiZXJrdWFsaXRhcyByZW5kYWggXCggUChDID0gXHRleHR7TG93fSB8IEQgPSBcdGV4dHtOb30pID0gMjBcJSA9IDAuMiBcKQ0KDQotIFByb2JhYmlsaXRhcyBwcm9zZXMgcHJvZHVrc2kgZGkgYmF3YWggc3RhbmRhciBcKCBQKFAgPSBcdGV4dHtCZWxvd30gfCBEID0gXHRleHR7WWVzfSkgPSA3MFwlID0gMC43IFwpDQoNCi0gUHJvYmFiaWxpdGFzIHByb3NlcyBwcm9kdWtzaSBkaSBiYXdhaCBzdGFuZGFyIFwoIFAoUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtOb30pID0gMzBcJSA9IDAuMyBcKQ0KDQoqKlBlcnRhbnlhYW4qKg0KQmVyYXBhIHByb2JhYmlsaXRhcyBiYWh3YSBzdWF0dSBwcm9kdWsgYWthbiBjYWNhdCAoXCggRCA9IFx0ZXh0e1llc30gXCkpLCBqaWthIGRpa2V0YWh1aToNCg0KMS4gS29tcG9uZW4geWFuZyBkaWd1bmFrYW4gYmVya3VhbGl0YXMgcmVuZGFoIChcKCBDID0gXHRleHR7TG93fSBcKSksDQoNCjIuIFByb3NlcyBwcm9kdWtzaSBkaWxha3VrYW4gZGkgYmF3YWggc3RhbmRhciAoXCggUCA9IFx0ZXh0e0JlbG93fSBcKSkuDQoNCkd1bmFrYW4gKipUZW9yZW1hIEJheWVzKiouDQoNCi0tLQ0KDQoqKkphd2FiYW4qKg0KDQpHdW5ha2FuIGZvcm11bGEgKipUZW9yZW1hIEJheWVzKio6DQoNClxbDQpQKEQgPSBcdGV4dHtZZXN9IHwgQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pID0gXGZyYWN7UChEID0gXHRleHR7WWVzfSkgXGNkb3QgUChDID0gXHRleHR7TG93fSB8IEQgPSBcdGV4dHtZZXN9KSBcY2RvdCBQKFAgPSBcdGV4dHtCZWxvd30gfCBEID0gXHRleHR7WWVzfSl9e1AoQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pfQ0KXF0NCg0KLS0tDQoNCiMjICoqTGFuZ2thaC1sYW5na2FoKioNCg0KIyMjICoqMS4gSGl0dW5nIFwoIFAoRCA9IFx0ZXh0e1llc30sIEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9KSBcKToqKg0KDQpSdW11czoNClxbDQpQKEQgPSBcdGV4dHtZZXN9LCBDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSkgPSBQKEQgPSBcdGV4dHtZZXN9KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9IHwgRCA9IFx0ZXh0e1llc30pIFxjZG90IFAoUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtZZXN9KQ0KXF0NCg0KU3Vic3RpdHVzaSBhbmdrYToNClxbDQpQKEQgPSBcdGV4dHtZZXN9LCBDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSkgPSAwLjA1IFxjZG90IDAuOCBcY2RvdCAwLjcNClxdDQoNCkhhc2lsOg0KXFsNClAoRCA9IFx0ZXh0e1llc30sIEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9KSA9IDAuMDI4DQpcXQ0KDQotLS0NCg0KIyMjICoqMi4gSGl0dW5nIFwoIFAoQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pIFwpOioqDQoNCk1lbmdndW5ha2FuIGF0dXJhbiAqKnRvdGFsIHByb2JhYmlsaXRhcyoqOg0KXFsNClAoQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pID0gUChEID0gXHRleHR7WWVzfSkgXGNkb3QgUChDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtZZXN9KSArIFAoRCA9IFx0ZXh0e05vfSkgXGNkb3QgUChDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtOb30pDQpcXQ0KDQoqKkJhZ2lhbiAxOiBcKCBQKEQgPSBcdGV4dHtZZXN9KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9IHwgRCA9IFx0ZXh0e1llc30pIFwpOioqDQoNClJ1bXVzOg0KXFsNClAoRCA9IFx0ZXh0e1llc30pIFxjZG90IFAoQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30gfCBEID0gXHRleHR7WWVzfSkgPSBQKEQgPSBcdGV4dHtZZXN9KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9IHwgRCA9IFx0ZXh0e1llc30pIFxjZG90IFAoUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtZZXN9KQ0KXF0NCg0KU3Vic3RpdHVzaSBhbmdrYToNClxbDQpQKEQgPSBcdGV4dHtZZXN9KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9IHwgRCA9IFx0ZXh0e1llc30pID0gMC4wNSBcY2RvdCAwLjggXGNkb3QgMC43DQpcXQ0KDQpIYXNpbDoNClxbDQpQKEQgPSBcdGV4dHtZZXN9KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9IHwgRCA9IFx0ZXh0e1llc30pID0gMC4wMjgNClxdDQoNCioqQmFnaWFuIDI6IFwoIFAoRCA9IFx0ZXh0e05vfSkgXGNkb3QgUChDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtOb30pIFwpOioqDQoNClJ1bXVzOg0KXFsNClAoRCA9IFx0ZXh0e05vfSkgXGNkb3QgUChDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtOb30pID0gUChEID0gXHRleHR7Tm99KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9IHwgRCA9IFx0ZXh0e05vfSkgXGNkb3QgUChQID0gXHRleHR7QmVsb3d9IHwgRCA9IFx0ZXh0e05vfSkNClxdDQoNClN1YnN0aXR1c2kgYW5na2E6DQpcWw0KUChEID0gXHRleHR7Tm99KSBcY2RvdCBQKEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9IHwgRCA9IFx0ZXh0e05vfSkgPSAwLjk1IFxjZG90IDAuMiBcY2RvdCAwLjMNClxdDQoNCkhhc2lsOg0KXFsNClAoRCA9IFx0ZXh0e05vfSkgXGNkb3QgUChDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSB8IEQgPSBcdGV4dHtOb30pID0gMC4wNTcNClxdDQoNCioqVG90YWwgXCggUChDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSkgXCk6KioNClxbDQpQKEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9KSA9IDAuMDI4ICsgMC4wNTcgPSAwLjA4NQ0KXF0NCg0KLS0tDQoNCiMjIyAqKjMuIEhpdHVuZyBcKCBQKEQgPSBcdGV4dHtZZXN9IHwgQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pIFwpOioqDQoNClJ1bXVzOg0KXFsNClAoRCA9IFx0ZXh0e1llc30gfCBDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSkgPSBcZnJhY3tQKEQgPSBcdGV4dHtZZXN9LCBDID0gXHRleHR7TG93fSwgUCA9IFx0ZXh0e0JlbG93fSl9e1AoQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pfQ0KXF0NCg0KU3Vic3RpdHVzaSBhbmdrYToNClxbDQpQKEQgPSBcdGV4dHtZZXN9IHwgQyA9IFx0ZXh0e0xvd30sIFAgPSBcdGV4dHtCZWxvd30pID0gXGZyYWN7MC4wMjh9ezAuMDg1fQ0KXF0NCg0KSGFzaWw6DQpcWw0KUChEID0gXHRleHR7WWVzfSB8IEMgPSBcdGV4dHtMb3d9LCBQID0gXHRleHR7QmVsb3d9KSA9IDAuMzI5NA0KXF0NCg0KLS0tDQoNCiMjICoqSGFzaWwgQWtoaXIqKg0KDQpQcm9iYWJpbGl0YXMgYmFod2Egc3VhdHUgcHJvZHVrIGFrYW4gY2FjYXQgKFwoIEQgPSBcdGV4dHtZZXN9IFwpKSwgamlrYSBkaWtldGFodWkgYmFod2EgcHJvZHVrIG1lbmdndW5ha2FuIGtvbXBvbmVuIGJlcmt1YWxpdGFzIHJlbmRhaCAoXCggQyA9IFx0ZXh0e0xvd30gXCkpIGRhbiBwcm9zZXMgcHJvZHVrc2lueWEgZGkgYmF3YWggc3RhbmRhciAoXCggUCA9IFx0ZXh0e0JlbG93fSBcKSksIGFkYWxhaCAqKjMyLjk0JSoqIGF0YXUgKiowLjMyOTQqKi4NCg0KDQoNCiMgU3R1ZGkgS2FzdXMgMg0KDQoNCiMjICoqRGlrZXRhaHVpKioNCg0KKipQcm9iYWJpbGl0YXMgZGFzYXI6KioNCg0KLSBcKCBQKEYpID0gMC4wMSBcKSAoUHJvYmFiaWxpdGFzIHRyYW5zYWtzaSBhZGFsYWggcGVuaXB1YW4pLg0KDQotIFwoIFAoXG5lZyBGKSA9IDAuOTkgXCkgKFByb2JhYmlsaXRhcyB0cmFuc2Frc2kgYnVrYW4gcGVuaXB1YW4pLg0KDQoqKktvbWJpbmFzaSBrYXJha3RlcmlzdGlrOioqDQoNCjEuIExva2FzaSBhc2luZzogXCggUChMID0gXHRleHR7Rm9yZWlnbn0pID0gMC4yMCBcKSwNCg0KMi4gSnVtbGFoIHRyYW5zYWtzaSB0aW5nZ2k6IFwoIFAoQSA9IFx0ZXh0e0hpZ2h9KSA9IDAuMTAgXCksDQoNCjMuIE1ldG9kZSBwZW1iYXlhcmFuIGthcnR1IGtyZWRpdDogXCggUChNID0gXHRleHR7Q3JlZGl0Q2FyZH0pID0gMC41MCBcKS4NCg0KKipQcm9iYWJpbGl0YXMgYmVyc3lhcmF0IHVudHVrIHRyYW5zYWtzaSBwZW5pcHVhbjoqKg0KDQotIFwoIFAoTCA9IFx0ZXh0e0ZvcmVpZ259IHwgRikgPSAwLjQwIFwpLA0KDQotIFwoIFAoQSA9IFx0ZXh0e0hpZ2h9IHwgRikgPSAwLjUwIFwpLA0KDQotIFwoIFAoTSA9IFx0ZXh0e0NyZWRpdENhcmR9IHwgRikgPSAwLjYwIFwpLg0KDQoqKlByb2JhYmlsaXRhcyBiZXJzeWFyYXQgdW50dWsgdHJhbnNha3NpIG5vbi1wZW5pcHVhbjoqKg0KDQotIFwoIFAoTCA9IFx0ZXh0e0ZvcmVpZ259IHwgXG5lZyBGKSA9IDAuMTAgXCksDQoNCi0gXCggUChBID0gXHRleHR7SGlnaH0gfCBcbmVnIEYpID0gMC4wNSBcKSwNCg0KLSBcKCBQKE0gPSBcdGV4dHtDcmVkaXRDYXJkfSB8IFxuZWcgRikgPSAwLjMwIFwpLg0KDQotLS0NCg0KIyMgTGFuZ2thaCBMYW5na2FoDQoNCiMjIyAqKjIuIEhpdHVuZyBcKCBQKFx0ZXh0e0NvbWJpbmF0aW9ufSB8IEYpIFwpKioNCg0KUHJvYmFiaWxpdGFzIHNlbXVhIGtvbmRpc2kgdGVyamFkaSBiZXJzYW1hYW4sIGRpYmVyaWthbiB0cmFuc2Frc2kgYWRhbGFoIHBlbmlwdWFuOg0KXFsNClAoXHRleHR7Q29tYmluYXRpb259IHwgRikgPSBQKEwgPSBcdGV4dHtGb3JlaWdufSB8IEYpIFxjZG90IFAoQSA9IFx0ZXh0e0hpZ2h9IHwgRikgXGNkb3QgUChNID0gXHRleHR7Q3JlZGl0Q2FyZH0gfCBGKQ0KXF0NCg0KU3Vic3RpdHVzaSBhbmdrYToNClxbDQpQKFx0ZXh0e0NvbWJpbmF0aW9ufSB8IEYpID0gMC40MCBcY2RvdCAwLjUwIFxjZG90IDAuNjANClxdDQoNClBlcmhpdHVuZ2FuOg0KXFsNClAoXHRleHR7Q29tYmluYXRpb259IHwgRikgPSAwLjEyDQpcXQ0KDQotLS0NCg0KIyMjICoqMy4gSGl0dW5nIFwoIFAoXHRleHR7Q29tYmluYXRpb259IHwgXG5lZyBGKSBcKSoqDQoNClByb2JhYmlsaXRhcyBzZW11YSBrb25kaXNpIHRlcmphZGkgYmVyc2FtYWFuLCBkaWJlcmlrYW4gdHJhbnNha3NpIGJ1a2FuIHBlbmlwdWFuOg0KXFsNClAoXHRleHR7Q29tYmluYXRpb259IHwgXG5lZyBGKSA9IFAoTCA9IFx0ZXh0e0ZvcmVpZ259IHwgXG5lZyBGKSBcY2RvdCBQKEEgPSBcdGV4dHtIaWdofSB8IFxuZWcgRikgXGNkb3QgUChNID0gXHRleHR7Q3JlZGl0Q2FyZH0gfCBcbmVnIEYpDQpcXQ0KDQpTdWJzdGl0dXNpIGFuZ2thOg0KXFsNClAoXHRleHR7Q29tYmluYXRpb259IHwgXG5lZyBGKSA9IDAuMTAgXGNkb3QgMC4wNSBcY2RvdCAwLjMwDQpcXQ0KDQpQZXJoaXR1bmdhbjoNClxbDQpQKFx0ZXh0e0NvbWJpbmF0aW9ufSB8IFxuZWcgRikgPSAwLjAwMTUNClxdDQoNCi0tLQ0KDQojIyMgKio0LiBIaXR1bmcgXCggUChcdGV4dHtDb21iaW5hdGlvbn0pIFwpKioNCg0KTWVuZ2d1bmFrYW4gYXR1cmFuIHRvdGFsIHByb2JhYmlsaXRhczoNClxbDQpQKFx0ZXh0e0NvbWJpbmF0aW9ufSkgPSBQKFx0ZXh0e0NvbWJpbmF0aW9ufSB8IEYpIFxjZG90IFAoRikgKyBQKFx0ZXh0e0NvbWJpbmF0aW9ufSB8IFxuZWcgRikgXGNkb3QgUChcbmVnIEYpDQpcXQ0KDQpTdWJzdGl0dXNpIGFuZ2thOg0KXFsNClAoXHRleHR7Q29tYmluYXRpb259KSA9ICgwLjEyIFxjZG90IDAuMDEpICsgKDAuMDAxNSBcY2RvdCAwLjk5KQ0KXF0NCg0KUGVyaGl0dW5nYW46DQpcWw0KUChcdGV4dHtDb21iaW5hdGlvbn0pID0gMC4wMDEyICsgMC4wMDE0ODUgPSAwLjAwMjY4NQ0KXF0NCg0KLS0tDQoNCiMjIyAqKjUuIEhpdHVuZyBcKCBQKEYgfCBcdGV4dHtDb21iaW5hdGlvbn0pIFwpKioNCg0KR3VuYWthbiBUZW9yZW1hIEJheWVzOg0KXFsNClAoRiB8IFx0ZXh0e0NvbWJpbmF0aW9ufSkgPSBcZnJhY3tQKFx0ZXh0e0NvbWJpbmF0aW9ufSB8IEYpIFxjZG90IFAoRil9e1AoXHRleHR7Q29tYmluYXRpb259KX0NClxdDQoNClN1YnN0aXR1c2kgYW5na2E6DQpcWw0KUChGIHwgXHRleHR7Q29tYmluYXRpb259KSA9IFxmcmFjezAuMTIgXGNkb3QgMC4wMX17MC4wMDI2ODV9DQpcXQ0KDQpQZXJoaXR1bmdhbjoNClxbDQpQKEYgfCBcdGV4dHtDb21iaW5hdGlvbn0pID0gXGZyYWN7MC4wMDEyfXswLjAwMjY4NX0gPSAwLjQ0NzINClxdDQoNCktvbnZlcnNpIGtlIHBlcnNlbnRhc2U6DQpcWw0KUChGIHwgXHRleHR7Q29tYmluYXRpb259KSA9IDQ0LjcyXCUNClxdDQoNCi0tLQ0KDQojIyAqKkhhc2lsIEFraGlyKioNCg0KUHJvYmFiaWxpdGFzIHRyYW5zYWtzaSBhZGFsYWggcGVuaXB1YW4sIGRpYmVyaWthbiBrb21iaW5hc2kga2FyYWt0ZXJpc3RpayB0ZXJzZWJ1dCwgYWRhbGFoICoqNDQuNzIlKiouDQoNCg0K