精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

代碼老矣,尚能跑否?

新聞 前端
Rougier是法國國家信息與自動化研究所(INRIA)的計算神經科學家兼程序員。傳這個文件是他自己提出的計算挑戰的最后一步:十年代碼復現大挑戰。

  Nicolas Rougier需要一張盤。不是便攜式的U盤,也不是光盤——而是一張貨真價實的軟盤。90后可能不知道,軟盤是一張又薄又軟的盤片,放在一個方形殼里。殼中間有一個洞,還缺了一個角,能存幾百K的數據。在1983年的冷戰電影《戰爭游戲》(War Games)中,高中生黑客David Lightman就是用一張軟盤黑進了學校的電腦,給他女朋友的生物課成績改成了滿分。

之后他黑進了軍方網絡里,險些引發了一場全球性的熱核戰爭。Rougier的需求就沒這么刺激了。他只想從自己的Mac臺式機往一臺老古董電腦上傳一個文本文件——1977年的出品的Apple II。這是蘋果公司的第一部消費產品。

Rougier是法國國家信息與自動化研究所(INRIA)的計算神經科學家兼程序員。傳這個文件是他自己提出的計算挑戰的最后一步:十年代碼復現大挑戰(Ten Years Reproducibility Challenge, https://rescience.github.io/ten-years/)。2019年,他和法國國家科學研究中心(CNRS)的理論生物物理學家Konrad Hinsen共同發起了這個挑戰,要求找一份老代碼并重新執行,從而對至少已發表了十年的以計算為主的論文進行復現。原本的計劃是參與者在波爾多6月舉辦的研討會上討論心得,但是因為COVID-19被迫延期(目前暫定延期到2021年6月)。

雙胞胎計劃的插圖

雙胞胎計劃的插圖

雖然計算在科學中起到了越來越關鍵的作用,但科學文章很少會包含計算用的代碼,Rougier說。即使有包含,也很難由其他人執行,甚至連原作者過一段時間后,都可能在執行時遇到問題。編程語言在發展,運行代碼的計算機環境也是一樣。今天可以順利運行的代碼明天可能就會出問題。

2015年,Rougier和Hinsen創辦了《ReScience C》。這份期刊刊載的是研究人員如何基于原始論文和自行編寫的開源代碼來復現其他人的計算方法。評審人再研究代碼以確認它是否能用。但即使在這種理想化的場景——作者有意愿讓代碼復現、評審人純熟于計算領域、代碼也是新寫的——整個流程依然有很多難點。

十年代碼大挑戰的目標是“找出十年前哪些寫作和發布代碼的技術好到如今依然可用”,Hinsen說。挑戰的時間設在了2020年1月1日這個Python 2“退場”的時間點。這個在科學領域非常流行的語言在出現20年之后決定終止支持。(2008年出現的Python 3仍然在繼續開發,但是這兩者之間的區別比較大,用其中一種寫成的代碼在另一個環境下可能無法運行。)

“在軟件的世界里,十年是很長很長很長的時間。”Victoria Stodden說。她在伊利諾伊大學厄巴納-香檳分校研究計算的可復現性。作出這一論斷后,她說這個挑戰本質上是鼓勵研究者探索代碼復現的極限,能不能在一個“對軟件世界來說幾乎無窮長的時間”里復現。

一共有35個挑戰者。在他們提出要復現的43篇文章里,其中28篇提交了復現報告。《ReScience C》從今年初開始刊載他們的工作。使用的程序語言從C和R到Mathematica和Pascal;一位挑戰者復現的不是代碼,而是用系統生物學標記語言(SBML)編碼的分子模型。

雖然是在數碼世界,但挑戰者的經歷和現實世界的考古一樣可以借古喻今,提出未來復現代碼的最佳策略。其中一個共同點是,科學家想要復現代碼就必須優化文檔。“2002年,我覺得我所有東西都能記一輩子,”威斯康星大學麥迪遜分校的生物統計學家Karl Broman說,“之后我才意識到,過不了一個月就會忘了。”

重現科研

Rougier的參賽作品重現的是整個挑戰里最老的代碼[1],他在16歲時為Apple II寫的圖像放大器,文章發表于一份已經停刊的法國業余愛好者雜志《Tremplin Micro》(挑戰里最老的科學代碼是一份28年前的繪制水質數據的Pascal程序,之后會在《ReScience C》上發表)。32年之后,Rougier已經記不清代碼是怎么運作的了,它用的還是長得像咒語一樣的AppleSoft BASIC代碼——“挺奇怪的,畢竟是我本人寫的”。但他成功地在網上找到了這份代碼,并用網頁版本的Apple II模擬器成功運行。這一步比較簡單,他說,在實際的Apple II上運行才是真正的困難。

硬件并不是問題——Rougier在辦公室有一臺Apple II,是他同事清理辦公室的時候撿回來的。“年輕人會問‘這是個啥?’”他說,“然后你就得解釋‘這是臺電腦’。老人看到就會說‘哦,我對這機器有印象’。”但是因為Apple II比USB和互聯網還要早——而現代的電腦也沒法直接和老式硬盤連接——Rougier就需要一些自制的硬件,外加上一盒老式軟盤,才能讓電腦讀取代碼。他在亞馬遜上找到了這些東西,1993年造的“全新”品。寫入三次保證所有比特都穩定之后,他確認了這些軟盤可用。

INRIA研究中心的計算機科學家Bruno Levy評審了Rougier寫的內容。Levy也有一臺Apple II,還在推特上發布了一小段視頻。在老式鍵盤的一聲“咔噠”之后,他調用了代碼并成功執行,緩緩顯示出一行純綠色的“我們重現科研!”。

過時的硬件,已死的語言

當法國國家科學研究中心的生物物理化學家Charles Robert聽說這一挑戰的時候,他決定用這個機會回顧一個他很多年都沒再思考的研究課題。“這個挑戰給了我臨門一腳,讓我再向那個方向努力一把。”他說。

1995年,Robert用運行了商業軟件Mathematica的計算筆記本為真核染色體的三維結構做了建模。Robert在MacBook上有Mathematica,但是為了好玩,他花了100歐元(約合800人民幣)買了一臺Raspberry Pi,這是個愛好者玩的單片機,上面安裝了Linux系統,并預安裝了Mathematica 12。

Robert運行代碼時基本沒什么問題,但是暴露出了計算筆記本可能會引發的難點[2],例如缺乏代碼結構,而代碼段也可能不按順序執行。到了今天,Robert通過將代碼拆成模塊并寫了代碼測試。他還使用了版本控制來追蹤代碼的修改,并記錄了哪個版本的軟件產生了什么樣的結果。“當我讀到老代碼的時候,偶爾會起雞皮疙瘩,然后思考現在能如何做得更好,”他說,“不過,我還覺得整個過程讓我復習了從那之后學的一些知識。”

成功完成挑戰的Robert并非孤例:至今為止發表的13份重現論文中只有2篇失敗了。其中之一是Hinsen寫的,1990年代初他用來系統性儲存代碼的磁帶讓他栽了跟頭[3]。“這就是做了備份卻沒能在十年后檢查備份是否能讀的下場。”他說,“之前你有這套很好的磁帶,還有備份,但是現在沒有讀取設備了。”(Hinsen還發表了一篇成功完成的文章[4])其他沒能成功完成挑戰的參與者歸因于時間不足,特別是在疫情之下。

挑戰者遇到的另一個普遍問題是過時的計算環境。現在在意大利國家研究委員會的大氣污染研究所任職的計算物理學家Sabino Maggi曾經使用程序語言Fortran為一種叫做Josephson結的超導設備進行了建模,并用微軟的Visual Basic處理了結果。在那之后,Fortran的改變不多,因此Maggi只微調了一些就成功編譯了代碼。Visual Basic則造成了更大的麻煩。

“Visual Basic,”Maggi在文章[5]里寫道,“是一門已死的語言,已經被Visual Basic.NET取代很久了,而兩者之間只有名字一樣。”為了運行代碼,他不得不在Mac筆記本上重構了一個十年前的Windows虛擬機。他用網上找到的安裝盤裝了微軟DOS6.22和Windows3.11(都是1994年前后的軟件)以及Visual Basic。“即使是很久以前的軟件,使用模擬器安裝版權軟件仍然可能有合法性的問題。”Maggi承認。不過,因為他當時做科研的時候有合法的證書,他說他覺得“至少道德上有資格”使用。

但是該用哪個版本的Visual Basic?微軟在幾年內發布了好幾個版本的Visual Basic,并且不都是向前兼容的。Maggi已經記不起1996年他用的是哪個版本的了,而地下室的一次漏水摧毀了他早年記錄這些細節的筆記本。“我得從頭開始了。”他說。

在Mac上運行1994年Windows的模擬器以運行微軟的Visual Basic。來源:Sabino Maggi

在Mac上運行1994年Windows的模擬器以運行微軟的Visual Basic。來源:Sabino Maggi

INRIA的研究工程師Ludovic Courtès重現了一份2006年的研究,內容是比較不同的數據壓縮策略,代碼是用C語言[6]寫的。但是程序員所使用的應用程序接口(API)變了,因此他的程序沒辦法用現代的軟件庫編譯。“所有的東西都在進化——當然了,只有論文里用到的那段軟件除外。”他說。最后,他不得不將五六個程序庫回退到了老版本——他稱為“降級的連鎖反應”。“這坑有點深。”他說。

今天,研究者可以使用Docker容器[7]和Conda虛擬環境[8]對計算環境進行包裝以便于重用。但是幾個挑戰者選擇了另一種方式。Courtes說這“很可能代表了重現科研論文的‘黃金標準’”:一個叫做Guix的Linux軟件包管理系統。它保證環境可以連每個比特都完全重現,并且對于代碼鏈接時的版本完全透明。“整個環境,事實上整篇論文都可以從源代碼開始查看并鏈接。”他說。Hinsen將它稱為“可能是目前為止重現科研最好用的東西。”

需要文檔

在INRIA和巴黎大學的計算機科學家Roberto DiCosmo嘗試重現[9]的論文中,他提出了另一個挑戰者常見的難題:尋找自己到底把代碼放哪了。DiCosmo挑戰的是1998年的一篇論文,其中描述了一個叫做OcamlP3l的并行程序系統。他搜遍了硬盤和備份,還請1998年的合作者們也搜了一遍,但是什么都沒找到。之后他搜了自己2015年建立的一個服務Software Heritage。“找到了,不可思議。”他說。

Software Heritage定期爬Github一類的代碼分享站,和Internet Archive備份網頁一樣備份源代碼。開發者也可以要求該服務備份自己的庫,而挑戰的規則也要求挑戰者這樣做:DiCosmo并不是一開始就去Software Heritage上搜索的,因為他開發OcamlP3l的時候Software Heritage還沒出現。不過,不知道是誰把他的代碼發到了一個叫Gitorious的庫上。Gitorious現在已經消失了,但在那之前被Software Heritage備份,上面的OcamlP3l也就一起被收錄進去。

當然了,找到代碼不意味著就知道該怎么用。比如說,Broman的文章里就提到,他在重現2003年一篇論文[10]的時候因為缺乏文檔和“古怪的”文件結構而花了很大力氣才搞明白到底該運行哪個代碼。“結果到頭來我得花功夫去讀當初的那篇論文。”他寫道。

“(在結構良好的程序里)文檔比代碼長并不是罕見的事情。”在加州大學伯克利分校重點研究計算可重現性的Karthik Ram說,“有了足夠詳細的文檔,再更廣泛地描述分析方法,數據來源,數據和代碼的元數據,這些都是很關鍵的。”

愛丁堡大學的神經科學家Melanie Stefan利用這次挑戰評估了她用SBML寫的計算模型的可重現性。雖然代碼很好找,但是她找不到之前使用的參數了(例如分子濃度)。數據歸一化時的關鍵細節也沒有詳細記錄。結果,Stefan無法重現一部分研究。“你做科研時候差不多是顯而易見的事不再那么顯而易見了——對10-12年之后的你來說。誰能想到!”她自嘲。

可重現性的光譜

Stefan的經歷驅使她給實驗室訂下了文檔上的規章——例如,模型中必須附上這樣的說明:“想重現圖5的話,需要按以下步驟執行。”

但是寫這些資源需要時間,Stodden說。清理代碼并補充文檔,撰寫測試,整理數據集,重現計算環境——“這些工作量都不出成果”。研究者沒什么動力去做這些事,她補充說,而科學界關于可重現的論文應當長什么樣也沒什么共識。讓問題進一步復雜化的是計算系統還在繼續進化,因此難以預測哪種策略能一直有效。

可重現性是一條光譜,曼徹斯特大學的計算機科學家、研究可重現性的Carole Goble說。從科學家復現自己的研究,到同行評審人試運行代碼以證明其有效,再到研究者將發表的算法應用在新數據上。類似地,研究者為了保證可重現性所做的事情也能夠成一條光譜(見下“可重現性檢查表”),但是這張表可能會很長。Goble說,把源代碼發布出去,這樣至少未來其他人可以瀏覽并按需改寫——Goble管它叫“讀代碼的重現手段”。“軟件是有生命的,”她說,“而有生命的東西終將腐朽,因此需要不斷修理,最終就得換掉。”

可重現性檢查表

雖然以下手段不可能百分之百保證計算可重現性,但是可以增大成功率。

代碼 - 如果你的計算過程是在圖形界面上點來點去,例如Excel,是不可重現的。將你的計算和數據操作寫成代碼。

文檔 - 使用注釋、計算筆記本和README文件來解釋程序的運作方式,并將預期的參數和所需的計算環境也定義好。

記錄 - 記錄關鍵參數,例如隨機數生成器的種子。這類記錄可以用來重現代碼,發現漏洞并追蹤意料之外的結果。

測試 - 寫一套測試函數。使用正向和負向的控制組數據集來確保你能獲得預期的結果,并在開發過程中不斷運行這些測試以便在編程出錯時立刻發現。

指南 - 寫一個主腳本(例如run.sh文件)來下載所需要的數據集和變量,執行計算流程并為你的代碼提供一個顯而易見的入口。

存檔 - GitHub是一個流行但是非永久性的在線代碼庫。使用Zenodo、Figshare和Software Heritage這樣的存檔服務來保證長期的穩定性。

追蹤 - 使用Git一類的版本控制工具記錄項目歷史。記錄產生各種結果的分別是哪個版本。

打包 - 使用容器化的工具(例如Docker和Singularity)、網上服務(Code Ocean、Gigantum、Binder)或是虛擬環境管理器(Conda)設置可以即時使用的計算環境。

自動化 - 使用持續集成服務(例如Travis CI)來自動、定期、在各種計算環境下測試代碼。

簡化 - 避免罕見或難以安裝的第三方代碼庫,以簡化重用代碼的難度。

驗證 - 在不同的計算環境下運行你的代碼,以確認其可移植性。

一個不怎么符合直覺的事實是,很多挑戰者都發現使用更老的語言寫成的代碼反而更易于復用。新語言的應用程序接口會頻繁更新,而它們所依賴的第三方庫則導致代碼更易損壞。從這個意義上講,今年初Python 2.7的退役為科學家提供了一個機會,Rougier和Hinsen說。Python 2.7“讓我們有了一個保證不會再變化的高級編程語言。”Rougier寫道[1]。

無論研究者使用什么樣的編程語言和可復現策略,實際驗證一遍都是明智之舉,謝菲爾德大學的研究軟件工程師Anna Krystalli說。Krystalli負責舉辦一個叫ReproHacks的研討會,讓研究者提交已經發表的論文、代碼和數據,然后要求其他參與者重現其結果。她說,大多數情況下是重現不出來的:作者沒能提供一些他們看起來顯而易見而其他人卻不知道的關鍵細節。“無論我們在做什么,如果不實際用一用,擺弄擺弄的話就不可能知道是否真的可以重現。”Krystalli說,“實際上,這比人們所想象的要難得多。”

 

責任編輯:張燕妮 來源: 新浪科技
相關推薦

2018-11-12 08:30:47

IT技術面試

2023-12-21 13:56:41

PHP語言程序員

2011-06-29 09:02:13

C++

2017-09-07 15:55:14

2020-02-17 14:56:24

JrebelJava生態系統技術

2011-07-04 13:29:34

技術周刊

2021-02-01 11:23:13

IBM云計算

2025-01-07 08:00:00

2019-02-21 10:08:04

邊緣計算云計算系統

2015-11-24 15:17:57

谷歌回歸中國

2019-03-27 09:38:33

網絡多層編排NFV

2011-04-29 10:47:18

虛擬化

2019-06-20 16:07:12

鴻蒙安卓操作系統

2016-06-13 09:31:40

2018-10-30 15:32:07

數據庫NoSQLNewSQL

2019-05-22 13:22:39

開源技術 趨勢

2022-10-18 22:20:36

CSS矩形border

2015-11-24 09:45:00

谷歌重返中國

2018-07-12 08:41:54

大數據IT互聯網

2015-04-03 10:39:40

AndroidChrome
點贊
收藏

51CTO技術棧公眾號

欧美在线日韩在线| 国偷自产av一区二区三区| 日韩美女一区二区三区在线观看| 亚洲欧美另类小说| 日本精品中文字幕| 亚洲欧美高清在线| 亚洲一卡二卡在线| 一区三区在线欧| 亚洲一区二区三区影院| 91美女片黄在线观看游戏| 国产调教在线观看| 成人免费网站视频| 91在线看国产| 97视频在线播放| 日本50路肥熟bbw| 污片视频在线免费观看| 一区二区免费不卡在线| 欧美日韩久久一区二区| 视频一区二区三区免费观看| 波多野结衣 久久| 你懂的视频欧美| 疯狂做受xxxx高潮欧美日本| 国产亚洲欧美一区二区| 国产精品日日夜夜| 美腿丝袜亚洲图片| 欧美日韩亚洲系列| 无码毛片aaa在线| www.久久久久久| 欧美日韩伊人| 精品国产乱码久久久久久图片| 男人天堂新网址| 国产综合在线播放| 日韩一级精品| 亚洲免费视频网站| 密臀av一区二区三区| 高清中文字幕一区二区三区| 日韩电影在线免费观看| 一本色道久久88综合日韩精品| 四虎永久在线精品无码视频| 国产尤物视频在线| 久久精品99久久久| 欧美大片va欧美在线播放| 99riav国产精品视频| 久久青草视频| 一区二区三区四区乱视频| 高清免费日韩| 伦av综合一区| 一本色道精品久久一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 蜜臀aⅴ国产精品久久久国产老师| 日韩黄色三级在线观看| 亚洲一区二区三区四区在线观看 | 中文字幕人妻一区二区在线视频| 精品国产中文字幕第一页| 欧美日韩久久一区二区| 五月婷婷深爱五月| av网址在线| 26uuu久久综合| 成人黄色生活片| 日韩久久久久久久久| 欧洲福利电影| 亚洲一区二区福利| 国产成人精品一区二区三区在线观看| 水蜜桃在线视频| 国产精品福利一区| 国产精品我不卡| 这里只有久久精品视频| 欧美二区视频| 在线a欧美视频| 五月激情四射婷婷| 999久久久免费精品国产| 欧美精品一区二区在线播放 | 中文字幕天堂在线| 欧美有码视频| 欧美激情精品久久久久久黑人| 久草视频免费在线播放| 精品国产91| 中文字幕精品一区久久久久| 亚洲麻豆一区二区三区| 国内精品免费| 国产亚洲一区二区精品| 999精品在线视频| 欧美人与牛zoz0性行为| 国产亚洲精品久久久久久777| 国产精品久久久久久久av| 久久精品国产www456c0m| 久久久精品视频在线观看| 中日韩精品一区二区三区| 视频欧美一区| 欧美精品高清视频| 92看片淫黄大片一级| 天堂av中文在线| 欧美日韩国产在线| 亚洲精品久久久中文字幕| 在线女人免费视频| 欧美日韩中文一区| 激情五月亚洲色图| 精品国产一级| 8x8x8国产精品| 国产一伦一伦一伦| 日韩精品三级| 亚洲片国产一区一级在线观看| 国产精品日日摸夜夜爽| 免费av一区| 久久99久久99精品中文字幕| 中文字幕无码日韩专区免费| 黄色在线成人| 欧美精品久久久久久久久久| 欧美日韩午夜视频| 国产精品精品| 久久精品国产清自在天天线| 日本三级黄色大片| 麻豆精品新av中文字幕| 精品乱色一区二区中文字幕| 欧美一区二区三区成人片在线| 粉嫩在线一区二区三区视频| av一本久道久久波多野结衣| 精品久久久免费视频| 国产偷国产偷精品高清尤物 | 97视频在线观看视频免费视频 | 亚洲欧洲美洲在线综合| 日本精品人妻无码77777| 好男人免费精品视频| 日韩 欧美 亚洲| 亚洲综合电影| 欧美一二三在线| 91视频最新入口| 久久男人av资源站| 婷婷久久综合九色国产成人| 精品少妇人妻av免费久久洗澡| 国内激情视频在线观看| 欧美性猛交视频| 日本在线观看免费视频| 日韩色性视频| 亚洲天堂一区二区三区| 久久久国产高清| 日韩成人免费在线| 欧美国产视频在线观看| bbbbbbbbbbb在线视频| 136国产福利精品导航| 国产一级大片免费看| 国产精品久久久久久吹潮| 91精品国产入口| 亚洲婷婷在线观看| 中文字幕亚洲综合久久五月天色无吗''| 国产精品久久久久久亚洲影视 | 成人午夜在线观看视频| 欧美日韩一区二区免费在线观看| 亚洲精品第二页| 亚洲美女色禁图| 国产欧美日韩一区| sm久久捆绑调教精品一区| 精品美女一区二区三区| 中文字幕丰满孑伦无码专区| 在线亚洲欧美| 久久久久一区二区| 日韩av中文| 亚洲成人av在线电影| 午夜免费精品视频| 精品美女视频| 国产精品网站大全| 天堂网av在线播放| 国产精品高潮呻吟| 日本国产一级片| 欧美有码在线| 久久精品中文字幕免费mv| 亚洲视频中文字幕在线观看| 国产精品久久久久婷婷二区次| 国产精品一线二线三线| 99精品国自产在线| 久久精品久久久久| 国产91视频在线| 久久久久久**毛片大全| 中国女人做爰视频| 久久精品xxxxx| 久久五月天色综合| 色老头一区二区| 成人avav影音| 日本三日本三级少妇三级66| 日韩在线精品强乱中文字幕| 久久久噜噜噜久噜久久| 国产精品久久久久久69| 久久久精品一品道一区| 日韩中文字幕a| 亚洲一级网站| 91一区二区三区| 天天影视久久综合| 精品久久久网站| 亚洲国产av一区二区三区| 国产精品久久久久一区二区三区| 色综合久久久无码中文字幕波多| 一区二区三区四区五区在线 | 婷婷在线免费观看| 国产欧美日韩一区二区三区在线观看| 日本男女交配视频| 国产剧情一区二区在线观看| 中文字幕精品在线视频| 99在线无码精品入口| 丁香五六月婷婷久久激情| 少妇高潮惨叫久久久久| 日韩电影免费在线看| 91xxx视频| 九热爱视频精品视频| 亚洲自拍偷拍在线| 1024在线播放| 亚洲欧美日韩国产精品| 精品久久久久成人码免费动漫| 欧美性高潮床叫视频| 疯狂试爱三2浴室激情视频| 2021中文字幕一区亚洲| 欧美二区在线视频| 欧美自拍视频| 97久久精品午夜一区二区| 日本一道高清亚洲日美韩| 国产亚洲人成a一在线v站| 亚洲精品国产片| 午夜欧美大尺度福利影院在线看| 日本三级日本三级日本三级极| 今天的高清视频免费播放成人| 色一情一乱一伦一区二区三欧美 | 免费观看成人在线| 国产在线观看www| 粗暴蹂躏中文一区二区三区| 成人免费高清在线播放| 日韩理论片久久| 中文字幕精品无| 亚洲成av人**亚洲成av**| 成人在线观看小视频| 国产精品久久免费看| 国产三级av在线播放| 久久精品国产免费看久久精品| 欧美亚洲另类色图| 亚洲区欧美区| 日韩动漫在线观看| 日韩综合久久| 国产精品欧美亚洲777777| 亚洲美女尤物影院| 久久久噜噜噜久久久| 欧美bbbxxxxx| 亚洲欧美一区二区精品久久久| 风流少妇一区二区三区91| 欧美一级xxx| 国产免费视频一区二区三区| 五月综合激情网| 精品在线免费观看视频| 久久色视频免费观看| 久久久久久久无码| 麻豆成人久久精品二区三区红| 国产成人无码一二三区视频| 夜夜嗨网站十八久久| 少妇av一区二区三区无码| 日韩视频不卡| 激情综合在线观看| 久久一区精品| 一本大道东京热无码aⅴ| 99久久亚洲精品| 婷婷视频在线播放| 日本成人a网站| 久久亚裔精品欧美| 欧美欧美黄在线二区| 日韩av一级大片| 日韩欧美视频| 亚洲三区在线观看| 欧美a一欧美| 欧美色图亚洲自拍| 成久久久网站| 国产一区二区三区色淫影院| 精品人人人人| 欧美日韩一区在线观看视频| 国产一区二区三区天码| 国产美女99p| 啪啪激情综合网| 日韩中文字幕一区| 911精品美国片911久久久| 日韩福利视频| 91精品国产91久久久久久黑人| 亚洲小说欧美另类激情| 最新国产乱人伦偷精品免费网站| 日韩人妻精品无码一区二区三区| 日韩中文字幕91| 在线视频观看一区二区| 男人的j进女人的j一区| 国产欧美日韩小视频| 国产精品最新自拍| 性一交一乱一伧国产女士spa| 亚洲美女黄色| 亚洲福利精品视频| 成人网在线免费视频| 杨幂一区二区国产精品| 日韩精品欧美精品| 四虎成人在线播放| 91老师国产黑色丝袜在线| 九九这里只有精品视频| 亚洲成av人在线观看| 又色又爽又黄无遮挡的免费视频| 日韩精品一区二区三区swag | 国产ktv在线视频| 国产精品自产拍在线观| 一区二区三区在线资源| 亚洲在线观看视频| 三级小说欧洲区亚洲区| 久草热久草热线频97精品| 97精品中文字幕| 男人的天堂99| 国产成人鲁色资源国产91色综| 一级黄色片在线免费观看| 91丨国产丨九色丨pron| 日本午夜在线观看| 91国内精品野花午夜精品| 亚洲不卡视频在线观看| 6080亚洲精品一区二区| 久久国产精品高清一区二区三区| 欧美大码xxxx| 亚洲成人1区| 日本一区二区三区四区高清视频| 国产区精品区| 成人在线观看你懂的| 国产美女精品人人做人人爽| 国产成人精品无码播放| 成人午夜激情视频| 粉嫩av性色av蜜臀av网站| 91福利视频网站| 三级视频网站在线| 一区二区三区 在线观看视| 成人爽a毛片免费啪啪动漫| 国产综合在线视频| 亚洲日本免费电影| 97人人模人人爽人人喊38tv| jiujiure精品视频播放| 欧美在线观看成人| 成人高清视频在线| 欧美日韩在线国产| 精品久久久久久中文字幕大豆网 | 五月天av影院| 蜜臀av性久久久久蜜臀av麻豆| 免费黄色在线视频| 国产精品色哟哟| 国产性生活视频| 精品亚洲永久免费精品| 蜜桃麻豆影像在线观看| 国产精品日韩高清| 亚洲第一区色| 亚洲av成人片色在线观看高潮| 亚洲高清三级视频| 免费看国产片在线观看| 97视频免费在线看| 色老板在线视频一区二区| av天堂永久资源网| 久久久精品综合| 伊人色综合久久久| www高清在线视频日韩欧美| 国产桃色电影在线播放| 成人免费在线看片| 韩日在线一区| 色婷婷精品久久二区二区密| 亚洲成a人片综合在线| 天天操天天干天天干| 17婷婷久久www| 日本精品国产| av动漫在线免费观看| 成人深夜福利app| 日韩黄色精品视频| 日韩精品在线观| 78精品国产综合久久香蕉| 一区二区三区久久网| 狠狠色狠狠色综合| 最近中文字幕免费视频| 在线精品国精品国产尤物884a| 韩国av电影在线观看| 97激碰免费视频| 国产亚洲一区二区三区不卡| 免费看污污网站| 亚洲人成亚洲人成在线观看图片| 黄色片网站在线免费观看| 日韩限制级电影在线观看| 丁香花在线高清完整版视频| 久久99精品久久久久久秒播放器 | 男人的天堂av高清在线| 久久久久高潮毛片免费全部播放| 日本免费高清一区二区| 国产综合色产在线精品| 精品无码久久久久久久| 国产午夜精品久久久| 欧洲亚洲精品久久久久| 国产美女主播在线| 国产欧美日韩不卡| 国产日韩免费视频| 97在线视频一区| 色爱综合网欧美| 在线看黄色的网站| 色欧美片视频在线观看 | 久久久免费精品视频| 久久综合色占| 成人在线短视频| 91成人在线观看喷潮| 精品国产白色丝袜高跟鞋| 国产精品久久不能| 蜜臀91精品国产高清在线观看| 日本高清久久久| 精品欧美一区二区三区|