Files
proxmark3/fpga/tests/tb_data/pcf7931_write1byte_1MSA_data.in
T
iZsh 3b2fee43ea New LF edge detection algorithm + lowpass filter
This is a new LF edge detection algorithm for the FPGA.

- It uses a low-pass IIR filter to clean the signal
(see https://fail0verflow.com/blog/2014/proxmark3-fpga-iir-filter.html)
- The algorithm is able to detect consecutive peaks in the same
  direction
- It uses an envelope follower to dynamically adjust the peak thresholds
- The main threshold used in the envelope follower can be set from the ARM side

fpga/lf_edge_detect.v,
fpga/lp20khz_1MSa_iir_filter.v,
fpga/min_max_tracker.v: New file.

fpga/lo_edge_detect.v, fpga/fpga_lf.v: Modify accordingly.

armsrc/apps.h (FPGA_CMD_SET_USER_BYTE1,
FPGA_CMD_SET_EDGE_DETECT_THRESHOLD): New FPGA command.
fpga/fpga_lf.v: Modify accordingly/Add a 8bit user register.

fpga/fpga_lf.bit: Update accordingly.

fpga/tests: New directory for testbenches

fpga/tests/Makefile: New file. It compiles the testbenches
and runs all the tests by default (comparing with the golden output)

fpga/tests/tb_lp20khz_1MSa_iir_filter.v,
fpga/tests/tb_min_max_tracker.v,
fpga/tests/tb_lf_edge_detect.v: New testbenches

fpga/tests/plot_edgedetect.py: New script to plot the results from
the edge detection tests.

fpga/tests/tb_data: New directory for data and golden outputs
2014-06-27 14:27:03 +02:00

1 line
26 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
qqjd]Zmtmj`Zmǚwmj`]twmj`]twqjg`twqjg`w~tmj`w{tmj`w~tmjd{~wmjg{~wmjg~qjg{qjg~qjj~tmj~qmg{tmj~tmj{tmj~tqj~tqj~wqj~tmj~wqj~wqj~wqjqm~wqj~wqm~wqmqjtmqjtmtmtmtm~wtmtmtjtmtmtmtmtmtmtmtm𢅺~w霟錧蚘羹欘貏𥡗錆硞郥錧蚘羅奩蚙撰砲怛懦洽鮝僧㺩釧㺩釧㺩釧尐釧尐釧㺩釧鈫釧鈫洽𦅚洽𣺿~w~w~w~t~t{t{t{t{t~~wtǚ{q~~wq~~{t~~wq~~wq~~wq~~wq~~wq~{wm~{tm~~tq{{tm~{tm~{tm{{tm~~wm{{tm{{tq{{tm{{tm~{tm{{tm~{tm{{tm{{tm~{tm{wqm{{tm{{tmwwqmj{qj`ZSPIMF<62/,(2,%,%,6/,"CMC96/,(Z]VPF?<6jqj]VPMFtwqg`ZSPwjg`ZSwmj`]Vtmg`ZVwqj`]Vtmj`ZVwqj`]V{tjd`Z{tjg]Zmjd]qj`]qjg`tjg`tmg`tmj`tmj`ǚwmjgwqjgwqjg{qjjwqjg{tmg{tmg叚wq嚭諕陊戴帮鍕芇骱蚘匎駂芢撰歐芤像岷怖像獏釧畺砭畺洽畺砲Ⅰ砲Ⅰ釧Ⅰ砲畺洛櫊砭𨧹𨯵~w焵~w焵~w焵{t焵~t𥅾{t𥅾wt𥅾{ttmm~tjd]ZSPMC<62/,(/,""/,"6<6/(%PPM?962/ddZSIF?<qqj`ZSPFw{qj`]VP{~tjd]ZS{qj`]Vwmg`]V{mg`]V{mj`]V{mj`]V{qjd]Z~qjg]Z~tmj`]qjd]qjg]tjj`qjj`tmg`tmjdǚtqjdwqjgǚtqjdwqjgwqjgwqmj{tmj╰wq欘諕陊戴帮錆褀誾訧郩骱陊戴蹼陏像洽紜撲岷彼隆往砲旦砭牲砲牲砲往砲牲砲旦洽旦洽4洽𨺗𩅛𧋦𩅛𡾞~w𢅺~{襔{w𡾞{t𡾞{t裦{t坾{t儍wqq~wjd]ZSPPF<62/,,/(",2,"<96/,"VPI?96/,jd]SMF?<wqj`ZPPFtj`]VPtjd]ZSwmg]]Swmg`ZSwmg`ZSwmg`]Vwmg`ZV{qjd]Z~tjg]Z~tmg`]qjg]qjd]qjg`tjg`tmg`ǚtmjgǚtmjdwqjgwqjgwqjg{tmj{tmj{tmjwq囔骱芢撕帮錆帮諕蚐搿骱陊撕ヽ陏像洽嘟撰岷紡釧笆砲笆砭章砲飪砲章野章砲笆砭笆洽~w~w畆~w畆~w畆~w䰻{t畆{t㱔{t䰻{t𣫺wqq~tjd]ZSPPF<62/,,/,"//,%C96/,%"ZPI?962/mg]SPFC<wqj`ZSPIqj`]VPtmg]ZSwjg`ZSwmg`]Vtmg`ZSwmg`]Vwmg`]V{qjd]Z~tjd`Z~tmg`]qjd]qjd`qjg`tmj`tmj`ǚwmjdǚtmjdǚwqjdwqjgwqjd{qmjwqmg{qjg洽wq芇骱陊撰帮錆芇諕蚘鋋駂陊戴倵陏僖岷曙撲洽飲釧凳砭凳砭凳洽凳砲凳砭凳砲凳洽~w洵~w巧~w帘~t孕{t孕{t孕{t孕wt╰wqw{tjd]VSPPC<6//,,/("2/("F<6/,%"ZPF?92/,qd]PMF?9~qj`ZSPFqj`ZSP𠸑wmg`]Sǚtjd`ZSwmg`ZSwmg]]Swmg`]V{qj`]V{qj`]Z~tjg`]~tmj`]mjd]qjg`qjg`tmj`tmjdtmj`wmjdǚtmjdwqjgwqjgwqjgwqmj{qmg砭wt褀骱陊撕褀鍕芇骱蚘嚭諕陊戴跂芤僖洽勹撲岷撮釧撕砭撕砲撕砲羅砲羅砲撕砭撕砭~w祟~w祟~{洛{w洸~t岩{w岩ǚ{t洛{t失ǚ{twq{~tj`]ZSPIC<6//,//,"6/("I<6/,%]PM?96/,qd]SMCC9j`]SPIòqg`ZSP糎wmg]ZSwmg]ZS𠸑wmg`]Swmg`ZVwmg`]V{qj`]Z{qj`]V~tjd`Z~wmj`]qjd]qjg]qjg]tmg`tmj`tmj`ǚwqjdtqjgwqmgwqjgwqmg{tqj{tmj砭{t褀駂陊戴帮鍕芇骱蚘鐕駂陊戴楈芤像洛岊像ⅷ隄羅砭羅砲羅砲ⅴ砲ⅷ野羅野ⅴ砲羅洽~w隄~w釧~w野{t釧~t砲{t砲{t洛{t洽wqtjg]ZSPPC<62/,2/,"6/,"F<6/,%"]SM?962/md]SMF?9j`ZVPIùqj`]ZP𠸑tmg`ZSwmg`]V𠸑wmg`ZVwmg`]Vwmg`]V{qjd]Z{qjd]Z{qjg`Z~tmgd]mj`]qjg`tjg`tjg`tmjdtmjdǚwqjgǚwqjgǚwqjgwtmjwqmg{qjg{tmj砭wq褀諕蚙戴褀鍱芇諕蚘芇駂陊懦骱陊像洽陊像宎隆ⅴ砲ⅴ砭ⅴ砲ⅴ砲ⅷ祟ⅴ砲ⅴ砭羅洽~{隆~w隆~w野~t鼎~w野{t野{t階{ttqtjg]ZSPMC<62/,6/("</,"F96/("]PF?96/,m`ZPMC?9~qj]VSPIùqj`]VP𠸑tmg]ZSwmg`ZS糎tmg]ZSwmg]ZSwmg`]Swmj`]V~tjd`Z{tjg]Z~tmg`]qjg]qjg`tmj`tmj`tmjdǚtmjgǚtmjg{qmgwqjg{tmg{qmj{qmj{wmj{q𦂃諕陊戴幺鍕帮誾蚘𦂃諕陊撕諕陊像洽觖撲洽芡閉妏釧ⅴ砭宎祟妏砲妏野妏野ⅴ洽ⅴ洽~w鼎~w鼎~w鼎{w階~w階~t野{t野{wwmtjg]ZSSPF<66/,6/,"</,%I<6/,%"]PI?962/md]SMF?<~qg]ZSPFqj`]VP𠸑tjd]ZSwmg]ZS𠸑wmg]ZS𠸑wmg]ZSwmj`]V糎wmg`]V{qjd]Z{tjd]Z{tmg`Zmjd]qjd]qjg`qjg`tjg`tmj`tjjdǚwmjgǚwqjgǚtqjjwqjgwqjgwqmgwtjgwtjj{tmj{tmj~tmj{tmj{tmj~wqj{tmj~wqj~wqj~tqj~wqj~wmj~wqm~wqj~wqj~wtj~wqjtmtj~wqj~wqj~wqmtm~wqj~wtmtm~{qmtm~wtmtm隆~w𥡗錧蚘羅禩鍱𥡗鍕硞鐋楂岋澗祳ⅷ閉矢芤僧㼎懦洽𨌺撲~嶸~w僧~w鼎{w鼎~w馴{t鼎~w野{t階wq閒{t郭wt野wt砭wq郭wq郭wq砭tq郭wq砭tqwmwmtmwqtmtmwmtmwmtmtmtmtmtqtmtmtmtmtm~{tjtmtjtm~wqjmg]VSPSIC96/,,9/,"6," ?6/(%PI?92/,(g]VPF?<6wmg]VPIFmj]ZSPǚtmg]ZStmg]ZSwmg`]V𠸑wmg`ZSwmj`ZS{mj`]Swqjd]V{tjg`Z~tmg`Zmgd]qjg]tjg`qjj`tmj`tmj`ǚwmjgtqjdwqmgǚwqjgwqmg{qmg{qjg{tmjwtmj{tmj{tmj{tqj~wqj~tqj~wqj~wqj{tqj~wqj{tmj~wqj~wqj{wqjqj~tqj~wqj~wqj~wqjtj~wqj~wqm~wqj~wqjtj~wqj~wtmtm~wqjtm~wqj砲{t𥡗誾蚙羅禩鍱帮鬾蚐鼩祳岋察楅ⅴ閉矢ⅷ隄𠸝繹洽彑僖{摩~w僧~w隆{t隆~t階{t野{t階{t砲wq砭tm𠸑qjd]VPSIC96/,,6/("6/(C<6/,%"ZPF?96/,j`ZPIF?9{qj`ZSPImj]ZSPtmg]ZSǚwjg`ZSǚtjg]ZSwmg`]Sǚtmg]ZS{mj`]V{qj`]V{qjg]Z~tmgd]~tmjd]qjg]qjg`qjg]tmjdqjg`tmjdtmjdwmjgwqjgǚwqjg{tjgwqjg洽wm芇駂芢撰帮錆芇骱倇𦂃駂芢撕諓岋僖岷蚙僖宎釧ⅴ洛羅洽ⅴ砭ⅴ洽ⅴ砲羅洽繹洽繹洽~w隆~w野{t郭{t砲{t砭{q砲{t砭{twm𠸑tjd]ZSSIC<6//,6/("6/(?<6,("VPI?96/,j`ZPIC?9{mj]ZSPFqj`ZSPtj`]ZPǚwmg]ZSǚtjg]ZSǚwjg`ZSǚtmg]]Swjg`]S{qjd]Z{qjd]V~tmg`Z~tmj`]mjd]qjg`qjg`tmgdtmgdwmjdǚwqjgtqjgwqjgwqjgwqmg{tmgwq芇駂芢撰禩鍱芇誾囔骱蚘芇慪芤撰駂芤僖洽蚙僖ⅷ釧羅砭羅洽ⅴ砲ⅴ砲ⅴ野ⅴ砲繹洽繹洽~w隄~w釧~w野{t釧~w砲{t野{t砲{t砭ǚ{t砲{ttmùtjd]VSSMF<62/,6/("6/,"C<6/(%ZPI?962/j`ZSPF?<{qj`ZSPFqjd]VPtmg]ZSǚtmg`]Vǚtmg]ZStmd`ZSǚwmg`]Vǚwmg`]V{qjd]Z{qjd`Z~tmg`Zqj`]mjd]qjg`qmg`tmg`tmjdtmj`ǚwmjdtmjdǚwqmgǚwqjgǚwqjg{qjjwq芇駂芢撕帮錆芇骱蚘囔慪芤撰駂芡僖洽蚙像岷ⅴ祟羅砭羅洽羅洽繹洽羅砭懦洽~w釧~w釧~t砲{t砲~t砲{t砭{t砲{t砭wq砭wqtmqj`]VPSIC<6/,(2/%6/("?96,("VPF?62/,j`ZPIF?9wqg]VPMFmj`ZSPtjd]ZSǚtjg`ZSǚwjg]ZSǚtjg]ZSǚwmj`ZSǚtmg`ZV{qj`]V{qjg`Z{tjg]Zmjd]mjd]qjg`tjg`tmj`wmjdtmj`wmjdǚwqjdǚwmjgwqmgwqjg{tjgwq芇駂芢撰帮錆芇骱蚘芇駂芤撰駂岍僖岷蚙撲岷ⅷ祟羅砲羅洽戴砭羅砲羅砲羅砲懦洽ǚ僖~{釧~w釧~w砲{t砲{t砲{t砲{t洽wt洽{twqtj`]VPSMC<62/,6/,"6/,%C<6/,%"VPF?92/,jd]SMF?9{qj`ZPMFqg`ZSPtjg]ZStjg]ZSǚwmg`]Stmd]ZSwmg]ZSwmj`ZVwmg`]Z{tjg`Z~tjg`Zmj`]mjd]qjg]qjj`tjg`tmjdtmjdtmjdǚwqjgǚwqjg{qjgwtmgwqjj洽wq芇摍芤撰芇諃禩鍱豝旲鍱豝ⅷ嗤蚘撕祟Bⅴ祟𠡳僖~tjg``VPF?992?92,("?96/("PI<62/,%`ZSIC<96tjdZSMFCmg]VSPwmg`]Vwqj`]V{qjd`Zwmj`]V{qj`]Z{qjd]V{qjd]Z~tmg`]~tmgd]~wqjd]qjg`qjg`tmj`tjg`wmjgǚwmjgtmjdwqjgǚwqjgǚwqmg{qmjwqmg{tmjwq囔駂芢撕禩鍱㺨鍡㺨鍱祳旰鍱蚐ⅷ嗡訧羅閉Bⅴ祟𠡳僖~僖~w釧~w釧{w砲{t砲{w砲wt砲ǚ{t洽ǚwt洽wq洛{t洽wq洽wq洽wqtm岷wmtmtqwmtmwqtmwqtmtmtmqjtmtjtjtmqjtjtm~wqjtm~wqjqmqjqjqm~wqjtj~wqj~wqj~wqj~wqjqj~wqj~wqjtj~wqjqm~wtj~wqjqm~wqjqm~wtj~wtjtm~{tjtjqjqjtm~wqjtmqm~wtj~wtj~wqjqmqjtmtmqmtmtmtmwmtmtmtmtmtmqmtmtjtmtmtmtmtjtmtmtmtmtmtmtmtmtm~wqjtmtmtj~tqj~wmd]VPPSPF<62/,96/%2,% 92,(MF96/,("`ZSIC<96tj`ZSPIC~tmg]VPMtjd]ZStjd]ZSwmg`ZStjg]ZSǚtjg`ZSwmg]]Vǚwmg`]V{qjd`Z{qjd]Z~tmg`Z~tmjd]qjd]qjg`qjg]tmj`tmjdtmj`ǚwmjgtmjdǚwmjdǚwqmgǚwqjgwqmgǚwqmjwtmj{tmj{tmj{tqj{tmj~tqj{tmj{tmj~wqj~tqj~wqj~tqj~tqj~wqm~tmj~wqm~wqj~wqjqj~wqj~wqj~wqj~wqjtm~wqjtm~wqjtjtm~wtjqm~wtj~wtjtm~wqmtm~{qmtmtm~wtmtmtmtmtmtjtm~wtmtmtjqmtm~wtjtmtm~wtm~{tm~wqjtmtmqj~wtj~wtmtmtmtjtm~{qmtmtmtmtmtmtm~wtmtmtm~wtmtmtmqjtm~wtjtmtj~wtjtm~wtmtm~wtm~wqjqmqjtm~wqmtmwq釧~w僧{t~wqmǚtmjdmjd]~tmg`]~tmg`Zmjd]qjg`tmj`tmjgtmjdwqjgǚwqjgǚwqjgwqjgǚwqjgwtmgwtmj{tmj{tmj{tmj{tmj{tmjd]SPF?<62/(" ]VMF?966芇鬾蚘羅砲qj`]ZP]SIC<66/g]SMC?<6wqg`ZSPFwqjd]]tmj`{tmj{tqj{tmj{qmjtqjdwqjgwmjdwqjgwqjgwtmj{tmj{tqj{tmj~tqj~tqj~wqj{tqj~wqj~wqj{tqj~wqm~tqj~wtj~wqm~wqj~wqm~wqj~wqj~wqm~wqj~wtm~wqj~wqj~wtmtjtm~wqjtmtj~wtm~wtmqjtjtj~wqjtmj`VPIC?96/,%w芇誾衄ⅴ釧tjd]ZS`ZPFC<96wmg`VPPI{qjd]Ztmj`wqmjwqmgwqjgtmj`qjg`qjg`qjg`tmj`tmjdtmjdwqjgwqjgwqjgwqjgwqjg{tjjwtmg{qmj{tqj{tmj{tmj{tmj{tmj{tmj{tmj~tqj{tmj~wqj~tqj~tqj~wqj~tqj~wqj~tqj{tqj~wqj~wqj~wqm{wqj~tqj~wtj~wqj~wqm~tqj~tqjqm{tqj~wqj~wqj~wqm~wtj~wqjtm~wqj~wqj~wqj~wqj~wqj~wqj~wtm~{tj~wqj~{tm~wqjtm~wtm~wqjtm~wqj~wtm~wtj~wqmtm~wqjqm~wtm~wtm~{qj~wqjtj~wtm~wqjtmqjtm~wqj~wqjtj~wqmtm~wtm~wtmtm~wqmqmtj~wtmtm~wtjtmtj~wtmtmtjtm~wtmtmtmtmtm~{tmtmtm~wtmtmtmtmtmtjtmtjtmtmtjtmtjtmtm~wtmtm~wtjtmtjtmtmqjqmtmqjtm~wtm~{tm~{tm~wtmtm~{qj~{tmtm~wtjtm~wtjwmtmtjtm~wtjtm~wtm~wtmtm~wtjtm~wqj~wtjtm~wqjtm~wqjtm~wtm~wqjg]VPFC<92/(" w帮鬾谹羅釧tjd]ZS`ZPIC<96wmj`VSPI{qjd]Zǚtmjgǚwqjgwqjgtmjdqjj`qjg`qjg`tmg`tmg`tmj`ùtmjdtmjdwqjgwqjgwtjgwqjjwqmg{qmjwtjj{tmj{wmj{tmj{tqj{tmj{wmj~wqj~tmj~wqj~tqj~wmj~wqj~wmj~wqj~wqj~wqj~wqm~wqj~{tm~wqj~wqmqm~wqj~wtj~wqj~wtj~wqm~wqjtm~wqm~wqm~wqj~wqjtm~wqmtj~wqj~wqjtm~wqjqj~wqm~wqmqm~wqjtm~wqj~wqjtj~wqmtm~wtm~wtj~wtmqj~{tm~wtjqmtm~wtjwm~wqm~wtmtm~wtj~wtm~wqj~wtj~wtm~wqj~wtm~wqj~wqj~{tj~wqj~wtm~wqjtj~wqj~wqjtm~wtj~wqj~wqm~wqj~wtm~wqj~wtm~wqjg]VPIC<66/,% {囔誾蚐ⅴ祟qj`]ZP]VPI?<62wmg]ZPPFwmj`]Ztmjdwqjgtmjdtmj`qjg`qjg]qjg`qjg]tjj`tmg`tmj`ǚtmjdwqjdwqmgǚwqjgwqmg{qmgwqjg{tmj{tmj{tmj{tmj{tmj{wqj{tmj{tqj{tqj~tmj~wqj~tqj~wqj~tqj~tqj~wqj{wqj~wqj~wqj~wqj~wqj~wqj~wtj~wqj~wqj~wqm{wmj~wqj~wqj~wqjqm~wqj~wqj~wqj~wqj~wqj{wqj~wtm~wqj~wqjqj{wqj~{qjqj~wtj~wqm~wqj~wtmqm~wtj~wqm~wqj~wqm~wqj~wtj~wqm~wqmqm~wqm~wtj~wqm~wqmqm~wqj~wqm~wqm~wqjtm~wqj~wqm~wqj~wqjtm~wqj~wqm~wqj~wqj~wqj~{qj~{tm~wqj~wqj~wqj~wqj~wqm~wqj~wqj~wtm~wqj~{tmg]VPIC?96/,% (w帮鬾谹ⅴ祟mj`ZVP]VPFC<92wmd]VPICwqjd]Ztmjdwqjgwqmdtmjdtjg`~tmjd]qjg]qjg`qjg]tmj`tmjdwqjgwqjgwmjg{qmgwqjg{tmgwqmg{tmj{tqj{qmj{tmj{tmj{tmj{tmj{tmj{wmj{tqj{tqj~tqj{tmj~wqj{tqj{tqj~wqj{wmj~wqj{tmj~wqj~wqj~wqj~wqj~tqj~wqj~wqj~wqj~wtj~wqj~wtm~wqj~wqjqm~wqj~wtm~wtm{wqmtm~wqj~wtm~wtj~wqjtm~wqj~wtm~{tmtj~wtm~wtjqmqm~wtmtm~{qjtm~wqj~wtmtm~wqj~wtm~wqj~wtjtm~wqjqm~wtj~wqm~wqj~wqjtj~wqj~wqjqj~wqj~wqm~wqj~wqj~wqm~wqmqm~wqj~wtm~{qm~wqj~wqm~wqm~wtj~wqj~wqjd]SPFC<92/(" 9w帮誾蚐羹砲qj`]VP`VPFC<92tmg]VPMFwmj`]Ztmjdǚwmjdǚwmjgtmjdqjg]qjg`qjd]qmg`qjg`qjjdtmjgtmjdwqjgwqjgwqmgwtjgwqjg{tmjwqjgwqmg{tmjwqmg{tmj{tmj{tmj{tmj{tmj{tqj{tqj{wqj{tqj{tmj~wqj~tqj~wqj~wqj{tmj~wqj{wqj~wqj~wqm~wqj~wqj~wqj~wtj~wqj{wqj~wtj~wqj~wtj~wqm~wqm~wtm~wqj~wqj~ttj~wtj~wtj~wtj~wtm~wqj~wqjtm~wqj~wtm~wqj~wqj~wtm{wqj~wqj~wqj~wqj~wtj~wqj~wtm~wqj~wqm~wtm~wqj~wqj~wqj~wqm~wtm~wqj~{tm~wtj~wqm~wtm~wtj~{tm~wtm~wqm~wtm~wqm~wtm~wtj~wqmtj~wqj~wtm~wqj~wtjqm~wtjtm~wtj~wtm~wqjg]VPFC<66/(" P洽{芇誾谹ⅴ祟qj`]VP`VPFC<96wmg]ZPMFwqjd]Ztqjdǚwqjgwqjgwqjdqjg`qjg`qjg`mjg`tmj`tmjdwmjdtqjgǚwqjgwtmgǚwqjgwqmg{tmjǚwtmg{tmjwqmgwtmj{tmj{qjg{tqj{tmj{tqj{tmj{tmj{tmj{tmj{tqj{tmj{tqj~wqj{tmj~wqj~wqj{wqj~wqj~wqj~wqj~wqj~tqj{wqm~wmj~wqj~wqj~wqj~wqm~wqj~wqm~wqj~wqj~wqj{wqj~wqm~wqj~wqj~wqj~wqj~wqm~tmj~wqj~wqj{wqjqm~wqj~wqj~wqj{wqjtm~wqj~wqj~wqj~wqjqm~wqj~{qm~wtj~wqjtm~wqmtj~wtm~wqj~wtm~wqj~wqj~wqm~wqj~wtm~wqj~wtj~wtj~wqj~wtj{tqj~wqm~wqj~wqm~wtm~wqj~wtj~wtj~wqj~wtj~wqj~wtjg]SPFC<62/(" `w囔鬾蚘羅砲qj`]ZS`VPIC<96tmg]VPMF{qjg`Ztmj`wqjgtqjgtmj`qjg`mjd]qjg]qjg`qjg`tmj`tmg`wmjdwqjdǚwmjdwqjgwqjg{qmgwqjgwqmg{tmgwqmg{tmj{tmj{qmj{wmj{tmj~tmj{tmj{tmj{wmj{tqj~wqj~tmj{wmj{wqj~wqj~wmj{wqj~tqj~wqj{wqj~wqj{wqj~wqj~wqj~wqj~wqm{wqj~wqj{wqj~wmjqj{wqj{wqj{wqj~tqj~{qj~wqj~wqjqj{wqj~wqj~wqj~wqj~wqj~wqj~wqm~wqj~wqj~wqj~tqj~wqj~wqj{wqj~wqj~wqj~{qj{wqm~wqj{wmj~wqj~wqm~tqjqj~wqj~wqj~wqj{wqj~wqj{wqj~tqj~wqj~wqj~wqm~wqj~wqj~wqm~wqj~wqj~wqj~wqj~wqj~wqj~wqj~wqj~wqj~wqj~tqjd]SPFC?62/(" tw芇誾谹羅砲mj`]VP]VPF?<62tmd]VPMFwmj`]Vwmjdtmjdtmjgtmg`qjg]qjg]~wmjd]qjg]qjg`qjg`tmjdtmj`wmjgwmjgwqjgwqmgwqmg{qmgǚwtjgwqmj{tmjwtmj{tmj{tmj{tmj{tqj{tmj{tqj{tmj{tmj~wqj{tmj{tqj~wmj{wqj~tqj{wmj~wqj{tmj~wqj~tqj{tmj{wqj~wmj{wqj~wqj{wqj~wqj~tqj{wqj{wqj~wqj~wqj~tmj~wqj~wqj~wqj~wqj~wqj~wtj~wqj~wqj~{qm~wqj~wqj~wqm~wqj~wtm{wqj~wqm~wqj~wqj~wqj{wqjtm~wmj~wqj~wqj{wqj~wqm{tmj{tqj~wqj{wqj~wqj{tqj~wmj{wqj{tqj~wqj~wmj~wqj~wqj{tqj~wqj{tqj~wqj~wqj~wqj~wqm{wqj~wqj~wqm~wqj~wtj{wmj{wqj{wqjd]VPFC?96/("~w芇鬾谹羅砲qj`]VS]VPF?<62tmd]VPMFwmj`]Vtmj`wqjgtqjdtmjdqjg`qjg]qjg]~wqjg`qjg`qjg`tmjdwqjdwqjdwqmjwqjgǚwqmg{qmgwqmg{tmjwtmg{tmj{tmj{tmj{tmj{tmj{tmj{tmj{tmj{wqj{tmj{tqj{tqj{tmj{wqj{wmj~wqj~wqj{tmj~wqj~tqj{wqj~wqj~wqj~wqj~wmj~wqj{tqj~tqj~wqm~tqj~wqj~wqj~wqj~wqj{wqj~wtj~wqj~wqj~wqj~wqj~wtj{wqj~wqj~wqj{wqj~wqj{tqj{wqj~wqj{tmj~wqj{tqj~wqj~wqj~wmj~wqj{wqj{tqj~wqj{wqj~wqj{tmj~wqj{wqj{tmj~wqj{tqj{wqj{wqj{wqj~wqj{wqj~wqj~wqj{wqj~wqj~wqj~wqm~wqj{wqj{wqj{wqj~wqj~wqj~tqj~wqj~wqj~wqjg]SPF?<62/(" ~w芇鬾蚐羅砲mj`]VP`VPI?<92tmg]SPIFwqjg]Ztjj`ǚwqjgwqjgtmg`qmj`~wqjd]qjg`qjg`qjg`tmjdtmjdtqjgwqjgtmjgǚwqjjwqjg{qmgwtjgǚwqjj{tmjǚwqjg{qmgwtjgwtmg{tmj{tmj{tmjwtmj{tmj{tmj{tmj{tmj{tmj{tmj{tmj{tmj~wqj{tmj{tmj~wqj{tmj{wqj{tmj{tmj{wmj{tmj~wqj{tqj~wqj{wqj{tqj~tqj{tqj{wmj{tqj~tmj~wqj{tqj~wqj{wqj{wqj~wqj~tmj~wqj~wqj{wqj~wqj{tqj~wqj~wmj~wqj~wqj~tqj~wqj~wqj{wqj~wtj{wqj~wqj~wqj{wqj~wqm~wmj~wqj~wqj~wqj~wqj{wqj~wqm~wqj~wqj~wtj{wtj~{qj{wqj~wqj~wqj~wmj~wqj~wqj~wqj~wqj~wqj~wqj{wqj{wqj~wqj{wqj`]SMF?96/,(~w囔諕蚘羅洛mj`]VP]VPF?<92tjd]VPMFwmg`]Ztmjdtmjdtqjgtmj`qjd`~wmjg]~tjjd]qjg]qjg`qjg`tmj`tmj`tmjdtmjdtmjdǚwqjgwqjdwtjgwqjgwqjgwtmgǚwqjgwqmgwqjgwqmj{tmj{tmj{tqjwtmj{tmj{tmj{tmj{tqj{tmj{tqj~tqj{tmj~wqj{tqj~tqj{wqj{tmj~wqj{tmj~wqj~wqj~tmj~wqj{tmj{wqj{wqj{tmj~wqj{wqj{wqj{wmj{tqj{wqj{wmj~wqj{tqj{tmj~wqj{wqj~wqj~wqj~tqj~wqj~wqj~wtj{wqj~wmj~wqj~wmj~wqj{wqj~wqj~wqj{wqjqm~wqm~wqj~wqj~tqj~wtm~tqj~wqj~wqj{wqj~wqj~wmj{wqj~wmj{wmj~wqm{wqj~wqj{wqj~wmj~wtj{wmj~tqj~wqj{tmj~wqj~wqj~wqj{wqjd]SMFC<62/("~w禩鍱祳岋僧wmj`]VP]VMF?<62tjd]VPMFwmj`ZZtmj`wmjdtmjdtmj`~wqjd]~wmj`]~tmjd]~wmjd]qmg`qjg`tmj`tmjdtmjgwqjgtmjgttjgwqjgwqjgǚwtmgwqjgwtmjwtmjwtmg{tmjwtmj{tmj{tmj{tmj~tqjwtmj{tmj{wmj{wmj~wqj{tmj{tqj{tqj{tmj~wqj{tmj~wqj{wqj{tqj~wqj{wmj{wqj{tqj~wmj~wqj{tqj~wqj{tqj~tqj{wqj{wmj~wqj~wqj{wqj~wqj{wqj~wtj~tmj~wqj~wqj{wqj~wqj~wqj~wqj~wqj~wqj~wqm~wqj{wqj~wqj{wqj~wqj~tmj~wqj{wqj{wmj~wqj~wqj~wqj{wqj{wmj~wqj~wqj~wmj~wmj{wqj~wqj{tqj{wmj{wqj{tmj~wmj{tmj~tqj{wmj{tmj~tqj{wqj{wqj{wmj{tmj~wqj{tmj~wqjd]SMFC<96/(" {t囔骱蚘戴洛mg`]SP]SPF?966tj`ZSPIFwmj`]Vqjg`tmjdtmj`qjg`mjd]{tmj`]~tmj`]~tqjd]~tmjd]qjg`tmg`tmjdtmjdtmjdwqjgtmjgtqjgwqjgwqjgwqmgwqjgǚ{qmjwqjjǚwtmj{tmjwqmj{tmj{qmjwtmj{tmj{tmj{tmjwtmj{tmj{wmjwtmj{tmj{tmj{tmj{tmjwtmj{wmj{tmj{tmj{wqj{tmj{wqj{tmj{tqj{tmj{tmj{tqj{tmj{wmj{wmj{tmj{wqj{wqj{tqj{wqj{tqj{wqj{tqj{wqj{wqm{wqj{wqj{wmj{wqj{tqj{tmj~tqj{tmj{wqj{tmj{tmj{wqj{tmj{tqj{wqj{tqj~wqj{tmj{wqm{tmj{tmj{wqj{tmj~wqj{wqj{wmj{wqj{tmj~wqj~wqj{wmj~wqm{tqj~wqm~tmj{wqj~wqm{tqj~wqj~wmm{wqm{wqm{wqj`ZSPFC<92/(" ~w囔鬾蚘戴洽~wmj`]SP]VPF?<69{