亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cf_interleaver_8_64.py

?? interleaver即交織器
?? PY
字號:
##  Copyright (c) 2003 Launchbird Design Systems, Inc.#  All rights reserved.#  #  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:#    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.#    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.#  #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,#  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.#  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,#  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#  #  #  Overview:#  #    Memory interleavers are often used in DSP for reordering continuous streaming data.#    The interleaver is comprised of two interleaving memories.  One memory loads and#    reorders data, while the other memory dumps the data to the output.#    Once loading and dumping of data are complete, the memories reverse roles.#    The dumping memory continuously cycles though the entire memory starting at address 0.#  #  Interface:#  #    Synchronization:#      clock_c  : Clock input.#  #    Inputs:#      swap_i   : Swap signal to interleave memories.  Pulse occurs one frame before the switch#                 and may coincide with the last input data.#      write_i  : Write enable for input data.#      addr_i   : Address for input data.#      data_i   : Input data.#  #    Outputs:#      sync_primary_o    : Output sync plus occurs one frame before data new dump.#      sync_secondary_o  : Secondary sync plus occurs one frame before data at address 0 is dumped.#      data_o            : Output data.#  #  Built In Parameters:#  #    Address Width  = 8#    Data Width     = 64#  #  #  #  #  Generated by Confluence 0.6.3  --  Launchbird Design Systems, Inc.  --  www.launchbird.com#  #  Build Date : Fri Aug 22 09:33:26 CDT 2003#  #  Interface#  #    Build Name    : cf_interleaver_8_64#    Clock Domains : clock_c  #    Vector Input  : swap_i(1)#    Vector Input  : write_i(1)#    Vector Input  : addr_i(8)#    Vector Input  : data_i(64)#    Vector Output : sync_primary_o(1)#    Vector Output : sync_secondary_o(1)#    Vector Output : data_o(64)#  #  #  import sysimport timeclass cf_interleaver_8_64:  def init(self):    self.n84 = 0L    self.n80 = 0L    self.n79 = 0L    self.n58 = 0L    self.n28 = 0L    self.n27 = 0L    self.n26 = 0L    self.n25 = 0L    self.n22 = 0L    self.n21 = 0L    self.n20 = 0L    self.n19 = 0L    self.n18 = 0L    self.n17 = 0L    self.n16 = 0L    self.n7 = 0L    self.n6 = 0L    self.n5 = 0L    self.n4 = 0L    self.n3 = 0L    self.n2 = 0L    self.n1 = 0L    self.n82 = 0L    self.n59 = 0L    self.n57 = 0L    self.n57r = 0L    self.n57e = 0L    self.n57d = 0L    self.n32 = 0L    self.n10 = 0L    self.n81 = 0L    self.n45 = 0L    self.n44 = 0L    self.n35 = 0L    self.n34 = 0L    self.n33 = 0L    self.n15 = 0L    self.n15r = 0L    self.n15e = 0L    self.n15d = 0L    self.n48 = 0L    self.n36 = 0L    self.n49 = 0L    self.n37 = 0L    self.n66 = 0L    self.n50 = 0L    self.n38 = 0L    self.n78 = 0L    self.n78r = 0L    self.n78e = 0L    self.n78d = 0L    self.n71 = 0L    self.n71e = 0L    self.n71w = 0L    self.n71aw = 0L    self.n71ar = 0L    self.n71dw = 0L    self.n71m = [0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,]    self.n60 = 0L    self.n43 = 0L    self.n43r = 0L    self.n43e = 0L    self.n43d = 0L    self.n65 = 0L    self.n65e = 0L    self.n65w = 0L    self.n65aw = 0L    self.n65ar = 0L    self.n65dw = 0L    self.n65m = [0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,]    self.calc(0L, 0L, 0L, 0L, )  def calc(self, swap_i, write_i, addr_i, data_i, ):    self.n84 = 0x1L    sync_primary_o = self.n57    self.n80 = self.n57    if self.n78:      self.n79 = self.n71    else:      self.n79 = self.n65    self.n58 = 0x00L    self.n28 = 0x2L    self.n27 = 0x0L    self.n26 = 0x0L    self.n25 = 0x0L    self.n22 = 0x1L    self.n21 = 0x2L    self.n20 = 0x0L    self.n19 = 0x0L    self.n18 = 0x1L    self.n17 = 0x1L    self.n16 = 0x0L    self.n7 = 0x01L    self.n6 = data_i    self.n5 = addr_i    self.n4 = write_i    self.n3 = swap_i    self.n2 = 0x0L    self.n1 = 0x1L    data_o = self.n79    self.n82 = self.n79    if self.n15 == self.n58:      self.n59 = 1L    else:      self.n59 = 0L    self.n57r = self.n2    self.n57e = self.n1    self.n57d = self.n3    self.n32 = self.n3 << 1 | self.n43    self.n10 = (self.n15 + self.n7) & 0xFFL    sync_secondary_o = self.n59    self.n81 = self.n59    if self.n32 == self.n28:      self.n45 = 1L    else:      self.n45 = 0L    if self.n32 == self.n27:      self.n44 = 1L    else:      self.n44 = 0L    if self.n32 == self.n22:      self.n35 = 1L    else:      self.n35 = 0L    if self.n32 == self.n21:      self.n34 = 1L    else:      self.n34 = 0L    if self.n32 == self.n20:      self.n33 = 1L    else:      self.n33 = 0L    self.n15r = self.n3    self.n15e = self.n1    self.n15d = self.n10    if self.n45:      self.n48 = self.n25    else:      self.n48 = self.n84    if self.n35:      self.n36 = self.n17    else:      self.n36 = self.n16    if self.n44:      self.n49 = self.n26    else:      self.n49 = self.n48    if self.n34:      self.n37 = self.n18    else:      self.n37 = self.n36    self.n66 = self.n4 & self.n49    self.n50 = ~self.n49 & 0x1L    if self.n33:      self.n38 = self.n19    else:      self.n38 = self.n37    self.n78r = self.n2    self.n78e = self.n1    self.n78d = self.n50    self.n71e = self.n1    self.n71w = self.n66    self.n71aw = self.n5    self.n71ar = self.n15    self.n71dw = self.n6    self.n60 = self.n4 & self.n50    self.n43r = self.n2    self.n43e = self.n1    self.n43d = self.n38    self.n65e = self.n1    self.n65w = self.n60    self.n65aw = self.n5    self.n65ar = self.n15    self.n65dw = self.n6    return (sync_primary_o, sync_secondary_o, data_o, )  def cycle_clock(self):    if self.n15r:      self.n15 = 0L    elif self.n15e:        self.n15 = self.n15d    if self.n43r:      self.n43 = 0L    elif self.n43e:        self.n43 = self.n43d    if self.n57r:      self.n57 = 0L    elif self.n57e:        self.n57 = self.n57d    if self.n65e:      if self.n65w:        self.n65m[self.n65aw] = self.n65dw      self.n65 = self.n65m[self.n65ar]    if self.n71e:      if self.n71w:        self.n71m[self.n71aw] = self.n71dw      self.n71 = self.n71m[self.n71ar]    if self.n78r:      self.n78 = 0L    elif self.n78e:        self.n78 = self.n78d  def sim_init(self, vcdFile):    self.sim_file = open(vcdFile, 'w')    self.sim_count = 1    self.init()    self.sim_n3 = self.n3    self.sim_n4 = self.n4    self.sim_n5 = self.n5    self.sim_n6 = self.n6    self.sim_n80 = self.n80    self.sim_n81 = self.n81    self.sim_n82 = self.n82    self.sim_file.write("$date\n")    self.sim_file.write("  " + time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) + "\n")    self.sim_file.write("$end\n")    self.sim_file.write("$version\n  Confluence 0.6.3 -- Launchbird Design Systems, Inc.\n$end\n")    self.sim_file.write("$timescale\n  1 ns\n$end\n")    self.sim_file.write("$scope module cf_interleaver_8_64 $end\n")    self.sim_file.write("$var wire 1 ! swap_i $end\n")    self.sim_file.write("$var wire 1 \" write_i $end\n")    self.sim_file.write("$var wire 8 # addr_i $end\n")    self.sim_file.write("$var wire 64 $ data_i $end\n")    self.sim_file.write("$var wire 1 % sync_primary_o $end\n")    self.sim_file.write("$var wire 1 & sync_secondary_o $end\n")    self.sim_file.write("$var wire 64 ' data_o $end\n")    self.sim_file.write("$upscope $end\n")    self.sim_file.write("$enddefinitions $end\n")    self.sim_file.write("#0\n")    self.sim_file.write("$dumpvars\n")    if self.n3:      self.sim_file.write("1!\n")    else:      self.sim_file.write("0!\n")    if self.n4:      self.sim_file.write("1\"\n")    else:      self.sim_file.write("0\"\n")    found = 0    for bit in range(7, -1, -1):      if found:        if self.n5 & (2L ** bit):          self.sim_file.write("1")        else:          self.sim_file.write("0")      else:        if self.n5 & (2L ** bit):          self.sim_file.write("b1")          found = 1    if not found:      self.sim_file.write("b0")    self.sim_file.write(" #\n")    found = 0    for bit in range(63, -1, -1):      if found:        if self.n6 & (2L ** bit):          self.sim_file.write("1")        else:          self.sim_file.write("0")      else:        if self.n6 & (2L ** bit):          self.sim_file.write("b1")          found = 1    if not found:      self.sim_file.write("b0")    self.sim_file.write(" $\n")    if self.n80:      self.sim_file.write("1%\n")    else:      self.sim_file.write("0%\n")    if self.n81:      self.sim_file.write("1&\n")    else:      self.sim_file.write("0&\n")    found = 0    for bit in range(63, -1, -1):      if found:        if self.n82 & (2L ** bit):          self.sim_file.write("1")        else:          self.sim_file.write("0")      else:        if self.n82 & (2L ** bit):          self.sim_file.write("b1")          found = 1    if not found:      self.sim_file.write("b0")    self.sim_file.write(" '\n")    self.sim_file.write("$end\n")  def sim_end(self):    self.sim_file.write("#%d\n" % self.sim_count)    self.sim_file.close()  def sim_sample(self):    changed = 0    if self.sim_n3 != self.n3:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      if self.n3:        self.sim_file.write("1!\n")      else:        self.sim_file.write("0!\n")      self.sim_n3 = self.n3    if self.sim_n4 != self.n4:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      if self.n4:        self.sim_file.write("1\"\n")      else:        self.sim_file.write("0\"\n")      self.sim_n4 = self.n4    if self.sim_n5 != self.n5:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      found = 0      for bit in range(7, -1, -1):        if found:          if self.n5 & (2L ** bit):            self.sim_file.write("1")          else:            self.sim_file.write("0")        else:          if self.n5 & (2L ** bit):            self.sim_file.write("b1")            found = 1      if not found:        self.sim_file.write("b0")      self.sim_file.write(" #\n")      self.sim_n5 = self.n5    if self.sim_n6 != self.n6:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      found = 0      for bit in range(63, -1, -1):        if found:          if self.n6 & (2L ** bit):            self.sim_file.write("1")          else:            self.sim_file.write("0")        else:          if self.n6 & (2L ** bit):            self.sim_file.write("b1")            found = 1      if not found:        self.sim_file.write("b0")      self.sim_file.write(" $\n")      self.sim_n6 = self.n6    if self.sim_n80 != self.n80:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      if self.n80:        self.sim_file.write("1%\n")      else:        self.sim_file.write("0%\n")      self.sim_n80 = self.n80    if self.sim_n81 != self.n81:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      if self.n81:        self.sim_file.write("1&\n")      else:        self.sim_file.write("0&\n")      self.sim_n81 = self.n81    if self.sim_n82 != self.n82:      if not changed:        changed = 1        self.sim_file.write("#%d\n" % self.sim_count)      found = 0      for bit in range(63, -1, -1):        if found:          if self.n82 & (2L ** bit):            self.sim_file.write("1")          else:            self.sim_file.write("0")        else:          if self.n82 & (2L ** bit):            self.sim_file.write("b1")            found = 1      if not found:        self.sim_file.write("b0")      self.sim_file.write(" '\n")      self.sim_n82 = self.n82    self.sim_count = self.sim_count + 1

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区| 久热成人在线视频| 亚洲一区二区三区四区不卡| 国产精品理伦片| 一个色在线综合| 美女性感视频久久| 国产精品一级片在线观看| 97se亚洲国产综合自在线| 欧美日韩精品高清| 欧美系列亚洲系列| 欧美不卡一区二区三区四区| 亚洲欧美影音先锋| 日本一区二区三区高清不卡| 一区二区高清免费观看影视大全| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产女人18毛片水真多成人如厕| 久久久综合精品| 亚洲免费高清视频在线| 日日夜夜免费精品视频| 美女视频黄久久| 91黄色激情网站| 国产日产欧美一区二区三区| 日韩电影在线免费| 99久久伊人精品| 久久亚洲影视婷婷| 亚洲图片有声小说| 成人永久aaa| 日韩欧美www| 日本不卡123| 日韩欧美国产午夜精品| 图片区日韩欧美亚洲| 欧美亚洲动漫制服丝袜| 亚洲综合一区二区三区| 日本精品一级二级| 一区二区三区中文字幕在线观看| 白白色 亚洲乱淫| 亚洲欧洲国产日韩| av电影一区二区| 亚洲欧美日韩综合aⅴ视频| 成人晚上爱看视频| 国产精品国产三级国产aⅴ原创| 东方欧美亚洲色图在线| 国产精品色婷婷久久58| 成人免费看的视频| 1区2区3区精品视频| 色综合视频在线观看| 亚洲激情综合网| 欧美日本一区二区在线观看| 99久久免费国产| 亚洲欧美在线高清| 欧美在线短视频| 日韩二区三区在线观看| 欧美videos中文字幕| 国产一区二区三区不卡在线观看| 国产欧美日韩麻豆91| 成人avav影音| 亚洲在线成人精品| 欧美一级生活片| 成人性色生活片| 亚洲激情图片小说视频| 欧美老肥妇做.爰bbww视频| 日韩一区精品视频| 久久久天堂av| 色婷婷精品大视频在线蜜桃视频| 日韩国产高清影视| 久久精品夜色噜噜亚洲aⅴ| 91网站在线播放| 七七婷婷婷婷精品国产| 国产午夜亚洲精品理论片色戒 | 18成人在线观看| 欧美日韩一卡二卡三卡| 激情av综合网| 亚洲资源中文字幕| 2023国产精品自拍| 日本黄色一区二区| 久久99久久久久| 综合在线观看色| 91精品综合久久久久久| 成人伦理片在线| 日本不卡一区二区三区高清视频| 欧美激情一区二区三区全黄| 欧美午夜片在线看| 国产一区二区成人久久免费影院| 亚洲精品国产第一综合99久久 | 欧美电影免费观看高清完整版在线 | 欧美日韩免费视频| 国产精品自拍网站| 亚洲一区二区三区四区五区中文| 久久精品亚洲麻豆av一区二区| 欧美一a一片一级一片| 国产suv一区二区三区88区| 日韩在线一区二区三区| 国产精品国产a级| www国产成人| 日韩精品一区二区在线观看| 欧美午夜片在线看| 99国产欧美另类久久久精品| 国产精品一区二区三区乱码| 免费看精品久久片| 亚洲综合视频在线| 亚洲图片另类小说| 国产精品免费久久| 久久免费视频色| 精品日韩一区二区三区 | 成人激情免费视频| 激情都市一区二区| 蜜臀久久久久久久| 亚洲一区二区偷拍精品| 亚洲激情图片一区| 亚洲欧美一区二区三区孕妇| 中文字幕亚洲精品在线观看 | 欧美一区二区三级| 91福利社在线观看| 97成人超碰视| 一本一本久久a久久精品综合麻豆| 国产一区免费电影| 日韩 欧美一区二区三区| 视频在线在亚洲| 日韩av中文字幕一区二区| 日日夜夜精品视频天天综合网| 一区二区三区精品| 亚洲第一福利一区| 午夜精品久久久久久久蜜桃app| 亚洲一二三区在线观看| 亚洲午夜在线电影| 亚洲国产日韩a在线播放性色| 一区二区三区精品| 亚洲一区二区三区国产| 亚洲国产毛片aaaaa无费看 | 美腿丝袜在线亚洲一区| 热久久国产精品| 经典一区二区三区| 国产专区综合网| 成人白浆超碰人人人人| av亚洲产国偷v产偷v自拍| 色菇凉天天综合网| 欧美日韩国产片| 精品精品欲导航| 中日韩av电影| 亚洲伊人色欲综合网| 青草国产精品久久久久久| 久久www免费人成看片高清| 国产一区二区三区久久久 | 中文字幕一区二区在线观看| 一区二区三区日韩精品| 天天影视涩香欲综合网| 精品一区二区三区不卡| 成人av高清在线| 欧美欧美午夜aⅴ在线观看| 久久综合九色综合欧美就去吻| 亚洲国产精品成人综合| 亚洲特黄一级片| 久久精品理论片| 91色九色蝌蚪| 日韩精品一区二区三区蜜臀| 国产精品久久久久久久岛一牛影视| 亚洲综合精品自拍| 久久99精品久久久| 91网站最新网址| 26uuu欧美日本| 一区二区三区欧美激情| 国产最新精品免费| 欧美亚洲高清一区二区三区不卡| 久久蜜桃av一区精品变态类天堂| 亚洲一区二区欧美激情| 国产美女在线精品| 欧美视频在线观看一区| 久久综合五月天婷婷伊人| 一区二区三区欧美| 国产精品资源在线| 欧美日韩日日摸| 亚洲色图视频免费播放| 精品一区二区三区免费观看| 色噜噜狠狠成人中文综合| 久久人人97超碰com| 性感美女久久精品| av影院午夜一区| 久久久久99精品一区| 亚洲18女电影在线观看| 91婷婷韩国欧美一区二区| 久久久久久久久久久久久久久99| 午夜影院久久久| 91在线一区二区三区| 国产婷婷一区二区| 另类小说视频一区二区| 欧美在线你懂的| 中文字幕一区二区视频| 国产酒店精品激情| 精品99999| 久久99精品一区二区三区 | 中文字幕欧美区| 国产一区二区中文字幕| 欧美一区二区在线观看| 亚洲成人1区2区| 欧美性感一类影片在线播放| 一区二区三区国产| av成人动漫在线观看| 国产精品五月天| bt欧美亚洲午夜电影天堂| 国产欧美一区二区三区沐欲|