Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲国产一区在线精选,视频一区国产精品,日韩精品久久一区二区三区

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          GCTT 出品Go 中不定長(zhǎng)度集合

          GCTT 出品Go 中不定長(zhǎng)度集合

          發(fā)于:https://studygolang.com/articles/14132

          如果你在使用像 C# 或 Java 這樣的編程語(yǔ)言后來(lái)到 go,你發(fā)現(xiàn)的第一件事就是沒(méi)有像 List和 Dictionary 這樣的傳統(tǒng)集合類型。 這真讓我困惑了好幾個(gè)月。 我找到了一個(gè)名為container/list 的軟件包,并且?guī)缀跤盟鏊械臇|西。

          我腦后一直有一個(gè)聲音在嘮叨。語(yǔ)言設(shè)計(jì)者不應(yīng)該不直接支持對(duì)未知長(zhǎng)度的集合管理的功能。每個(gè)人都在討論切片是如何在語(yǔ)言中被廣泛使用,但我只是在有明確定義的容量或者它們通過(guò)函數(shù)返回時(shí)我才使用切片,這有點(diǎn)不對(duì)勁!!

          因此,我在本月早些時(shí)候?qū)懥艘黄恼拢议_(kāi)了切片的蓋子,希望能找到一些我不知道的魔法。我現(xiàn)在知道切片是如何工作的,但最終我仍然需要一個(gè)不斷進(jìn)行長(zhǎng)度增長(zhǎng)的數(shù)組。我在學(xué)校學(xué)過(guò),使用鏈表更有效率,是存儲(chǔ)大量數(shù)據(jù)更好的方法。特別是當(dāng)你需要的集合長(zhǎng)度未知時(shí)。這對(duì)我來(lái)說(shuō)很有意義。

          當(dāng)我思考使用一個(gè)空切片時(shí),我頭腦中有一張非常錯(cuò)誤的圖片:

          slice-copy

          我一直在想 go 是如何創(chuàng)建大量新的切片值和底層數(shù)組做大量?jī)?nèi)存分配,并且不斷進(jìn)行復(fù)制值。然后垃圾回收器會(huì)因?yàn)樗羞@些小變量被創(chuàng)建和銷毀而過(guò)度工作。

          我無(wú)法想象需要做數(shù)千次這種操作。其實(shí)有更好的方法或更效率的方式我沒(méi)有意識(shí)到。

          在研究并提出了很多問(wèn)題之后,我得出的結(jié)論是,在大多數(shù)實(shí)際情況下,使用切片比使用鏈表更好。這就是為什么語(yǔ)言設(shè)計(jì)者花時(shí)間使切片盡可能高效工作,并且沒(méi)有引入集合類型的原因。

          我們可以連續(xù)幾天討論各種邊界情況和性能問(wèn)題,但 go 希望我們使用切片。因此切片應(yīng)該是我們的首選,除非代碼告訴我們存在問(wèn)題。掌握切片就像學(xué)國(guó)際象棋游戲,易于學(xué)習(xí)但需要一輩子才能成為大師。因?yàn)榈讓訑?shù)組可以共享,所以在使用中需要注意一些問(wèn)題。

          在繼續(xù)閱讀之前,你最好看一下我的另一篇文章 Understanding Slices in Go Programming。

          本文的其余部分將解釋如何使用切片處理未知容量的問(wèn)題以及切片的運(yùn)行機(jī)制。

          以下是使用空切片來(lái)管理未知長(zhǎng)度集合的示例:

           1package main
           2
           3import (
           4 "fmt"
           5 "math/rand"
           6 "time"
           7)
           8
           9type Record struct {
          10 ID int
          11 Name string
          12 Color string
          13}
          14
          15func main() {
          16 // Let’s keep things unknown
          17 random :=rand.New(rand.NewSource(time.Now().Unix()))
          18
          19 // Create a large slice pretending we retrieved data
          20 // from a database
          21 data :=make([]Record, 1000)
          22
          23 // Create the data set
          24 for record :=0; record < 1000; record++ {
          25 pick :=random.Intn(10)
          26 color :="Red"
          27
          28 if pick==2 {
          29 color="Blue"
          30 }
          31
          32 data[record]=Record{
          33 ID: record,
          34 Name: fmt.Sprintf("Rec: %d", record),
          35 Color: color,
          36 }
          37 }
          38
          39 // Split the records by color
          40 var red []Record
          41 var blue []Record
          42
          43 for _, record :=range data {
          44 if record.Color=="Red" {
          45 red=append(red, record)
          46 } else {
          47 blue=append(blue, record)
          48 }
          49 }
          50
          51 // Display the counts
          52 fmt.Printf("Red[%d] Blue[%d]\n", len(red), len(blue))
          53}
          

          當(dāng)我們運(yùn)行這個(gè)程序時(shí),由于隨機(jī)數(shù)生成器,我們將得到不同長(zhǎng)度的紅色和藍(lán)色切片。我們無(wú)法提前知道紅色或藍(lán)色切片的容量需要,這對(duì)我來(lái)說(shuō)是一種典型的情況。

          讓我們分解出代碼中更重要的部分:

          這兩行代碼創(chuàng)建了空切片。

          1var red []Record
          2var blue []Record
          

          一個(gè)空切片長(zhǎng)度和容量都是0,并且不存在底層數(shù)組。我們可以使用內(nèi)置的 append 函數(shù)向切片中增加數(shù)據(jù)。

          1red=append(red, record)
          2blue=append(blue, record)
          

          append 函數(shù)功能非常酷,為我們做了很多東西。

          Kevin Gillette 在我的小組討論中進(jìn)行了說(shuō)明:

          (https://groups.google.com/forum/#!topic/golang-nuts/nXYuMX55b6c)

          在 go 語(yǔ)音規(guī)范中規(guī)定,前幾千個(gè)元素在容量增長(zhǎng)的時(shí)候每次都將容量翻倍,然后以~1.25的速率進(jìn)行容量增長(zhǎng)。

          我不是學(xué)者,但我看到使用波浪號(hào)(~)相當(dāng)多。有些人也許不知道這是什么意思,這里表示大約。因此,append 函數(shù)會(huì)增加底層數(shù)組的容量并為未來(lái)的增長(zhǎng)預(yù)留空間。最終 append 函數(shù)將大約以1.25或25%的系數(shù)進(jìn)行容量增長(zhǎng)。

          讓我們證明 append 函數(shù)增長(zhǎng)容量并高效運(yùn)行:

           1package main
           2
           3import (
           4 "fmt"
           5 "reflect"
           6 "unsafe"
           7)
           8
           9func main() {
          10 var data []string
          11
          12 for record :=0; record < 1050; record++ {
          13 data=append(data, fmt.Sprintf("Rec: %d", record))
          14
          15 if record < 10 || record==256 || record==512 || record==1024 {
          16 sliceHeader :=(*reflect.SliceHeader)((unsafe.Pointer(&data)))
          17
          18 fmt.Printf("Index[%d] Len[%d] Cap[%d]\n",
          19 record,
          20 sliceHeader.Len,
          21 sliceHeader.Cap)
          22 }
          23 }
          24}
          

          輸出結(jié)果:

           1Index[0] Len[1] Cap[1]
           2Index[1] Len[2] Cap[2]
           3Index[2] Len[3] Cap[4] - Ran Out Of Room, Double Capacity
           4Index[3] Len[4] Cap[4]
           5Index[4] Len[5] Cap[8] - Ran Out Of Room, Double Capacity
           6Index[5] Len[6] Cap[8]
           7Index[6] Len[7] Cap[8]
           8Index[7] Len[8] Cap[8]
           9Index[8] Len[9] Cap[16] - Ran Out Of Room, Double Capacity
          10Index[9] Len[10] Cap[16]
          11Index[256] Len[257] Cap[512] - Ran Out Of Room, Double Capacity
          12Index[512] Len[513] Cap[1024] - Ran Out Of Room, Double Capacity
          13Index[1024] Len[1025] Cap[1280] - Ran Out Of Room, Grow by a factor of 1.25
          

          如果我們觀察容量值,我們可以看到 Kevin 是絕對(duì)正確的。容量正如他所說(shuō)的那樣在增長(zhǎng)。在前1千的元素中,容量增加了一倍。然后容量以1.25或25%的系數(shù)增長(zhǎng)。這意味著以這種方式使用切片將滿足我們?cè)诖蠖鄶?shù)情況下所需的性能,并且內(nèi)存不會(huì)成為問(wèn)題。

          最初我認(rèn)為會(huì)為每次調(diào)用 append 時(shí)都會(huì)創(chuàng)建一個(gè)新的切片值,但事實(shí)并非如此。當(dāng)我們調(diào)用append 時(shí),在棧中復(fù)制了 red 副本。然后當(dāng) append 返回時(shí),會(huì)再進(jìn)行一次復(fù)制操作,但使用的我們已有的內(nèi)存。

          1red=append(red, record)
          


          在這種情況下,垃圾收集器沒(méi)有工作,所以我們根本沒(méi)有性能或內(nèi)存問(wèn)題。我的 C# 和引用類型的思想再次打擊了我。

          請(qǐng)坐好,因?yàn)橄乱粋€(gè)版本中的切片會(huì)有變化。

          Dominik Honnef 創(chuàng)建了一個(gè)博客,用簡(jiǎn)明的英文(謝謝)解釋了 Go tip 中正在編寫的內(nèi)容。這些是下一版本中的內(nèi)容。這是他博客的和博客中關(guān)于切片部分的鏈接。這是一篇很棒博客,推薦閱讀。

          http://dominik.honnef.co/go-tip/

          http://dominik.honnef.co/go-tip/2013-08-23/#slicing

          你可以用切片做很多的事情,甚至可以寫一整本關(guān)于這個(gè)主題的書。就像我之前說(shuō)的那樣,切片就像國(guó)際象棋一樣,易于學(xué)習(xí)但需要一輩子才能成為大師。如果您來(lái)自其他語(yǔ)言,如 C# 和 Java,那么請(qǐng)擁抱切片并使用它。這正是 go 中正確的方式。


          via:https://www.ardanlabs.com/blog/2013/08/collections-of-unknown-length-in-go.html

          作者:William Kennedy

          譯者:Alan

          校對(duì):polaris1119

          本文由 GCTT 原創(chuàng)編譯,Go 中文網(wǎng) 榮譽(yù)推出

          愛(ài)好堅(jiān)持,以收藏說(shuō)事,學(xué)棋齋主是認(rèn)真的!

          #中國(guó)象棋#

          棋家王首成

          王首成,男,1970年7月6日出生黑龍江,象棋圖書作家。癡迷江湖排局,曾對(duì)江湖排局投入了十余年的研究工作,尤其對(duì)“征西”局有著深入細(xì)致的研討。2005年在哈爾濱市,結(jié)識(shí)了慕名已久的著名的象棋排局家李中健老師,從此步入排局界。2010年開(kāi)始出版了十幾部象棋排局書籍。

          本人收藏了王先生的兩部作品《街頭棋攤揭秘》、《江湖排局新作》和電子版《百花齊放象棋譜》。


          《百花齊放象棋譜》


          電子版《百花齊放象棋譜》

          江湖棋局的江湖

          江湖棋局也是有江湖的。比如幾大名譜棋局就是異同互見(jiàn)的,可惜少有人梳捋其來(lái)龍去脈。在現(xiàn)代隨著江湖棋攤發(fā)展、棋家的創(chuàng)新、在古譜的基礎(chǔ)上,不斷出現(xiàn)了更多的新作,他們和古譜的源流、隨時(shí)間的變遷,棋家的努力等等,值得愛(ài)好者關(guān)注和學(xué)習(xí)研究。

          王首成先生的《街頭棋攤揭秘》、《江湖排局新作》,正是這方面研究的成果集成,真是“首成”,也說(shuō)不定,我不敢妄斷!

          江湖排局源出江湖,是經(jīng)過(guò)多少江湖藝人精心提煉的結(jié)晶。江湖棋攤是江湖藝人每天設(shè)局謀生之處,隨著社會(huì)的發(fā)展進(jìn)步,江湖棋攤也隨之進(jìn)行了日新月異的改革和創(chuàng)新。復(fù)雜深?yuàn)W、變幻莫測(cè)的江湖大局如七星聚會(huì)、野馬操田等已少見(jiàn),關(guān)鍵是每天所選用的江湖排局要有好而多的陷阱,才可以使挑戰(zhàn)者在每一局棋上多下幾局。

          同時(shí),一局棋局的同類局更多了,其中一個(gè)卒位置稍有差異,可能過(guò)程和結(jié)果,大相徑庭。攤主復(fù)原棋局時(shí)你稍微沒(méi)注意,可能就不是上一局面了。

          這兩本書,共收錄新舊排局274局。在寫法上分“江湖揭秘”、“棋局介紹”、“類局拾萃”、“名手介紹(江湖排局新作主要介紹了1949年前的國(guó)手)”四個(gè)部分。非常具有可讀性和藝術(shù)性。


          送炮成和局

          賽事: 天天象棋網(wǎng)頁(yè)(H5)版送炮成和局

          日期: 2022-05-31


          紅方: 木狐齋主

          黑方應(yīng)該是有贏棋機(jī)會(huì)的,此著馬7進(jìn)5,大誤,紅方送炮妙手,結(jié)果和棋。

          1. 馬7進(jìn)5 炮一平五

          應(yīng)該炮5進(jìn)7?成馬炮士象全對(duì)炮雙高兵,顯然黑好走。

          2. 炮5進(jìn)3 帥五進(jìn)一


          紅方應(yīng)對(duì)無(wú)誤,結(jié)果破雙士成和。經(jīng)查,炮士象全也是贏不了雙高兵的吧?請(qǐng)高手指教!

          有指教,請(qǐng)留言,學(xué)習(xí)!

          | 邊策 安妮

          出處 | 量子位

          推薦 | 編程派公眾號(hào)ID:codingpy)

          GPT-2,一個(gè)來(lái)自O(shè)penAI的逆天語(yǔ)言模型,現(xiàn)在能用來(lái)補(bǔ)全代碼了。

          一位來(lái)自加拿大的大四學(xué)霸,開(kāi)發(fā)了一款”Deep TabNine“代碼補(bǔ)全工具,實(shí)現(xiàn)了這一大膽的想法。

          它支持23種編程語(yǔ)言、5種編輯器,使用簡(jiǎn)單,效果驚艷。

          不少使用過(guò)的網(wǎng)友說(shuō):TabNine是他們用過(guò)的最好的代碼補(bǔ)全工具,這是屬于程序員的殺手級(jí)應(yīng)用

          在VS Code的擴(kuò)展商店里,TabNine已經(jīng)被下載1.3萬(wàn)次,獲得全5星好評(píng)。

          支持23種編程語(yǔ)言

          Deep TabNine支持Java

          Python

          C++

          Haskell

          不同于各種其他代碼補(bǔ)全插件,Deep TabNine是根據(jù)程序員過(guò)去的習(xí)慣自動(dòng)補(bǔ)全,并在后面給出幾種選項(xiàng)的概率。

          如果有類似代碼出現(xiàn)在之前的項(xiàng)目里,TabNine還會(huì)在補(bǔ)全候選框中直接給出地址,方便用戶點(diǎn)擊進(jìn)去查閱。

          除以上幾種語(yǔ)言之外,Deep TabNine還支持JavaScriptCPHPGoC#RubyObjective-CRustSwiftTypeScriptOCamlScalaKotlinPerlSQLHTMLCSSBash

          主流編程語(yǔ)言幾乎都囊括在內(nèi)。

          支持5種編輯器

          TabNine支持VS CodeSublime TextAtomEmacsVim五種代碼編輯器。

          對(duì)于使用VS Code和Sublime來(lái)說(shuō),安裝TabNine非常方便,用自帶的擴(kuò)展包管理工具即可。

          VS Code

          VS Code用戶按下Ctrl+P(Mac用戶按下?+P),粘貼以下命令,然后按回車鍵完成安裝。

          ext install TabNine.tabnine-vscode

          Sublime

          Sublime用戶安裝分為兩步:

          1、按下Ctrl+Shift+P(Mac用戶:?+Shift+P),選擇Install Package Control;

          2、再次按下Ctrl+Shift+P(Mac用戶:?+Shift+P),選擇Package Control:Install Package,然后選擇TabNine來(lái)安裝。

          Vim

          Vim使用Vundle插件管理器進(jìn)行安裝:

          1、添加Plugin ‘zxqfl/tabnine-vim’.vimrc

          2、輸入:PluginInstall,按下回車完成安裝。

          其他編輯器的安裝方法就不一一贅述了,有需要的用戶可以參照文末的鏈接進(jìn)行安裝。

          項(xiàng)目超過(guò)400kb需要購(gòu)買許可證:個(gè)人用戶49美元,商業(yè)用戶99美元。

          由于Deep TabNine用到機(jī)器學(xué)習(xí)補(bǔ)全代碼,因此需要大量的算力(超過(guò)100億次浮點(diǎn)運(yùn)算),在筆記本上運(yùn)行模型,無(wú)法獲得低延遲的體驗(yàn)。

          因此,軟件開(kāi)發(fā)者推出了TabNine Cloud云服務(wù)器,用云端GPU加速。付費(fèi)用戶不需要再加錢即可使用。

          所以聽(tīng)起來(lái)很劃算吧?

          軟件開(kāi)發(fā)者自己就說(shuō),這個(gè)價(jià)格其實(shí)不貴,有了TabNine,一分鐘就里能幫你節(jié)省一秒,咱們?cè)偎闼愠绦騿T的時(shí)薪,每個(gè)小時(shí)能節(jié)約1.4美元,不到一年時(shí)間就能回本了。

          如果你對(duì)效果不滿意,TabNine開(kāi)發(fā)者還提供30天退款保證。

          怎么做到的?

          TabNine是在GPT-2的基礎(chǔ)上構(gòu)建的,這是一種Transformer架構(gòu),原產(chǎn)自O(shè)penAI,是個(gè)“逆天”語(yǔ)言模型。

          GPT-2的參數(shù)高達(dá)15億個(gè),數(shù)據(jù)量比一代擴(kuò)大了10倍,使用了包含800萬(wàn)個(gè)網(wǎng)頁(yè)的數(shù)據(jù)集,共有40GB。

          逆天之處就在于,GPT-2寫起文章來(lái)毫無(wú)違和感,無(wú)需針對(duì)性訓(xùn)練就能橫掃各種特定領(lǐng)域的語(yǔ)言建模任務(wù),還具備閱讀理解、問(wèn)答、生成文章摘要、翻譯等等能力。

          就GPT-2而言,它的訓(xùn)練目標(biāo)很簡(jiǎn)單:根據(jù)所有給定文本中前面的單詞,預(yù)測(cè)下一個(gè)單詞。雖然本來(lái)是解決NLP問(wèn)題,看似與寫代碼沒(méi)什么關(guān)聯(lián),但建模代碼也算是用一種獨(dú)有的方式在理解英文

          比如,可以讓模型用if/else語(yǔ)句否定單詞:

          項(xiàng)目主頁(yè)顯示,在大約經(jīng)過(guò)GitHub中200萬(wàn)個(gè)文件訓(xùn)練后,TabNine具備了自動(dòng)補(bǔ)全代碼的能力。

          在訓(xùn)練這個(gè)模型期間,模型學(xué)習(xí)了例如動(dòng)態(tài)類型語(yǔ)言中的類型推斷等復(fù)雜行為,用這樣的訓(xùn)練方式預(yù)測(cè)token。

          作者表示,TabNine可以很好利用傳統(tǒng)代碼補(bǔ)全工具難以獲取的瑣碎細(xì)節(jié)。

          例如,假設(shè)app.get_user的返回類型是一個(gè)帶有setter方法的對(duì)象,而app.get_users的返回類型是一個(gè)列表,兩個(gè)名稱之間只有細(xì)微的差別:

          這個(gè)模型還能以自然語(yǔ)言編寫的文檔來(lái)推斷函數(shù)名稱、參數(shù)和返回類型:

          Deep TabNine加入了之前用戶強(qiáng)烈要求加入的功能:用預(yù)先存在的知識(shí),解決在創(chuàng)建新項(xiàng)目時(shí)的代碼補(bǔ)全問(wèn)題。

          例如,它知道當(dāng)一個(gè)類擴(kuò)展React.Component時(shí),它的構(gòu)造函數(shù)通常會(huì)調(diào)用一個(gè)名為props的參數(shù),并且通常在其內(nèi)部用this.state賦值:

          Deep TabNine甚至可以做不可能的事情,并記住C++可變參數(shù)轉(zhuǎn)發(fā)語(yǔ)法:

          “殺手級(jí)應(yīng)用”

          TabNine問(wèn)世后,不斷收獲好評(píng),甚至還有程序員激動(dòng)得爆粗口:

          臥槽,這種軟件多來(lái)點(diǎn)就好了。(Fuck yeah. This is the sort of software I want to see more often: TabNine )

          有網(wǎng)友表示, 沒(méi)有它都不知道該怎么面對(duì)寫代碼這件事了。

          還有人稱之為開(kāi)發(fā)者應(yīng)用中的第一個(gè)“殺手級(jí)應(yīng)用程序”:

          “令人印象深刻”、“感到神奇”“太酷了”……推特上的評(píng)價(jià),頗有電視廣告上“用了都說(shuō)好”的畫風(fēng)。

          在各大科技論壇上,也有網(wǎng)友提出了建議和改進(jìn)的方向。

          有用戶反映,也有美中不足的地方,比如這個(gè)工具會(huì)干擾自動(dòng)括號(hào)完成。

          作者表示,TabNine還在不斷更新完善中,正在改進(jìn)這些bug。

          大四學(xué)霸的第一桶金

          想不到吧,這款好評(píng)如潮的代碼工具,出自一名大四學(xué)生之手。

          Jacob Jackson,加拿大人,目前在滑鐵盧大學(xué)主修計(jì)算機(jī)科學(xué)與組合優(yōu)化專業(yè),輔修數(shù)學(xué)。大四在讀,今年8月份畢業(yè)。

          Jackson此前在Reddit上發(fā)帖稱,這是自己在大學(xué)階段開(kāi)發(fā)的第一款商業(yè)軟件產(chǎn)品。

          別人的大學(xué),別人的第一桶金~

          但Jackson并非無(wú)名之輩,年少有為,曾在2014和2015連續(xù)兩年獲得IOI金牌

          因此,大學(xué)一入學(xué),便成為加拿大Michael and Ophelia Lazaridis Olympiad Scholarship獎(jiǎng)學(xué)金的獲得者,免除了8個(gè)學(xué)期學(xué)費(fèi)書費(fèi)和生活費(fèi)。

          除了自動(dòng)補(bǔ)全代碼的TabNine,Jackson還開(kāi)發(fā)了很多有意思的應(yīng)用,比如一個(gè)名為jellies的益智游戲,和使用蒙特卡羅樹(shù)搜索的國(guó)際象棋引擎Sashimi等。

          傳送門

          TabNine網(wǎng)站:https://tabnine.com/blog/deep

          Jackson GitHub主頁(yè):https://github.com/zxqfl

          Jackson簡(jiǎn)歷:http://jacobj.ca/resume.html

          題圖:pexels,CC0 授權(quán)。


          主站蜘蛛池模板: 日韩免费一区二区三区在线| 在线免费观看一区二区三区| 国产福利电影一区二区三区,亚洲国模精品一区 | 蜜臀AV免费一区二区三区| 色偷偷一区二区无码视频| 国产91久久精品一区二区| 精品在线一区二区| 午夜影视日本亚洲欧洲精品一区| 91视频一区二区| 日韩AV在线不卡一区二区三区 | 一区二区三区免费精品视频| 中文无码AV一区二区三区| 亚洲av无码一区二区三区天堂| 国产伦精品一区二区三区四区| 亚洲爆乳精品无码一区二区三区| 亚洲AV无码一区二区大桥未久| 国产免费一区二区三区不卡| 国产情侣一区二区| 精品一区二区三区中文字幕| 一区三区三区不卡| 精品国产一区二区三区av片| 亚洲视频一区在线| 亚洲AV综合色一区二区三区 | 亲子乱av一区区三区40岁| 国产精品视频一区二区三区经| 99精品久久精品一区二区| 久久免费视频一区| 中文国产成人精品久久一区| 精品一区二区三区色花堂| 日本一区二区三区在线视频 | 国产无线乱码一区二三区| 国产一区二区三区亚洲综合| 成人精品一区二区不卡视频| 无码乱码av天堂一区二区| 免费精品一区二区三区在线观看| 精品视频一区二区三三区四区| 蜜桃视频一区二区三区在线观看| 色偷偷一区二区无码视频| 精品一区二区久久久久久久网精| 怡红院美国分院一区二区| 中文字幕一区二区在线播放|