เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซ เช เชเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เช เชฅเชตเชพ เชฌเซเชเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชฒเซเชเซเชฐเชฟเชงเชฎเชจเซ เชเชเชพเชธเชฃเซ เชเซ.
เช เชเช เชธเซเชฅเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เชชเชฆเซเชงเชคเชฟเช เชเซ เชเซ เชคเชฎเชจเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฎเชพเช เชฌเชงเซ เชจเชฌเชณเชพเชเช เชถเซเชงเชตเชพ เช เชฅเชตเชพ เชธเชพเชฌเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซ เชคเซ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชจเชฅเซ.
เชจเซ เชธเชฎเชธเซเชฏเชพเชจเซ เชเชเซเชฒเชตเชพเชจเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซเชจเซเช เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชเซเช เชถเชเชพเชฏ เชเซ
เช เชฒเซเชเชฎเชพเช เชนเซเช เชธเชฎเชธเซเชฏเชพเชเชจเซ เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซเชฅเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธ เชคเชฐเชซ เชเชเชณ เชตเชงเซเชถ เช
เชจเซ เชเซเชตเซ เชฐเซเชคเซ เชคเซเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเช เชเซเช
เชคเซเชเชจเซ เชเชชเชเชพเชฐเชฟเช เชจเชฟเชฏเชฎ เชชเซเชฐเชฃเชพเชฒเซเชฎเชพเช เชเชชเชฎเซเชณเซ เชเซเชตเซ เชฐเซเชคเซ เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชฎเซเช เชชเซเชฐเชคเซเชเชพเชคเซเชฎเช เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจเชจเซเช เชฎเชพเชฐเซเช เชชเซเชคเชพเชจเซเช เชเชจเชพเชฒเซเช เชฒเชเซเชฏเซเช.
เชคเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซเชกเชจเซ เชชเชพเชฐเซเชธ เชเชฐเซ เชเซ เช เชจเซ เชคเซเชจเซ เชธเชฎเซเชเชฐเชฃเซเชจเซ เชธเชฟเชธเซเชเชฎ (เชเชธเชเชฎเชเซ) เชฎเชพเช เช เชจเซเชตเชพเชฆเชฟเชค เชเชฐเซ เชเซ, เชเซ เชชเชนเซเชฒเชพเชฅเซ เช เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชเชฟเช เชฐเซเชคเซ เชเชเซเชฒเซ เชถเชเชพเชฏ เชเซ.
เชธเชพเชเชเซเชคเชฟเช เชเชฃเชคเชฐเซเช เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชเชจเซเชเชฐเชจเซเช เชชเชฐ เชเชเชกเชฟเชค เชฐเซเชคเซ เชฐเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเซเชตเชพเชฅเซ,
เชนเซเช เชคเซ เชถเซเช เชเซ เชคเซเชจเซเช เชเซเชเชเชฎเชพเช เชตเชฐเซเชฃเชจ เชเชฐเซเชถ.
เชธเชพเชเชเซเชคเชฟเช เชเชฃเชคเชฐเซ เช เชกเซเชเชพเชจเซ เชตเชฟเชถเชพเชณ เชถเซเชฐเซเชฃเซ เชชเชฐ เชเช เชธเชพเชฅเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเชฒเชพเชตเชตเชพเชจเซ เชเช เชฎเชพเชฐเซเช เชเซ เช
เชจเซ เชเชชเชเชพเชฐเชฟเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเชเชพเชธเชฃเซ เชฎเชพเชเซเชจเซเช เชฎเซเชเซเชฏ เชธเชพเชงเชจ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชฎเซ เชเชจเชชเซเช เชถเชฐเชคเซ เชธเซเช เชเชฐเซ เชถเชเซเช เชเซเช เชเซเชฏเชพเช เชชเซเชฐเชฅเชฎ เชฆเชฒเซเชฒ เชเซเชเชชเชฃ เชนเชเชพเชฐเชพเชคเซเชฎเช เชฎเซเชฒเซเชฏเซ เชฒเช เชถเชเซ เชเซ, เชฌเซเชเซ เชจเชเชพเชฐเชพเชคเซเชฎเช, เชคเซเชฐเซเชเซ เชถเซเชจเซเชฏ เช เชจเซ เชเชเชเชชเซเช เชฆเชฒเซเชฒ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, 42.
เชเช เชฐเชจเชฎเชพเช เชธเชพเชเชเซเชคเชฟเช เชเชฃเชคเชฐเซเช เชเชชเชฃเชจเซ เชเชเซเชเชฟเชค เชชเชฐเชฟเชฃเชพเชฎ เชฎเซเชณเชตเชตเชพเชจเซเช เชถเชเซเชฏ เชเซ เชเซ เชเซเชฎ เชคเซเชจเซ เชเชตเชพเชฌ เช เชจเซ เชเชตเชพ เชเชจเชชเซเช เชชเชฐเชฟเชฎเชพเชฃเซเชจเชพ เชธเชฎเซเชนเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชเชชเชถเซ. เช เชฅเชตเชพ เชชเซเชฐเชพเชตเชพ เชเซ เชเซ เชเชตเชพ เชเซเช เชชเชฐเชฟเชฎเชพเชฃเซ เชจเชฅเซ.
เชคเชฆเซเชชเชฐเชพเชเชค, เช เชฎเซ เชคเชฎเชพเชฎ เชธเชเชญเชตเชฟเชค เชฎเซเชฆเซเชฆเชพเช เชชเชฐ เชเชจเชชเซเช เชฆเชฒเซเชฒเซ เชธเซเช เชเชฐเซ เชถเชเซเช เชเซเช, เช เชจเซ เชซเชเซเชค เชเชเชเชชเซเช เชชเชธเชเชฆ เชเชฐเซ เชถเชเซเช เชเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐ เชชเชพเชธเชตเชฐเซเชก.
เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชฎเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชคเชฎเชพเชฎ เชจเชฌเชณเชพเชเช เชถเซเชงเซเชถเซเช เช เชฅเชตเชพ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐเชจเซ เชชเชพเชธเชตเชฐเซเชก เชธเซเชฐเชเซเชทเชฟเชค เชเซ เชคเซเชจเซ เชธเชพเชฌเชฟเชคเซ เชฎเซเชณเชตเซเชถเซเช.
เชคเซ เชจเซเชเชงเซ เชถเชเชพเชฏ เชเซ เชเซ เชเซเชเซเชเชธ เชเชจเชชเซเช เชกเซเชเชพ เชธเชพเชฅเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซเช เชเซเชฒเชพเชธเชฟเชเชฒ เชเชเซเชเซเชเซเชฏเซเชถเชจ เช เชธเชฟเชฎเซเชฌเซเชฒเชฟเช เชเชเซเชเซเชเซเชฏเซเชถเชจเชจเซ เชเช เชเชพเชธ เชเซเชธ เชเซ.
เชคเซเชฅเซ, เชฎเชพเชฐเซเช เชชเชพเชคเซเชฐ VM เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจเชจเชพ เชเชฎเซเชฏเซเชฒเซเชถเชจ เชฎเซเชกเชฎเชพเช เชชเชฃ เชเชพเชฎ เชเชฐเซ เชถเชเซ เชเซ.
เช เชเชพเชเชจเชพ เชฒเซเชเชจเซ เชเชฟเชชเซเชชเชฃเซเชเชฎเชพเช เชคเซเชจเซ เชจเชฌเชณเชพเชเชเชจเซ เชเชฐเซเชเชพ เชธเชพเชฅเซ เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซเชจเซ เชตเชพเชเชฌเซ เชเซเชเชพ เชฎเชณเซ เชถเชเซ เชเซ.
เชฎเซเชเซเชฏ เชธเชฎเชธเซเชฏเชพเช เชเซ:
- เชธเชเชฏเซเชเซเชค เชตเชฟเชธเซเชซเซเช, เชเชพเชฐเชฃ เชเซ เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซ เชเชเชฐเซ P=NP เชชเชฐ เชเชตเซ เชเซ
- เชซเชพเชเชฒ เชธเชฟเชธเซเชเชฎ, เชจเซเชเชตเชฐเซเชเซเชธ เช เชจเซ เช เชจเซเชฏ เชฌเชพเชนเซเชฏ เชธเซเชเซเชฐเซเช เชชเชฐเชจเชพ เชเซเชฒเซเชธเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชเชพเชธเชตเซ เชตเชงเซ เชฎเซเชถเซเชเซเชฒ เชเซ
- เชธเซเชชเชทเซเชเซเชเชฐเชฃเชฎเชพเช เชญเซเชฒเซ, เชเซเชฏเชพเชฐเซ เชเซเชฐเชพเชนเช เช เชฅเชตเชพ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐ เชเช เชตเชธเซเชคเซเชจเซ เชเชฐเชพเชฆเซ เชงเชฐเชพเชตเซ เชเซ, เชชเชฐเชเชคเซ เชคเชเชจเซเชเซ เชธเซเชชเชทเซเชเซเชเชฐเชฃเชฎเชพเช เชคเซเชจเซเช เชเซเชเซเชเชธ เชตเชฐเซเชฃเชจ เชเชฐเซเชฏเซเช เชจเชฅเซ.
เชชเชฐเชฟเชฃเชพเชฎเซ, เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเชเชพเชธเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เชธเซเชชเชทเซเชเซเชเชฐเชฃเชจเซเช เชชเชพเชฒเชจ เชเชฐเชถเซ, เชชเชฐเชเชคเซ เชจเชฟเชฐเซเชฎเชพเชคเชพเช เชคเซเชจเชพเชฅเซ เชเซ เช เชชเซเชเซเชทเชพ เชฐเชพเชเชคเชพ เชนเชคเชพ เชคเซเชจเชพเชฅเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เช เชฒเช เชเชเชเช เชเชฐเชถเซ.
เช เชฒเซเชเชฎเชพเช เชนเซเช เชฎเซเชเซเชฏเชคเซเชตเซ เชชเซเชฐเซเชเซเชเชฟเชธเชฎเชพเช เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชตเชฟเชเชพเชฐเซ เชฐเชนเซเชฏเซ เชนเซเชตเชพเชฅเซ, เชนเซเช เชนเชฎเชฃเชพเช เชฎเชพเชเซ เชฎเชพเชฐเซเช เชฎเชพเชฅเซเช เชฆเซเชตเชพเชฒ เชธเชพเชฅเซ เช เชฅเชกเชพเชตเซเชถ เชจเชนเซเช, เช เชจเซ เชเชตเซ เชธเชฟเชธเซเชเชฎ เชชเชธเชเชฆ เชเชฐเซเชถ เชเซเชฏเชพเช เช เชฒเซเชเซเชฐเชฟเชงเชฎเชฟเช เชเชเชฟเชฒเชคเชพ เช เชจเซ เชฌเชพเชนเซเชฏ เชเซเชฒเซเชธเชจเซ เชธเชเชเซเชฏเชพ เชจเซเชฏเซเชจเชคเชฎ เชนเซเชฏ.
เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเซเชธ เช เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เชถเซเชฐเซเชทเซเช เชฐเซเชคเซ เช เชจเซเชฐเซเชช เชนเซเชตเชพเชฅเซ, เชชเชธเชเชฆเชเซ เชตเซเชตเซเช เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชชเชฐเชฅเซ เชฐเชพเชเชก เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเชฐ เชชเชกเซ: เชคเซ เชเซเชฏเซเชฐเชฟเชเช เชชเซเชฐเซเชฃ เชจเชฅเซ, เช เชจเซ เชคเซเชฎเชจเซ เชฎเชนเชคเซเชคเชฎ เชเชเชฟเชฒเชคเชพ เชเซเชคเซเชฐเชฟเชฎ เชฐเซเชคเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเซ.
เชชเชฐเชเชคเซ เช เชฎเซ เชคเซเชฎเชจเซ เชซเชเซเชค เชคเชเชจเซเชเซ เชฌเชพเชเซเชฅเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช.
เชตเชงเซเชฎเชพเช, เชเซเชเชชเชฃ เชเชฐเชพเชฐ เชฎเชพเชเซ เชเชชเชเชพเชฐเชฟเช เชเชเชพเชธเชฃเซ เชเชพเชธ เชเชฐเซเชจเซ เชฎเชพเชเชเชฎเชพเช เชนเชถเซ: เชเชฐเชพเชฐเชจเซ เชญเซเชฒ เชถเชฐเซ เชฅเชฏเชพ เชชเชเซ เชคเซเชจเซ เชธเซเชงเชพเชฐเชตเชพเชจเซเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เช
เชถเชเซเชฏ เชเซ.
เช
เชจเซ เชเชตเซ เชญเซเชฒเซเชจเซ เชเชฟเชเชฎเชค เชเชฃเซ เชตเชงเชพเชฐเซ เชนเซเช เชถเชเซ เชเซ, เชเชพเชฐเชฃ เชเซ เชเชฃเซ เชตเชเชค เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเชฐ เชฎเซเชเซ เชฎเชพเชคเซเชฐเชพเชฎเชพเช เชญเชเชกเซเชณ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชฎเชพเชฐเซเช เชธเชพเชเชเซเชคเชฟเช เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจ PHP เช เชจเซ Python เชฎเชพเช เชฒเชเชพเชฏเซเชฒเซเช เชเซ, เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ SMT เชธเซเชคเซเชฐเซเชจเซ เชเชเซเชฒเชตเชพ เชฎเชพเชเซ Microsoft เชธเชเชถเซเชงเชจเชฎเชพเชเชฅเซ Z3Prover เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ.
เชคเซเชจเชพ เชฎเซเชณเชฎเชพเช เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชฎเชฒเซเชเชฟ-เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชฒ เชถเซเชง เชเซ, เชเซ
เชคเชฎเชจเซ เชเชเซเชฒเซ เช
เชฅเชตเชพ เชจเชฌเชณเชพเชเช เชถเซเชงเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชญเชฒเซ เชคเซเชจเซ เชเชฃเชพ เชตเซเชฏเชตเชนเชพเชฐเซเชจเซ เชเชฐเซเชฐ เชนเซเชฏ.
เชชเชฃ
เชชเชฐเชเชคเซ เช เชจเซเชเชงเชตเซเช เชฏเซเชเซเชฏ เชเซ เชเซ เชเชฅเชฐ เชเซเชจเซเชเซเชฐเชพเชเซเช เชตเชงเซ เชเชเชฟเชฒ เช เชจเซ เชเซเชฏเซเชฐเชฟเชเช เชชเซเชฐเซเชฃ เชเซ.
PHP RIDE เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเซเชเซเชเชจเชพ เชธเซเชฐเซเชธ เชเซเชกเชจเซ เชชเชพเชฏเชฅเซเชจ เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช เช เชจเซเชตเชพเชฆเชฟเชค เชเชฐเซ เชเซ, เชเซเชฎเชพเช เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ Z3 SMT-เชธเซเชธเชเชเชค เชธเชฟเชธเซเชเชฎ เชคเชฐเซเชเซ เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชเซเชธ เช เชจเซ เชคเซเชฎเชจเชพ เชธเชเชเซเชฐเชฎเชฃเซ เชฎเชพเชเซเชจเซ เชถเชฐเชคเซ เชคเชฐเซเชเซ เชฐเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เชนเชตเซ เชนเซเช เช
เชเชฆเชฐ เชถเซเช เชฅเช เชฐเชนเซเชฏเซเช เชเซ เชคเซเชจเซเช เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชเชฐเซเชถ.
เชชเชฐเชเชคเซ เชชเซเชฐเชฅเชฎ, RIDE เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฒเซเชเชเซเชตเซเช เชตเชฟเชถเซ เชฅเซเชกเชพเช เชถเชฌเซเชฆเซ.
เชคเซ เชเช เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เช
เชจเซ เช
เชญเชฟเชตเซเชฏเชเซเชคเชฟ-เชเชงเชพเชฐเชฟเชค เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชญเชพเชทเชพ เชเซ เชเซ เชกเชฟเชเชพเชเชจ เชฆเซเชตเชพเชฐเชพ เชเชณเชธเซ เชเซ.
RIDE เชฌเซเชฒเซเชเชเซเชจเชจเซ เช
เชเชฆเชฐ เชเชเชฒเชคเชพเชฎเชพเช เชเชพเชฒเซ เชเซ เช
เชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เชตเซเชฒเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเชพ เชธเซเชเซเชฐเซเชเชฎเชพเชเชฅเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเซ เช
เชจเซ เชฒเชเซ เชถเชเซ เชเซ.
เชคเชฎเซ เชฆเชฐเซเช เชตเซเชฒเซเช เชธเชพเชฅเซ เชฐเชพเชเชก เชเซเชจเซเชเซเชฐเชพเชเซเช เชเซเชกเซ เชถเชเซ เชเซ เช เชจเซ เช เชฎเชฒเซเชเชฐเชฃเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ เชฎเชพเชคเซเชฐ เชธเชพเชเซเช เช เชฅเชตเชพ เชเซเชเซเช เชนเชถเซ.
TRUE เชจเซ เช
เชฐเซเชฅ เช เชเซ เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเซเชเซเช เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เช
เชจเซ FALSE เชเชเชฒเซ เชเซ เชคเซ เชคเซเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเซ เชเซ.
เชเช เชธเชฐเชณ เชเชฆเชพเชนเชฐเชฃ: เชเซ เชตเซเชฒเซเช เชฌเซเชฒเซเชจเซเชธ 100 เชเชฐเชคเชพ เชเชเซเช เชนเซเชฏ เชคเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเซเชฐเชพเชจเซเชธเชซเชฐเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเซ เชถเชเซ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชนเซเช เช เช เชตเซเชฒเซเชซ, เชฌเชเชฐเซ เช เชจเซ เชเซเชฌเซ เชฒเชเชถ, เชชเชฐเชเชคเซ เชชเชนเซเชฒเชพเชฅเซ เช เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเชพ เชฐเซเชชเชฎเชพเช เชชเซเชฐเชธเซเชคเซเชค เชเซ.
เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชฏเชพเช เชธเซเชงเซ เชฆเชฐเซเชเชจเซ เชฌเซเชเซ เชฌเชพเชเซ เชจ เชฎเซเชเชฒเซ เชคเซเชฏเชพเช เชธเซเชงเซ เชคเซ เชตเซเชฒเซเชเชฎเชพเชเชฅเซ เชชเซเชธเชพ เชเชชเชพเชกเซ เชถเชเชถเซ เชจเชนเซเช เชเซ เชเซเชจเชพ เชชเชฐ เชเชฐเชพเชฐ เชคเซเชจเชพเชค เชเซ.
#ะะทะฒะปะตะบะฐะตะผ ะฟะพะปะพะถะตะฝะธะต ะฒัะตั
ะพะฑัะตะบัะพะฒ ะธะท ะฑะปะพะบัะตะนะฝะฐ
let contract = tx.sender
let human= extract(getInteger(contract,"human"))
let wolf= extract(getInteger(contract,"wolf"))
let goat= extract(getInteger(contract,"goat"))
let cabbage= extract(getInteger(contract,"cabbage"))
#ะญัะพ ัะฐะบ ะฝะฐะทัะฒะฐะตะผะฐั ะดะฐัะฐ-ััะฐะฝะทะฐะบัะธั, ะฒ ะบะพัะพัะพะน ะฟะพะปัะทะพะฒะฐัะตะปั ะฟัะธััะปะฐะตั ะฝะพะฒัะต 4 ะฟะตัะตะผะตะฝะฝัะต.
#ะะพะฝััะฐะบั ัะฐะทัะตัะธั ะตั ัะพะปัะบะพ ะฒ ัะปััะฐะต ะตัะปะธ ะฒัะต ะพะฑัะตะบัั ะพััะฐะฝัััั ะฒ ัะพั
ัะฐะฝะฝะพััะธ.
match tx {
case t:DataTransaction =>
#ะะทะฒะปะตะบะฐะตะผ ะฑัะดััะตะต ะฟะพะปะพะถะตะฝะธะต ะฒัะตั
ะพะฑัะตะบัะพะฒ ะธะท ััะฐะฝะทะฐะบัะธะธ
let newHuman= extract(getInteger(t.data,"human"))
let newWolf= extract(getInteger(t.data,"wolf"))
let newGoat= extract(getInteger(t.data,"goat"))
let newCabbage= extract(getInteger(t.data,"cabbage"))
#0 ะพะฑะพะทะฝะฐัะฐะตั, ััะพ ะพะฑัะตะบั ะฝะฐ ะปะตะฒะพะผ ะฑะตัะตะณั, ะฐ 1 ััะพ ะฝะฐ ะฟัะฐะฒะพะผ
let humanSide= human == 0 || human == 1
let wolfSide= wolf == 0 || wolf == 1
let goatSide= goat == 0 || goat == 1
let cabbageSide= cabbage == 0 || cabbage == 1
let side= humanSide && wolfSide && goatSide && cabbageSide
#ะัะดัั ัะฐะทัะตัะตะฝั ัะพะปัะบะพ ัะต ััะฐะฝะทะฐะบัะธะธ, ะณะดะต ั ะบะพะทะพะน ะฝะธะบะพะณะพ ะฝะตั ะฒ ะพััััััะฒะธะธ ัะตัะผะตัะฐ.
let safeAlone= newGoat != newWolf && newGoat != newCabbage
let safe= safeAlone || newGoat == newHuman
let humanTravel= human != newHuman
#ะกะฟะพัะพะฑั ะฟััะตัะตััะฒะธั ัะตัะผะตัะฐ ััะดะฐ ะธ ะพะฑัะฐัะฝะพ, ั ะบะตะผ-ัะพ ะปะธะฑะพ ะฒ ะพะดะธะฝะพัะบั.
let t1= humanTravel && newWolf == wolf + 1 && newGoat == goat && newCabbage == cabbage
let t2= humanTravel && newWolf == wolf && newGoat == goat + 1 && newCabbage == cabbage
let t3= humanTravel && newWolf == wolf && newGoat == goat && newCabbage == cabbage + 1
let t4= humanTravel && newWolf == wolf - 1 && newGoat == goat && newCabbage == cabbage
let t5= humanTravel && newWolf == wolf && newGoat == goat - 1 && newCabbage == cabbage
let t6= humanTravel && newWolf == wolf && newGoat == goat && newCabbage == cabbage - 1
let t7= humanTravel && newWolf == wolf && newGoat == goat && newCabbage == cabbage
let objectTravel = t1 || t2 || t3 || t4 || t5 || t6 || t7
#ะะพัะปะตะดะฝัั ัััะพะบะฐ ะฒ ัะฐะทะดะตะปะต ััะฐะฝะทะฐะบัะธะธ ะพะฟะธััะฒะฐะตั ัะฐะทัะตัะฐััะตะต ััะฐะฝะทะฐะบัะธั ััะปะพะฒะธะต.
#ะะตัะตะผะตะฝะฝัะต ััะฐะฝะทะฐะบัะธะธ ะดะพะปะถะฝั ะธะผะตัั ะทะฝะฐัะตะฝะธั 1 ะธะปะธ 0, ะฒัะต ะพะฑัะตะบัั ะดะพะปะถะฝั
#ะฑััั ะฒ ะฑะตะทะพะฟะฐัะฝะพััะธ, ะฐ ัะตัะผะตั ะดะพะปะถะตะฝ ะฟะตัะตะฟะปัะฒะฐัั ัะตะบั ะฒ ะพะดะธะฝะพัะบั
#ะธะปะธ ั ะบะตะผ-ัะพ ะฝะฐ ะบะฐะถะดะพะผ ัะฐะณั
side && safe && humanTravel && objectTravel
case s:TransferTransaction =>
#ะขัะฐะฝะทะฐะบัะธั ะฒัะฒะพะดะฐ ััะตะดััะฒ ัะฐะทัะตัะตะฝะฐ ัะพะปัะบะพ ะฒ ัะปััะฐะต ะตัะปะธ ะฒัะต ะฟะตัะตะฟะปัะปะธ ะฝะฐ ะดััะณะพะน ะฑะตัะตะณ
human == 1 && wolf == 1 && goat == 1 && cabbage == 1
#ะัะต ะฟัะพัะธะต ัะธะฟั ััะฐะฝะทะฐะบัะธะน ะทะฐะฟัะตัะตะฝั
case _ => false
}
PHP เชธเซเชชเซเชฐเชฅเชฎ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชเชฒเซเชจเซ เชคเซเชฎเชจเซ เชเซเชจเชพ เชธเซเชตเชฐเซเชชเชฎเชพเช เช เชจเซ เช เชจเซเชฐเซเชช เชฌเซเชฒเชฟเชฏเชจ เชเชเซเชธเชชเซเชฐเซเชถเชจ เชตเซเชฐเซเชเชฌเชฒเชจเซ เชฌเชนเชพเชฐ เชเชพเชขเซ เชเซ.
cabbage: extract ( getInteger ( contract , "cabbage" ) )
goat: extract ( getInteger ( contract , "goat" ) )
human: extract ( getInteger ( contract , "human" ) )
wolf: extract ( getInteger ( contract , "wolf" ) )
fState: human== 1 && wolf== 1 && goat== 1 && cabbage== 1
fState:
wolf:
goat:
cabbage:
cabbageSide: cabbage== 0 || cabbage== 1
human: extract ( getInteger ( contract , "human" ) )
newGoat: extract ( getInteger ( t.data , "goat" ) )
newHuman: extract ( getInteger ( t.data , "human" ) )
goatSide: goat== 0 || goat== 1
humanSide: human== 0 || human== 1
t7: humanTravel && newWolf== wolf && newGoat== goat && newCabbage== cabbage
t3: humanTravel && newWolf== wolf && newGoat== goat && newCabbage== cabbage + 1
t6: humanTravel && newWolf== wolf && newGoat== goat && newCabbage== cabbage - 1
t2: humanTravel && newWolf== wolf && newGoat== goat + 1 && newCabbage== cabbage
t5: humanTravel && newWolf== wolf && newGoat== goat - 1 && newCabbage== cabbage
t1: humanTravel && newWolf== wolf + 1 && newGoat== goat && newCabbage== cabbage
t4: humanTravel && newWolf== wolf - 1 && newGoat== goat && newCabbage== cabbage
safeAlone: newGoat != newWolf && newGoat != newCabbage
wolfSide: wolf== 0 || wolf== 1
humanTravel: human != newHuman
side: humanSide && wolfSide && goatSide && cabbageSide
safe: safeAlone || newGoat== newHuman
objectTravel: t1 || t2 || t3 || t4 || t5 || t6 || t7
PHP เชชเชเซ เชคเซเชฎเชจเซ Python เชฎเชพเช Z3Prover SMT-เชธเซเชธเชเชเชค เชธเชฟเชธเซเชเชฎ เชตเชฐเซเชฃเชจเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเซ เชเซ.
เชกเซเชเชพเชจเซ เชฒเซเชชเชฎเชพเช เชตเซเชเชเชพเชณเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชฏเชพเช เชธเซเชเซเชฐเซเช เชตเซเชฐเซเชเชฌเชฒเซเชธ เชเชจเซเชกเซเชเซเชธ i เชฎเซเชณเชตเซ เชเซ, เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธ เชเชจเซเชกเซเชเซเชธ i + 1 เช
เชจเซ เชเชเซเชธเชชเซเชฐเซเชถเชจ เชธเชพเชฅเซเชจเชพ เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธ เชชเชพเชเชฒเซ เชธเซเชฅเชฟเชคเชฟเชฅเซ เชเชเชณเชจเซ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชธเชเชเซเชฐเชฎเชฃ เชฎเชพเชเซเชจเชพ เชจเชฟเชฏเชฎเซ เชธเซเช เชเชฐเซ เชเซ.
เช เช เชฎเชพเชฐเชพ เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจเชจเซเช เชเซเชฌ เช เชนเชพเชฐเซเชฆ เชเซ, เชเซ เชฌเชนเซ-เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชฒ เชธเชฐเซเช เชฎเชฟเชเซเชจเชฟเชเชฎ เชชเซเชฐเซเช เชชเชพเชกเซ เชเซ.
fState: And( And( And( human[Steps] == 1 , wolf[Steps] == 1 ) , goat[Steps] == 1 ) , cabbage[Steps] == 1 )
final: fState[Steps]
fState:
wolf:
goat:
cabbage:
cabbageSide: Or( cabbage[i] == 0 , cabbage[i] == 1 )
goatSide: Or( goat[i] == 0 , goat[i] == 1 )
humanSide: Or( human[i] == 0 , human[i] == 1 )
t7: And( And( And( humanTravel[i] , wolf == wolf[i] ) , goat[i+1] == goat[i] ) , cabbage == cabbage[i] )
t3: And( And( And( humanTravel[i] , wolf == wolf[i] ) , goat[i+1] == goat[i] ) , cabbage == cabbage[i] + 1 )
t6: And( And( And( humanTravel[i] , wolf == wolf[i] ) , goat[i+1] == goat[i] ) , cabbage == cabbage[i] - 1 )
t2: And( And( And( humanTravel[i] , wolf == wolf[i] ) , goat[i+1] == goat[i] + 1 ) , cabbage == cabbage[i] )
t5: And( And( And( humanTravel[i] , wolf == wolf[i] ) , goat[i+1] == goat[i] - 1 ) , cabbage == cabbage[i] )
t1: And( And( And( humanTravel[i] , wolf == wolf[i] + 1 ) , goat[i+1] == goat[i] ) , cabbage == cabbage[i] )
t4: And( And( And( humanTravel[i] , wolf == wolf[i] - 1 ) , goat[i+1] == goat[i] ) , cabbage == cabbage[i] )
safeAlone: And( goat[i+1] != wolf , goat[i+1] != cabbage )
wolfSide: Or( wolf[i] == 0 , wolf[i] == 1 )
humanTravel: human[i] != human[i+1]
side: And( And( And( humanSide[i] , wolfSide[i] ) , goatSide[i] ) , cabbageSide[i] )
safe: Or( safeAlone[i] , goat[i+1] == human[i+1] )
objectTravel: Or( Or( Or( Or( Or( Or( t1[i] , t2[i] ) , t3[i] ) , t4[i] ) , t5[i] ) , t6[i] ) , t7[i] )
data: And( And( And( side[i] , safe[i] ) , humanTravel[i] ) , objectTravel[i] )
เชถเชฐเชคเซเชจเซ เชชเชพเชฏเชฅเซเชจเชฎเชพเช SMT เชธเชฟเชธเซเชเชฎเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชธเซเชเซเชฐเชฟเชชเซเช เชจเชฎเซเชจเชพเชฎเชพเช เชธเซเชฐเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชฆเชพเชเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเชพเชฒเซ เชจเชฎเซเชจเซ
import json
from z3 import *
s = Solver()
Steps=7
Num= Steps+1
$code$
#template, only start rest
s.add(data + start)
#template
s.add(final)
ind = 0
f = open("/var/www/html/all/bin/python/log.txt", "a")
while s.check() == sat:
ind = ind +1
print ind
m = s.model()
print m
print "traversing model..."
#for d in m.decls():
#print "%s = %s" % (d.name(), m[d])
f.write(str(m))
f.write("nn")
exit()
#s.add(Or(goat[0] != s.model()[data[0]] )) # prevent next model from using the same assignment as a previous model
print "Total solution number: "
print ind
f.close()
เชธเชฎเชเซเชฐ เชธเชพเชเชเชณเชฎเชพเช เชเซเชฒเซเชฒเชพ เชฐเชพเชเซเชฏ เชฎเชพเชเซ, เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชตเชฟเชญเชพเชเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชจเชฟเชฏเชฎเซ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ Z3Prover เชเซเชเซเชเชธ เชถเชฐเชคเซเชจเชพ เชธเซเชเชจเซ เชถเซเชง เชเชฐเชถเซ เชเซ เชเชเชฐเซ เชเชฐเชพเชฐเชฎเชพเชเชฅเซ เชญเชเชกเซเชณ เชชเชพเชเซ เชเซเชเชเซ เชถเชเชถเซ.
เชชเชฐเชฟเชฃเชพเชฎเซ, เช
เชฎเซ เชเชชเชฎเซเชณเซ เช
เชฎเชพเชฐเชพ เชเชฐเชพเชฐเชจเซเช เชธเชเชชเซเชฐเซเชฃ เชเชพเชฐเซเชฏเชเชพเชฐเซ SMT เชฎเซเชกเซเชฒ เชชเซเชฐเชพเชชเซเชค เชเชฐเซเช เชเซเช.
เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ เชคเซ เชฎเชพเชฐเชพ เช
เชเชพเชเชจเชพ เชฒเซเชเชจเชพ เชฎเซเชกเซเชฒ เชธเชพเชฅเซ เชเซเชฌ เชธเชฎเชพเชจ เชเซ, เชเซ เชฎเซเช เชเชพเชคเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเซเชฏเซเช เชเซ.
เชชเซเชฐเซเชฃ เชฅเชฏเซเชฒ เชจเชฎเซเชจเซ
import json
from z3 import *
s = Solver()
Steps=7
Num= Steps+1
human = [ Int('human_%i' % (i + 1)) for i in range(Num) ]
wolf = [ Int('wolf_%i' % (i + 1)) for i in range(Num) ]
goat = [ Int('goat_%i' % (i + 1)) for i in range(Num) ]
cabbage = [ Int('cabbage_%i' % (i + 1)) for i in range(Num) ]
nothing= [ And( human[i] == human[i+1], wolf[i] == wolf[i+1], goat[i] == goat[i+1], cabbage[i] == cabbage[i+1] ) for i in range(Num-1) ]
start= [ human[0] == 1, wolf[0] == 0, goat[0] == 1, cabbage[0] == 0 ]
safeAlone= [ And( goat[i+1] != wolf[i+1] , goat[i+1] != cabbage[i+1] ) for i in range(Num-1) ]
safe= [ Or( safeAlone[i] , goat[i+1] == human[i+1] ) for i in range(Num-1) ]
humanTravel= [ human[i] != human[i+1] for i in range(Num-1) ]
cabbageSide= [ Or( cabbage[i] == 0 , cabbage[i] == 1 ) for i in range(Num-1) ]
goatSide= [ Or( goat[i] == 0 , goat[i] == 1 ) for i in range(Num-1) ]
humanSide= [ Or( human[i] == 0 , human[i] == 1 ) for i in range(Num-1) ]
t7= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] ) , goat[i+1] == goat[i] ) , cabbage[i+1] == cabbage[i] ) for i in range(Num-1) ]
t3= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] ) , goat[i+1] == goat[i] ) , cabbage[i+1] == cabbage[i] + 1 ) for i in range(Num-1) ]
t6= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] ) , goat[i+1] == goat[i] ) , cabbage[i+1] == cabbage[i] - 1 ) for i in range(Num-1) ]
t2= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] ) , goat[i+1] == goat[i] + 1 ) , cabbage[i+1] == cabbage[i] ) for i in range(Num-1) ]
t5= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] ) , goat[i+1] == goat[i] - 1 ) , cabbage[i+1] == cabbage[i] ) for i in range(Num-1) ]
t1= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] + 1 ) , goat[i+1] == goat[i] ) , cabbage[i+1] == cabbage[i] ) for i in range(Num-1) ]
t4= [ And( And( And( humanTravel[i] , wolf[i+1] == wolf[i] - 1 ) , goat[i+1] == goat[i] ) , cabbage[i+1] == cabbage[i] ) for i in range(Num-1) ]
wolfSide= [ Or( wolf[i] == 0 , wolf[i] == 1 ) for i in range(Num-1) ]
side= [ And( And( And( humanSide[i] , wolfSide[i] ) , goatSide[i] ) , cabbageSide[i] ) for i in range(Num-1) ]
objectTravel= [ Or( Or( Or( Or( Or( Or( t1[i] , t2[i] ) , t3[i] ) , t4[i] ) , t5[i] ) , t6[i] ) , t7[i] ) for i in range(Num-1) ]
data= [ Or( And( And( And( side[i] , safe[i] ) , humanTravel[i] ) , objectTravel[i] ) , nothing[i]) for i in range(Num-1) ]
fState= And( And( And( human[Steps] == 1 , wolf[Steps] == 1 ) , goat[Steps] == 1 ) , cabbage[Steps] == 1 )
final= fState
#template, only start rest
s.add(data + start)
#template
s.add(final)
ind = 0
f = open("/var/www/html/all/bin/python/log.txt", "a")
while s.check() == sat:
ind = ind +1
print ind
m = s.model()
print m
print "traversing model..."
#for d in m.decls():
#print "%s = %s" % (d.name(), m[d])
f.write(str(m))
f.write("nn")
exit()
#s.add(Or(goat[0] != s.model()[data[0]] )) # prevent next model from using the same assignment as a previous model
print "Total solution number: "
print ind
f.close()
เชฒเซเชจเซเช เชฅเชฏเชพ เชชเชเซ, Z3Prover เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเซ เชเชเซเชฒเซ เชเซ เช เชจเซ เช เชฎเชจเซ เชตเซเชฏเชตเชนเชพเชฐเซเชจเซ เชธเชพเชเชเชณ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ เชเซ เช เชฎเชจเซ เชญเชเชกเซเชณ เชเชชเชพเชกเชตเชพ เชฆเซเชถเซ:
Winning transaction chain found:
Data transaction: human= 0, wolf= 0, goat= 1, cabbage= 0
Data transaction: human= 1, wolf= 0, goat= 1, cabbage= 1
Data transaction: human= 0, wolf= 0, goat= 0, cabbage= 1
Data transaction: human= 1, wolf= 1, goat= 0, cabbage= 1
Data transaction: human= 0, wolf= 1, goat= 0, cabbage= 1
Data transaction: human= 1, wolf= 1, goat= 1, cabbage= 1
Data transaction: human= 1, wolf= 1, goat= 1, cabbage= 1
Transfer transaction
เชซเซเชฐเซ เชเซเชจเซเชเซเชฐเชพเชเซเช เชเชชเชฐเชพเชเชค, เชคเชฎเซ เชคเชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เชเซเชจเซเชเซเชฐเชพเชเซเชเซเชธ เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ เช เชฅเชตเชพ เช เชธเชฐเชณ เชเชฆเชพเชนเชฐเชฃ เช เชเชฎเชพเชตเซ เชถเชเซ เชเซ, เชเซ 2 เชตเซเชฏเชตเชนเชพเชฐเซเชฎเชพเช เชเชเซเชฒเชพเชฏ เชเซ.
let contract = tx.sender
let a= extract(getInteger(contract,"a"))
let b= extract(getInteger(contract,"b"))
let c= extract(getInteger(contract,"c"))
let d= extract(getInteger(contract,"d"))
match tx {
case t:DataTransaction =>
let na= extract(getInteger(t.data,"a"))
let nb= extract(getInteger(t.data,"b"))
let nc= extract(getInteger(t.data,"c"))
let nd= extract(getInteger(t.data,"d"))
nd == 0 || a == 100 - 5
case s:TransferTransaction =>
( a + b - c ) * d == 12
case _ => true
}
เช เชชเซเชฐเชฅเชฎ เชธเชเชธเซเชเชฐเชฃ เชนเซเชตเชพเชฅเซ, เชตเชพเชเซเชฏเชฐเชเชจเชพ เชเซเชฌ เช เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเซ เช
เชจเซ เชคเซเชฎเชพเช เชญเซเชฒเซ เชนเซเช เชถเชเซ เชเซ.
เชจเซเชเซเชจเชพ เชฒเซเชเซเชฎเชพเช, เชนเซเช VM เชจเชพ เชตเชงเซ เชตเชฟเชเชพเชธเชจเซ เชเชตเชฐเซ เชฒเซเชตเชพเชจเซ เชฏเซเชเชจเชพ เชเชกเซ เชฐเชนเซเชฏเซ เชเซเช, เช
เชจเซ เชฌเชคเชพเชตเซเช เชเซเช เชเซ เชคเชฎเซ เชคเซเชจเซ เชธเชนเชพเชฏเชฅเซ เชเชชเชเชพเชฐเชฟเช เชฐเซเชคเซ เชเชเชพเชธเชพเชฏเซเชฒ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเซเชธ เชเซเชตเซ เชฐเซเชคเซ เชฌเชจเชพเชตเซ เชถเชเซ เชเซ, เช
เชจเซ เชฎเชพเชคเซเชฐ เชคเซเชจเซ เชนเชฒ เชจเชนเซเช เชเชฐเซ.
เช
เชเซเชทเชฐ เชตเชฐเซเชเซเชฏเซเช
เชฒ เชฎเชถเซเชจ เชชเชฐ เชเชชเชฒเชฌเซเชง เชเซ
เชธเชพเชเชเซเชคเชฟเช VM เชจเชพ เชธเซเชฐเซเชค เชเซเชกเชจเซ เชเซเชฐเชฎเชฎเชพเช เชฎเซเชเซเชฏเชพ เชชเชเซ เช
เชจเซ เชคเซเชฏเชพเช เชเชฟเชชเซเชชเชฃเซเช เชเชฎเซเชฐเซเชฏเชพ เชชเชเซ, เชนเซเช เชคเซเชจเซ เชฎเชซเชค เชเชเซเชธเซเชธ เชฎเชพเชเซ GitHub เชชเชฐ เชฎเซเชเชตเชพเชจเซ เชฏเซเชเชจเชพ เชเชกเซ เชฐเชนเซเชฏเซ เชเซเช.
เชธเซเชฐเซเชธ: www.habr.com