| | |
| | | function contractOrderList(data) { |
| | | return Axios.fetch("wap/api/contractOrder!list.action", data); |
| | | } |
| | | |
| | | //止盈止损设置 |
| | | function quedingSetting(data) { |
| | | return Axios.fetch("wap/api/contractApplyOrder!stopProfitAndLoss.action", data); |
| | | } |
| | | |
| | | // 部分平仓 用于持仓区域的平仓,以及下单区的平仓 |
| | | function orderPartClose(data) { |
| | | return Axios.fetch("wap/api/contractApplyOrder!close.action", data); |
| | |
| | | allOrderClose, |
| | | orderOpenview, |
| | | getAssets, |
| | | quedingSetting |
| | | }; |
| | |
| | | <div class="trading-title"> |
| | | {{ $t("message.jiaoyi.jiaoyishiduan") }} |
| | | </div> |
| | | <div class="trading-input-box"> |
| | | <div class="trading-popup"> |
| | | <ul> |
| | | <li |
| | | v-for="(item, index) in list" |
| | | :key="index" |
| | | @click.stop="timeBtn(item, index)" |
| | | :class="[activeIndex == index ? 'active' : '']" |
| | | > |
| | | {{ item.time_num }} |
| | | <span v-if="item.time_unit == 'second'">s</span> |
| | | <span v-if="item.time_unit == 'minute'">m</span> |
| | | <span v-if="item.time_unit == 'hour'">h</span> |
| | | <span v-if="item.time_unit == 'day'">d</span> |
| | | <div style="margin: 0 5px"></div> |
| | | {{ item.profit_ratio }} % |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | <!-- <div class="trading-input-box"> |
| | | <div class="input-box">{{ deliveryValue }}</div> |
| | | <div> |
| | | <i class="el-icon-caret-bottom"></i> |
| | |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | <!-- 交易数量输入 --> |
| | | <div class="trading-session-box"> |
| | | <div class="trading-title">{{ $t("message.jiaoyi.shuliang") }}</div> |
| | | <div class="trading-session-box" style="margin-top: 120px;"> |
| | | <div class="trading-title">{{ $t("message.jiaoyi.jine") }}</div> |
| | | <div class="trading-input-box"> |
| | | <div class="input-box"> |
| | | <input |
| | |
| | | </div> |
| | | </div> |
| | | <!-- 数量百分比 --> |
| | | <div class="tab-box"> |
| | | <!-- <div class="tab-box"> |
| | | <div |
| | | class="tab-item" |
| | | v-for="(item, index) in fastList" |
| | |
| | | > |
| | | {{ item }}% |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <!-- 买入按钮 --> |
| | | <button |
| | | v-if="existToken" |
| | |
| | | position: absolute; |
| | | overflow-y: scroll; |
| | | left: 0; |
| | | height: 260px; |
| | | height: 165px; |
| | | z-index: 2; |
| | | top: 45px; |
| | | top: 75px; |
| | | } |
| | | |
| | | .trading-popup ul { |
| | |
| | | <div>{{ $t("message.home.jiaogeshijian") }}</div> |
| | | <div>{{ $t("message.home.goumaijia") }}</div> |
| | | <div>{{ $t("message.home.jiesuanjia") }}</div> |
| | | <div>{{ $t("message.home.yingkui") }}</div> |
| | | <!-- <div>{{ $t("message.home.yingkui") }}</div> --> |
| | | <div class="flex-2"> |
| | | {{ $t("message.home.daoqishijian") }} |
| | | </div> |
| | |
| | | <div>{{ item.time_num }} {{ item.time_unit }}</div> |
| | | <div>{{ item.open_price }}</div> |
| | | <div>{{ item.close_price }}</div> |
| | | <div v-if="item.profit < 0" class="red"> |
| | | <!-- <div v-if="item.profit < 0" class="red"> |
| | | {{ item.profit }} |
| | | </div> |
| | | <div v-else class="green"> |
| | | {{ item.profit }} |
| | | </div> |
| | | </div> --> |
| | | |
| | | <!-- <div>{{ item.order_no }}</div> |
| | | <div v-if="item.state=='submitted'">已提交</div> |
| | |
| | | this.orderNumber = res?.total || res.data.length; |
| | | } |
| | | let result = res.data.sort(this.sortData) |
| | | result.forEach(m => {// |
| | | m.open_time = m.open_time.split(' ')[0] + ' ' + initDate(m.open_time.split(' ')[1]) |
| | | m.settlement_time = m.settlement_time.split(' ')[0] + ' ' + initDate(m.settlement_time.split(' ')[1]) |
| | | }); |
| | | // result.forEach(m => {// |
| | | // m.open_time = m.open_time.split(' ')[0] + ' ' + initDate(m.open_time.split(' ')[1]) |
| | | // m.settlement_time = m.settlement_time.split(' ')[0] + ' ' + initDate(m.settlement_time.split(' ')[1]) |
| | | // }); |
| | | this.currencyData = res.data.sort(this.sortData); |
| | | this.currencyDataLength = res.data.length; |
| | | if (this.currencyDataLength == 0 || this.currencyDataLength < 10) { |
| | |
| | | |
| | | <el-button class="btn" size="small" @click="handleAllClose(scope)">{{ |
| | | $t("message.home.pingcang") |
| | | }}</el-button |
| | | > |
| | | <el-button class="btn" size="small" @click="zhiyingzhisunClose(scope)">{{ |
| | | $t("message.jiaoyi.zhiyingzhisun") |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <close-all-dialog ref="closeAllDialog"></close-all-dialog> |
| | | <close-dialog ref="closeDialog"></close-dialog> |
| | | <el-dialog v-model="dialogFormVisible" width="400"> |
| | | <el-form :model="form"> |
| | | <el-form-item :label="$t('message.jiaoyi.zhiying')" :label-width="formLabelWidth"> |
| | | <el-input v-model="form.zhiying" :placeholder="$t(`message.jiaoyi['请输入止盈金额']`)" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form :model="form"> |
| | | <el-form-item :label="$t('message.jiaoyi.zhisun')" :label-width="formLabelWidth"> |
| | | <el-input v-model="form.zhisun" :placeholder="$t(`message.jiaoyi['请输入止损金额']`)" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">{{ $t('message.jiaoyi.quxiao') }}</el-button> |
| | | <el-button type="primary" @click="quedingSetting"> |
| | | {{ $t('message.user.queding') }} |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | formLabelWidth: '40px', |
| | | form: { |
| | | zhiying: "", |
| | | zhisun: "" |
| | | }, |
| | | order_no: '', |
| | | dialogFormVisible: false, |
| | | pageNum: 1, |
| | | timer: null, |
| | | tables: [ |
| | | { |
| | | prop: "volume", //volume_open持仓总张数,volume表示剩余 |
| | | label: "message.home.zhangshu", |
| | | label: "message.home.shuliang", |
| | | }, |
| | | { |
| | | prop: "trade_avg_price", |
| | |
| | | formatter: this.directionFormatter, |
| | | }, |
| | | |
| | | { |
| | | prop: "change_ratio", |
| | | label: "message.home.baozhengjinbilv", |
| | | formatter: this.ratioFormatter, |
| | | }, |
| | | // { |
| | | // prop: "change_ratio", |
| | | // label: "message.home.baozhengjinbilv", |
| | | // formatter: this.ratioFormatter, |
| | | // }, |
| | | { |
| | | prop: "deposit", |
| | | label: "message.home.baozhengjin", |
| | | }, |
| | | { |
| | | prop: "profit", |
| | | label: "message.user.weishixianyingkui(shouyilv)", |
| | | label: "message.user.weishixianyingkui", |
| | | formatter: this.formatterData, |
| | | }, |
| | | { |
| | | prop: "profit", |
| | | label: "message.user.shouyilv", |
| | | formatter: this.formatterData1, |
| | | }, |
| | | ], |
| | | tableData: [], |
| | |
| | | clearInterval(this.timer); |
| | | }, |
| | | methods: { |
| | | quedingSetting(){ |
| | | const data = { |
| | | order_no: this.order_no, |
| | | stop_price_profit: this.form.zhiying, |
| | | stop_price_loss: this.form.zhisun, |
| | | } |
| | | Axios.quedingSetting(data).then(res => { |
| | | if(res.code == 0) { |
| | | this.$message({ |
| | | message: this.$t("message.user.chenggong"), |
| | | type: "success", |
| | | }); |
| | | this.dialogFormVisible = false |
| | | } |
| | | }) |
| | | }, |
| | | ratioFormatter(row) { |
| | | const { change_ratio } = row; |
| | | const ratio = `${bigDecimal.divide(change_ratio, 100, 4)}%`; |
| | |
| | | formatterData(row) { |
| | | const ratio = this.ratioFormatter(row); |
| | | const profit = Number(row.profit).toFixed(4); |
| | | return `${profit}(${ratio})`; |
| | | return profit > 0 ?`+${profit}`: `${profit}`; |
| | | }, |
| | | formatterData1(row) { |
| | | const ratio = this.ratioFormatter(row); |
| | | const profit = Number(row.profit).toFixed(4); |
| | | return ratio > 0 ? `+${ratio}` : `${ratio}`; |
| | | }, |
| | | |
| | | //设置单个单元格样式 行下标:rowIndex 列下标:columnIndex |
| | | cellStyle({ row, column, rowIndex, columnIndex }) { |
| | | if (columnIndex == 6) { |
| | | if (columnIndex == 6 || columnIndex == 5) { |
| | | if (Number(row.profit) > 0) { |
| | | return { color: "#62C885" }; |
| | | } else { |
| | |
| | | handleAllClose(data) { |
| | | this.$refs.closeAllDialog.open(data.row); |
| | | }, |
| | | zhiyingzhisunClose(data){ |
| | | this.order_no = data.row.order_no |
| | | this.dialogFormVisible = true |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | background: #409eff; |
| | | color: #fff; |
| | | } |
| | | /deep/ .el-dialog__header { |
| | | border-bottom: none; |
| | | } |
| | | </style> |
| | |
| | | label: "message.jiaoyi.heyue", |
| | | // formatter: this.nameFormatter, |
| | | }, |
| | | |
| | | { |
| | | prop: "lever_rate", |
| | | label: "message.home.gangganbeishu", |
| | | }, |
| | | { |
| | | prop: "direction", |
| | | label: "message.home.fangxiang", |
| | |
| | | { |
| | | prop: "trade_avg_price", |
| | | label: "message.home.chengjiaojunjia", |
| | | }, |
| | | { |
| | | prop: "close_avg_price", |
| | | label: "message.home['平仓价']", |
| | | }, |
| | | |
| | | { |
| | |
| | | }, |
| | | methods: { |
| | | profitFormatter(row) { |
| | | return Number(row.profit).toFixed(4); |
| | | if(Number(row.profit) > 0){ |
| | | return '+' + Number(row.profit).toFixed(4); |
| | | }else{ |
| | | return Number(row.profit).toFixed(4); |
| | | } |
| | | }, |
| | | //分页 |
| | | changePageNum(type) { |
| | |
| | | this.getList(); |
| | | }, |
| | | cellStyle({ row, column, rowIndex, columnIndex }) { |
| | | if (columnIndex == 2) { |
| | | if (columnIndex == 3) { |
| | | if (row.direction == "sell") { |
| | | return { color: "#E05561" }; |
| | | } else { |
| | |
| | | } |
| | | } |
| | | // // 未实现盈亏 |
| | | if (columnIndex == 6) { |
| | | if (columnIndex == 8) { |
| | | if (row.profit < 0) { |
| | | return { color: "#E05561" }; |
| | | } else { |
| | |
| | | list: thirdList, |
| | | path: "/education", |
| | | }, |
| | | { |
| | | list: fourthList, |
| | | path: "/contact-us", |
| | | }, |
| | | // { |
| | | // list: fourthList, |
| | | // path: "/contact-us", |
| | | // }, |
| | | ]; |
| | | |
| | | const list5 = [ |
| | |
| | | // 8.9. 在您註冊後,您承認我們按照本協議規定的規則進行任何操作,由此產生的任何風險均由您承擔。 |
| | | // ' |
| | | |
| | | 'MarketNews': '根據 ChainCatcher 報告,根據CME「聯準會觀察」數據,Fed在8月維持利率不變的機率為91.2%,降息25個基點的機率為8.8%。' |
| | | 'MarketNews': '根據 ChainCatcher 報告,根據CME「聯準會觀察」數據,Fed在8月維持利率不變的機率為91.2%,降息25個基點的機率為8.8%。', |
| | | "平仓价": "平倉價" |
| | | }; |
| | |
| | | heyuezongzican: "合約總資產", |
| | | suocang: "鎖倉", |
| | | '期权合约': '選擇權合約', |
| | | "请输入止盈金额": "請輸入止盈金額", |
| | | "请输入止损金额": "請輸入停損金額", |
| | | "实时价格": "即時價格" |
| | | }; |
| | |
| | | "shangchuanfukuanpingzheng": "Zahlungsnachweis hochladen", |
| | | "fukuanpingzheng": "Zahlungsnachweis", |
| | | "xianhuolishi": "Spot-Geschichte", |
| | | 'MarketNews': `Laut ChainCatcher liegt die Wahrscheinlichkeit, dass die Federal Reserve die Zinssätze im August unverändert lässt, laut CME-Daten „Fed Watch“ bei 91,2 % und die Wahrscheinlichkeit, die Zinssätze um 25 Basispunkte zu senken, bei 8,8 %.` |
| | | 'MarketNews': `Laut ChainCatcher liegt die Wahrscheinlichkeit, dass die Federal Reserve die Zinssätze im August unverändert lässt, laut CME-Daten „Fed Watch“ bei 91,2 % und die Wahrscheinlichkeit, die Zinssätze um 25 Basispunkte zu senken, bei 8,8 %.`, |
| | | "平仓价": "Schlusskurs" |
| | | } |
| | |
| | | "heyuezongzican": "Summe Vertragsvermögen", |
| | | "suocang": "Garage", |
| | | '期权合约': 'Optionsvertrag', |
| | | "请输入止盈金额": "Bitte geben Sie den Take-Profit-Betrag ein", |
| | | "请输入止损金额": "Bitte geben Sie den Stop-Loss-Betrag ein", |
| | | "实时价格": "Echtzeitpreis" |
| | | } |
| | |
| | | shangchuanfukuanpingzheng: "Upload payment voucher", |
| | | fukuanpingzheng: "Payment Voucher", |
| | | xianhuolishi: "Spot History", |
| | | 'MarketNews': `According to ChainCatcher, based on CME's "Fed Watch" data, the probability of the Federal Reserve keeping interest rates unchanged in August is 91.2%, and the probability of a 25 basis point rate cut is 8.8%.` |
| | | 'MarketNews': `According to ChainCatcher, based on CME's "Fed Watch" data, the probability of the Federal Reserve keeping interest rates unchanged in August is 91.2%, and the probability of a 25 basis point rate cut is 8.8%.`, |
| | | "平仓价": "Closing price" |
| | | }; |
| | |
| | | heyuezongzican: "Total Contract Assets", |
| | | suocang: "Lock", |
| | | '期权合约': 'Options Contracts', |
| | | "请输入止盈金额": "Please enter the take profit amount", |
| | | "请输入止损金额": "Please enter the stop loss amount", |
| | | "实时价格": "Real-time Prices" |
| | | }; |
| | |
| | | "shangchuanfukuanpingzheng": "Télécharger une preuve de paiement", |
| | | "fukuanpingzheng": "Preuve de paiement", |
| | | "xianhuolishi": "Historique des spots", |
| | | 'MarketNews': `Selon ChainCatcher, selon les données du CME « Fed Watch », la probabilité que la Réserve fédérale maintienne ses taux d'intérêt inchangés en août est de 91,2 % et la probabilité de réduire les taux d'intérêt de 25 points de base est de 8,8 %.` |
| | | 'MarketNews': `Selon ChainCatcher, selon les données du CME « Fed Watch », la probabilité que la Réserve fédérale maintienne ses taux d'intérêt inchangés en août est de 91,2 % et la probabilité de réduire les taux d'intérêt de 25 points de base est de 8,8 %.`, |
| | | "平仓价": "Le dernier prix" |
| | | } |
| | |
| | | "heyuezongzican": "Total de l’actif contractuel", |
| | | "suocang": "Huis clos", |
| | | '期权合约': "contrat d'options", |
| | | "请输入止盈金额": "Veuillez saisir le montant du take profit", |
| | | "请输入止损金额": "Veuillez saisir le montant du stop loss", |
| | | "实时价格": "prix en temps réel" |
| | | } |
| | |
| | | "shangchuanfukuanpingzheng": "Carica la prova del pagamento", |
| | | "fukuanpingzheng": "Prova di pagamento", |
| | | "xianhuolishi": "Cronologia degli spot", |
| | | 'MarketNews': `Secondo ChainCatcher, secondo i dati CME "Fed Watch", la probabilità che la Federal Reserve mantenga i tassi di interesse invariati ad agosto è del 91,2%, e la probabilità di tagliare i tassi di interesse di 25 punti base è dell'8,8%.` |
| | | 'MarketNews': `Secondo ChainCatcher, secondo i dati CME "Fed Watch", la probabilità che la Federal Reserve mantenga i tassi di interesse invariati ad agosto è del 91,2%, e la probabilità di tagliare i tassi di interesse di 25 punti base è dell'8,8%.`, |
| | | "平仓价": "Prezzo di chiusura" |
| | | } |
| | |
| | | "heyuezongzican": "Totale attività contrattuale", |
| | | "suocang": "Lontano da casa", |
| | | '期权合约': 'contratto di opzione', |
| | | "请输入止盈金额": "Inserisci l'importo del take profit", |
| | | "请输入止损金额": "Inserisci l'importo dello stop loss", |
| | | "实时价格": "prezzo in tempo reale" |
| | | } |
| | |
| | | "shangchuanfukuanpingzheng": "支払い証明書のアップロード", |
| | | "fukuanpingzheng": "支払い証明書", |
| | | "xianhuolishi": "スポット履歴", |
| | | 'MarketNews': `ChainCatcherによると、CME「Fed Watch」のデータによると、FRBが8月に金利を据え置く確率は91.2%、25ベーシスポイント利下げする確率は8.8%となっている。` |
| | | 'MarketNews': `ChainCatcherによると、CME「Fed Watch」のデータによると、FRBが8月に金利を据え置く確率は91.2%、25ベーシスポイント利下げする確率は8.8%となっている。`, |
| | | "平仓价": "終値" |
| | | } |
| | |
| | | "heyuezongzican": "契約資産総額", |
| | | "suocang": "ロックアップ", |
| | | '期权合约': 'オプション契約', |
| | | "请输入止盈金额": "テイクプロフィット金額を入力してください", |
| | | "请输入止损金额": "ストップロス金額を入力してください", |
| | | "实时价格": "リアルタイム価格" |
| | | } |
| | |
| | | "shangchuanfukuanpingzheng": "결제 증빙 자료 업로드", |
| | | "fukuanpingzheng": "지불 증빙 자료", |
| | | "xianhuolishi": "스폿 이력", |
| | | 'MarketNews': `ChainCatcher에 따르면 CME "Fed Watch" 데이터에 따르면 연준이 8월에 금리를 동결할 확률은 91.2%, 금리를 25bp 인하할 확률은 8.8%입니다.` |
| | | 'MarketNews': `ChainCatcher에 따르면 CME "Fed Watch" 데이터에 따르면 연준이 8월에 금리를 동결할 확률은 91.2%, 금리를 25bp 인하할 확률은 8.8%입니다.`, |
| | | "平仓价": "종가" |
| | | } |
| | |
| | | "heyuezongzican": "총 계약 자산", |
| | | "suocang": "락업(Lock-up)", |
| | | '期权合约': '옵션 계약', |
| | | "请输入止盈金额": "이익 실현 금액을 입력하세요.", |
| | | "请输入止损金额": "Stop Loss 금액을 입력해주세요.", |
| | | "实时价格": "실시간 가격" |
| | | } |
| | |
| | | "shangchuanfukuanpingzheng": "อัปโหลดหลักฐานการชําระเงิน", |
| | | "fukuanpingzheng": "หลักฐานการชําระเงิน", |
| | | "xianhuolishi": "ประวัติสถานที่แนะนํา", |
| | | 'MarketNews': `จากข้อมูลของ ChainCatcher ตามข้อมูล "Fed Watch" ของ CME ความน่าจะเป็นที่ Federal Reserve คงอัตราดอกเบี้ยไว้เท่าเดิมในเดือนสิงหาคมคือ 91.2% และความน่าจะเป็นที่จะลดอัตราดอกเบี้ยลง 25 จุดพื้นฐานคือ 8.8%` |
| | | 'MarketNews': `จากข้อมูลของ ChainCatcher ตามข้อมูล "Fed Watch" ของ CME ความน่าจะเป็นที่ Federal Reserve คงอัตราดอกเบี้ยไว้เท่าเดิมในเดือนสิงหาคมคือ 91.2% และความน่าจะเป็นที่จะลดอัตราดอกเบี้ยลง 25 จุดพื้นฐานคือ 8.8%`, |
| | | "平仓价": "ราคาปิด" |
| | | } |
| | |
| | | "heyuezongzican": "สินทรัพย์ตามสัญญารวม", |
| | | "suocang": "ล็อคอัพ", |
| | | '期权合约': 'สัญญาทางเลือก', |
| | | "请输入止盈金额": "กรุณากรอกจำนวนการทำกำไร", |
| | | "请输入止损金额": "กรุณากรอกจำนวนหยุดการสูญเสีย", |
| | | "实时价格": "ราคาเรียลไทม์" |
| | | } |
| | |
| | | "shangchuanfukuanpingzheng": "Tải lên bằng chứng thanh toán", |
| | | "fukuanpingzheng": "Bằng chứng thanh toán", |
| | | "xianhuolishi": "Lịch sử giao ngay", |
| | | 'MarketNews': `Theo ChainCatcher, theo dữ liệu của CME “Fed Watch”, xác suất Cục Dự trữ Liên bang giữ nguyên lãi suất trong tháng 8 là 91,2% và xác suất cắt giảm lãi suất 25 điểm cơ bản là 8,8%.` |
| | | 'MarketNews': `Theo ChainCatcher, theo dữ liệu của CME “Fed Watch”, xác suất Cục Dự trữ Liên bang giữ nguyên lãi suất trong tháng 8 là 91,2% và xác suất cắt giảm lãi suất 25 điểm cơ bản là 8,8%.`, |
| | | "平仓价": "Giá đóng cửa" |
| | | } |
| | |
| | | "heyuezongzican": "Tổng tài sản hợp đồng", |
| | | "suocang": "Khóa", |
| | | '期权合约': 'hợp đồng quyền chọn', |
| | | "请输入止盈金额": "Vui lòng nhập số tiền chốt lời", |
| | | "请输入止损金额": "Vui lòng nhập số tiền dừng lỗ", |
| | | "实时价格": "giá thời gian thực" |
| | | } |
| | |
| | | // 8.8. 我们不放弃我们在本协议中未提及的在适用法律的最大范围内限制、免除或抵消我们的损害赔偿责任的任何权利。 |
| | | // 8.9. 在您注册后,您承认我们按照本协议规定的规则进行任何操作,由此产生的任何风险均由您承担。 |
| | | // ' |
| | | 'MarketNews': '据 ChainCatcher 报道,根据CME“美联储观察”数据,美联储在8月份维持利率不变的概率为91.2%,降息25个基点的概率为8.8%。' |
| | | 'MarketNews': '据 ChainCatcher 报道,根据CME“美联储观察”数据,美联储在8月份维持利率不变的概率为91.2%,降息25个基点的概率为8.8%。', |
| | | "平仓价": "平仓价" |
| | | }; |
| | |
| | | heyuezongzican: "合约总资产", |
| | | suocang: "锁仓", |
| | | '期权合约': '期权合约', |
| | | "请输入止盈金额": "请输入止盈金额", |
| | | "请输入止损金额": "请输入止损金额", |
| | | "实时价格": "实时价格" |
| | | }; |