Gambar SVG: Cara Menggunakan Grafik Vektor yang Dapat Diskalakan Dalam JavaScript

Diterbitkan: 2022-12-14

Dengan asumsi Anda ingin artikel yang membahas cara menggunakan Scalable Vector Graphics dalam JavaScript, salah satu pengantar yang mungkin adalah sebagai berikut: Scalable Vector Graphics, atau SVG, adalah format gambar vektor berbasis XML untuk grafik dua dimensi. Gambar SVG dapat dibuat dan diedit dengan editor teks apa pun, tetapi seringkali dibuat dalam perangkat lunak menggambar seperti Adobe Illustrator, Inkscape, atau Sketch. Gambar SVG dapat digunakan di web dengan dua cara: sebagai SVG sebaris, atau sebagai gambar latar CSS. Inline SVG adalah kode yang berada di dalam HTML halaman web, sama seperti gambar lainnya. Gambar latar CSS hanyalah gambar yang ditetapkan sebagai latar belakang elemen menggunakan kode CSS. Ada banyak keuntungan menggunakan gambar SVG di web. Gambar SVG tidak bergantung pada resolusi, artinya dapat diskalakan ke ukuran apa pun tanpa kehilangan kualitas. Mereka juga lebih kecil dalam ukuran file daripada format gambar lainnya, membuatnya lebih cepat dimuat. Terlepas dari keunggulan ini, beberapa browser belum mendukung gambar SVG. Untuk browser yang tidak mendukung SVG, ada dua opsi: gunakan format gambar mundur seperti PNG, atau gunakan pustaka JavaScript seperti Web SVG untuk memberikan dukungan. Dengan dirilisnya Internet Explorer 9, Microsoft menambahkan dukungan untuk gambar SVG. Namun, karena bug di IE9, gambar SVG sebaris tidak ditampilkan dengan benar. Bug dapat diperbaiki dengan menambahkan sepotong kecil kode ke halaman HTML. Gambar SVG dapat digunakan untuk membuat berbagai macam efek visual. Pada artikel ini, kita akan melihat cara menyertakan gambar SVG di halaman web Anda dan cara menggunakannya untuk membuat animasi sederhana.

HTML dan SVG keduanya direpresentasikan menggunakan Document Object Model (DOM), yang merupakan model objek. Karena Javascript dapat digunakan untuk memanipulasinya, relatif mudah untuk memanipulasinya. Dalam kursus ini, saya akan membahas dasar-dasar bekerja dengan SVG inline dan eksternal . Semua contoh kode dapat ditemukan di bagian atas postingan ini, di bagian GitHub. Jika Anda ingin menambahkan elemen ke SVG eksternal, gunakan kode yang sama saat menambahkannya. Saat kami melakukan ini, SVG tidak akan dapat melihat SVG lain di halaman karena tidak dapat membaca dokumen HTML yang disematkan di dalamnya. Saat Anda membungkus kode dalam CDATA, penguraian XML akan menyertakan kode JS dalam XML.

Elemen HTML dibuat dan dihapus dengan cara yang sama seperti pada elemen HTML. Metode createElementNS() dari dokumen yang relevan harus digunakan untuk membuat elemen, dengan nama tag dan namespace yang digunakan. Hapus elemen dengan membuat node terpisah menggunakan createTextNode() dan kemudian menambahkannya ke elemen teks. Mereka tidak muncul di dokumen yang sama, jadi ini efektif.

Gambar dengan format XML berbasis vektor tidak terpengaruh oleh resolusi dan dapat diubah ukurannya dengan mudah. SVG mudah dimanipulasi dan dianimasikan menggunakan CSS atau JavaScript. Akibatnya, SVG adalah pilihan yang sangat baik untuk desain responsif, berlawanan dengan JPG, JPEG, PNG, dan format lainnya.

Dimungkinkan untuk menggunakan SVG di CSS melalui URI data, tetapi hanya mungkin di browser berbasis Webkit tanpa penyandian. encodeURIComponent() dapat menyandikan SVG ke dalam format apa pun, sehingga akan berfungsi di mana saja. xmlns harus seperti ini: xmlns=' http: //www.w3.org/2000/svg'. Ketika tidak ada, itu akan ditambahkan secara otomatis.

Untuk menambahkan sumber daya SVG ke komponen Anda, Anda dapat melakukannya melalui salah satu dari dua metode. Ini akan ditambahkan langsung ke HTML komponen Anda. Setelah Anda mengunggah sumber daya SVG sebagai sumber daya statis, Anda harus mengimpornya menggunakan file JavaScript komponen. Scalable Vector Graphics (SVG) adalah format gambar berbasis XML yang memungkinkan Anda menentukan garis grafik, kurva, bentuk, dan teks.

Ada banyak plugin jQuery SVG gratis yang tersedia, seperti Raphael-Vector Graphics, pan dan Zoom yang diaktifkan dengan Sentuhan, inline jQuery, iSVG, dan berbagai hal lainnya.

Bisakah Anda Menggunakan Svg Dalam Javascript?

Bisakah Anda Menggunakan Svg Dalam Javascript?
Sumber: thenewcode

HTML, CSS, dan JavaScript semuanya bekerja sama dengan baik di SVG.

Format file .svg memungkinkan penskalaan gambar dan data yang lebih dinamis. XML, bahasa markup, menjelaskan proses menggambar dan menyelaraskan file berbasis XML, yang terutama digunakan untuk merutekan file berbasis XML. Menjatuhkan markup ke dalam file HTML akan mengubahnya menjadi ikon yang berfungsi. Dengan cara ini, lokasi jarak jauh dapat diperbarui secara dinamis dengan ikon SVG selama data dirender dari sana. Tag XML, seperti elemen HTML, dapat dibuat dan kemudian diedit. Isi XML di file main.js dengan metode pilihan Anda. Itu akan disuntikkan dengan tag jangkar di mana kami akan memasukkan grafik yang dihasilkan, sehingga cocok untuk fitur pengguliran kami.

Secara umum, svg dapat ditangani dengan cara yang sama seperti elemen lainnya. Atribut yang dapat Anda tambahkan penting selain menambahkan gaya, kelas, dan sebagainya. Ikon sudah ditambahkan sebelumnya ke setiap posting dan dapat digunakan sebagai tautan jangkar untuk pengguliran yang mulus.

Menggunakan Inkscape, Anda dapat membuat grafik SVG. Karena dapat diperbesar dan diperkecil tanpa kehilangan kualitas, grafik SVG ideal untuk membuat halaman web. Anda dapat menggunakan Inkscape untuk menghasilkan elemen SVG yang disematkan langsung di halaman HTML. Ini adalah perangkat lunak desain grafis dan ilustrasi sumber terbuka dan gratis. Perangkat lunak ini gratis untuk digunakan di Windows, Mac OS X, dan Linux dan dapat digunakan untuk mendesain halaman web, logo, dan ilustrasi. Sangat penting untuk memilih format file dari mana Anda ingin menghasilkan grafik SVG di Inkscape. Ada tiga format file untuk file sva: vektor, raster, dan turunan vektor. Jika Anda bermaksud untuk menggunakan grafik Anda secara eksklusif di web, Anda harus menggunakan grafik vektor. Format raster adalah pilihan terbaik untuk aplikasi dan dokumen yang akan digunakan pada komputer atau perangkat yang belum terinstal Inkscape. Ukuran dan resolusi grafik Anda kemudian dapat dipilih menggunakan Inkscape. Menambahkan teks ke grafik Anda, selain teks, bisa dilakukan. Setelah Anda menyelesaikan desain, Anda dapat mengekspornya dalam format yang dapat digunakan Inkscape. Saat mengekspor grafik Anda, gunakan file PNG, JPG, atau.VG. Karena kemampuannya untuk ditingkatkan atau diturunkan tanpa kehilangan kualitas, grafik SVG ideal untuk halaman web.

Bagaimana Saya Menyematkan File Svg?

Bagaimana Saya Menyematkan File Svg?
Sumber: tutsplus

Untuk menyematkan file SVG, Anda harus menggunakan browser yang mendukung HTML5. Ini berarti Internet Explorer 8 atau versi sebelumnya tidak didukung. Dalam file HTML Anda, Anda harus menggunakan menandai. Tag ini digunakan untuk menyematkan file multimedia, seperti video, ke dalam dokumen HTML. Itu tag memerlukan beberapa atribut, seperti atribut src (sumber), yang menentukan lokasi file yang akan disematkan, dan atribut type, yang menentukan jenis file yang akan disematkan. Atribut type untuk file SVG harus disetel ke "image/svg+xml".

Haruskah kita menggunakan? tag atau harus kita gunakan? Apa perbedaan antara daftar pro dan kontra? sematkan font menggunakan tag dan gambar Nano. Jika tidak bisa, gunakan kompresi statis dan kompres SVG Anda dengan Brotli. Karena semakin banyak gambar di situs kami, masalah ini akan sulit dideteksi. Akibatnya, mesin pencari gambar dapat mencantumkan gambar kita menggunakan metode penyematan.

Cara terbaik dan termudah untuk menyematkan SVG ke dalam HTML adalah dengan menyertakan tag >img>. Jika Anda ingin gambar Anda interaktif, gunakan tag <object>. Saat Anda menambahkan tag orb.html sebagai cadangan, gambar akan dimuat dua kali, kecuali jika Anda menyimpan gambar dalam cache. Karena SVG pada dasarnya adalah DOM, Anda dapat mengelola dependensi dengan mudah menggunakan skrip, font, atau CSS eksternal. Gambar ScalableVGL dapat terus diperbarui dengan menggunakan tag objek, yang masih dienkapsulasi dalam file. Untuk menyematkan sebaris, Anda harus memastikan bahwa semua ID dan kelas unik. Jika Anda memerlukan perubahan dinamis pada SVG berdasarkan interaksi pengguna, satu-satunya pengecualian adalah jika tidak. Sebagian besar kasus, kami tidak merekomendasikan SVG sebaris; namun, pramuat halaman merupakan pengecualian. Iframe sulit dipertahankan, tidak muncul di mesin pencari, dan dianggap tidak relevan dalam hal SEO.

Mengatur Jenis Konten File Svg Anda

Jika Anda ingin memaksa browser untuk menampilkan SVG Anda, Anda dapat memodifikasi tipe konten ke application/svg+xml.

Apa itu Tag Svg Dalam Javascript?

Apa itu Tag Svg Dalam Javascript?
Sumber: imgur

Tag svg dalam javascript digunakan untuk membuat grafik vektor yang dapat diskalakan. Ini dapat digunakan untuk membuat garis, bentuk, dan teks.

Metode untuk memuat grafik vektor skalar (SVG) ke dalam halaman akan dijelaskan dalam tutorial ini. Dialek XML, seperti SVG, terlihat di halaman HTML. Sintaks untuk menambahkan dan memodifikasi elemen HTML dibandingkan dengan sintaks untuk transformasi dinamis. file JPG. Setelah kami menentukan metode kami, kami akan melihat contoh kasus. Kita harus bisa menyisipkan SVG menggunakan elemen sederhana dengan gaya HTML sederhana. Dalam contoh ini, kami memanggil metode createSVG dua kali.

Dengan menggunakan JavaScript dan CSS, kita dapat menyempurnakan SVG untuk mencapai kontrol yang lebih baik. Ini adalah proses dua langkah: pertama, createElementNS, yang mengambil salah satu dari dua parameter; dan kedua, nyatakan elemen SVG . Variabel satu huruf yang disebut o digunakan untuk menunjukkan objek yang diteruskan. Hasilnya, kita dapat menggunakan camelCase untuk objek dan sintaks tanda hubung untuk atribut HTML; kami menggunakan ekspresi reguler /[AZ]/g untuk mencari huruf kapital apa pun dan menggantinya dengan tanda hubung (-) diikuti dengan huruf kecil. Maka yang harus kita lakukan adalah mengembalikan elemen untuk ditambahkan.

elemen svg dapat digunakan untuk membuat grafik vektor yang dapat diskalakan dan diposisikan ulang tanpa kehilangan kualitas. HTML atau dokumen SVG lainnya dapat disematkan dengan grafik ini, dan dapat digunakan bersamaan dengan CSS untuk membuat halaman web yang mudah digunakan.

Javascript Tambahkan Svg Ke Div

Menambahkan grafik SVG ke div adalah cara yang bagus untuk menambahkan gaya ekstra ke halaman web Anda. Grafik SVG adalah Grafik Vektor yang Dapat Diskalakan, dan dapat diskalakan ke ukuran apa pun tanpa kehilangan kualitas. Ini membuatnya sempurna untuk desain web yang responsif. Untuk menambahkan grafik SVG ke div, Anda harus menggunakan “

Dalam tutorial ini, kita akan melihat cara menambahkan elemen dinamis ke SVG Anda. Dokumentasi MDN berisi sintaks berikut: http://www.w3.org/2000/svg. Kita memerlukan nama yang memenuhi syarat untuk elemen yang kita buat – persegi, teks, lingkaran, dan sebagainya. Kami tidak akan khawatir tentang opsi opsi opsional. Saya suka CSS dan gaya sebaris serta Atribut Presentasi. Kita dapat menentukan atribut atau gaya sebaris menggunakan alat GreenSock. Di banyak browser modern, CSS dapat digunakan untuk menambah atau menghapus variabel seperti cy, cy, r, dan sebagainya.

Kemungkinan besar paling baik menggunakan properti CSS (stylesheet atau gaya inline) pada proyek sesedikit mungkin. Saya akan menggunakan beberapa elemen dari HTML, CSS, dan atribut presentasi dalam artikel ini. Untuk menentukan jumlah persegi panjang, lebar, dan tinggi yang kita inginkan dari SVG, kita menggunakan variabel. Saya tidak akan membahas secara spesifik tentang properti geometri baru ini sampai dirilis, tetapi akan disertakan dalam versi baru perangkat lunak, SVG2. Kami ingin melihat elemen-elemen ini berfungsi dengan menggerakkannya. Dalam sebuah sva, kita dapat menggunakan alat clip-path untuk menambahkan elemen dinamis ke akar gambar. Demo ini akan menunjukkan bagaimana kita dapat membuat versi goresan dari lingkaran warna dasar dan menempatkannya ke dalam grup sehingga muncul saat diklik.

Persegi panjang yang dipotong adalah tween dari persentase yang diberikan, sehingga akan ditempatkan di bawah lingkaran tempat pemotongannya. Playhead harus dibalik jika tween dibalik. Saat kita klik, tidak terjadi apa-apa karena itu di awal tween. Akibatnya, animasi kami terdiri dari tween. Demo ini terdiri dari pengukur angka bergelombang, yang saya buat dengan loop dalam dan luar. Di loop dalam, fungsi makeLine() membuat lima garis vertikal, sedangkan di loop luar, fungsi makeNumber() membuat angka di atas tanda centang yang lebih tinggi. Keuntungannya adalah Anda dapat menyesuaikan berbagai hal dengan cepat tanpa harus kembali ke perangkat lunak vektor.

Bagaimana Saya Menambahkan Tag Di Svg?

Jika Anda ingin menulis gambar SVG langsung ke dalam dokumen HTML, gunakan *svg Ini dimungkinkan jika Anda menggunakan gambar SVG dalam kode VS atau IDE pilihan dan menyalin kode setelah memilih elemen body> dari dokumen HTML Anda. Anda harus dapat meniru tampilan dan nuansa demo di bawah ini jika semuanya berjalan lancar.

Apa itu Elemen Svg?

elemen svg adalah wadah yang digunakan untuk membuat sistem koordinat dan viewport baru. Ini adalah elemen HTML atau SVG yang digunakan sebagai elemen terluar dari dokumen SVG; namun, itu juga dapat disematkan di dalam dokumen HTML atau sva. Atribut xmlns hanya diperlukan pada elemen svg luar dari dokumen SVG.

Html Ke Svg Javascript

Ada banyak cara untuk mengonversi HTML ke SVG. Salah satu caranya adalah dengan menggunakan library pihak ketiga seperti D3.js. Cara lain adalah dengan menggunakan alat berbasis browser seperti Adobe Creative Cloud.

Grafik dengan Scalable Vector Graphics (SVG) biasanya digunakan dalam desain grafis. Grafik berbasis Extensible Markup Language (XML) yang ditulis dalam format ini unik dalam penggunaan jenis format gambar ini. Jenis HTML dan CSS yang menggunakan gambar SVG sangat banyak. Tutorial ini akan membahas enam metode berbeda selain enam metode yang dibahas di atas. Gambar latar CSS dapat dibuat menggunakan file SVG. Untuk menambahkan gambar ke dokumen HTML, gunakan tag >img> dokumen HTML. CSS telah digunakan untuk pertama kalinya, dan lebih banyak penyesuaian disediakan dalam versi ini.

Selain HTML, gambar dapat ditambahkan ke halaman web menggunakan file an.sva. Opsi <object> didukung oleh semua browser yang mendukung Scalable Vector Graphics (SVG). HTML. Menurut MDN, sebagian besar browser modern telah menghapus dukungan untuk plugin browser, jadi mengandalkan plugin sama sekali bukan ide yang bagus.

Jika Anda menyertakan gambar SVG di halaman web Anda, gambar tersebut akan tampak lebih menarik secara visual dan dapat diskalakan. Karena kompatibilitasnya dengan sebagian besar editor teks, gambar dapat dicari, diindeks, dibuat skrip, dan dikompresi menggunakan berbagai opsi.

Contoh Svg.js

SVG.js adalah library ringan untuk memanipulasi dan menganimasikan SVG. Ia tidak memiliki ketergantungan dan cukup kecil untuk muat pada floppy disk 3,5″. SVG.js menyediakan pembungkus di sekitar elemen kanvas HTML5 dan memaparkan antarmuka deklaratif untuk grafik 2D. Dengan SVG.js, Anda dapat membuat garis, kurva, dan bentuk berdasarkan ekspresi matematika—semuanya tanpa satu baris pun JavaScript.

Istilah ini mengacu pada grafik vektor skalabilitas, yang merupakan salah satu jenis grafik vektor yang paling umum digunakan. Sintaks XML mendefinisikan elemen dokumen SVG. Setiap elemen memiliki tag pembuka dan penutup. Elemen anak dapat ditemukan di salah satu tag. Sistem koordinat dan gaya elemen induk elemen diwariskan ke anak-anak ini. Elemen jalur terkenal dengan kecepatan dan kesulitannya. Ini berisi perintah dan poin yang dapat digunakan untuk menggambarkan bentuk jalur.

Sebuah jalur dapat memiliki beberapa perintah pindah ke untuk menggambar jalur di bagian lain dari dokumen. Elemen grup adalah elemen struktural yang dapat digunakan untuk menerapkan gaya dan transformasi ke beberapa elemen sekaligus. Perintah busur menyebabkan busur ditarik antara dua titik. Ini mirip dengan perintah kurva kuadrat karena memiliki titik kontrol tambahan. Kotak Tampilan memungkinkan pengguna untuk menentukan port tampilan untuk suatu gambar. Elemen individu dapat ditata dalam berbagai cara. Elemen teks mendefinisikan posisi teks dalam dokumen X, Y, dan seterusnya.

Teks dapat disejajarkan secara vertikal relatif terhadap posisinya jika Anda menggunakan atribut perataan-garis dasar. Untuk menampilkan hanya bagian grafik yang terdapat dalam bentuk jalur klip, jalur klip dapat diterapkan ke elemen. Di bagian ini, kami akan memandu Anda melalui proses membuat, memanipulasi, dan menambahkan interaktivitas ke elemen SVG menggunakan Vanilla Javascript dan Web API. Anda dapat mengubah konten dokumen dengan menggunakan Interaktivitas Interaktif. Untuk memulai, registerhandlers adalah metode paling umum untuk menangani kejadian pengguna. Acara seperti acara klik mouse, acara elemen mouse di atas, dan acara keyboard semuanya dapat ditemukan.

Cara Menambahkan Gambar Di Svg Menggunakan Javascript

Untuk menambahkan gambar ke file svg menggunakan javascript, Anda harus menggunakan elemen 'gambar'. Elemen ini dapat ditambahkan dengan menggunakan metode 'createElementNS'. Setelah Anda membuat elemen gambar, Anda dapat menyetel atribut 'href' ke URL gambar yang ingin Anda tambahkan.

Avatar patio11 diperlukan untuk membuat patio11bot kami. Saat browser memeriksa SVG, itu mengubahnya menjadi gambar. Dalam file SVG saya sendiri, saya telah memasukkan elemen openMouth sebagai elemen tersembunyi. Dengan mengubah visibilitas antara keduanya, saya harus menyadari bahwa dia hanya berbicara kepada saya. Pembahasan patio11bot akan dibuat menggunakan file HTML dengan simbol yang sesuai dengan tag objek. Kita sekarang dapat melihat semua elemen SVG yang berbeda karena sekarang telah diperiksa. Namun, Anda dapat menggunakan JavaScript untuk memilih opsi ini. Saat kita memanggil contentDocument, kita bisa mendapatkan dokumen dari objek tersebut. Hal terpenting yang dapat kita lakukan adalah menggunakan informasi tersebut untuk mendapatkan referensi tentang mulut dan bukaan mulut.

Gambar Svg Sebaris Dalam Html: Kemungkinan

Anda dapat menyejajarkan gambar SVG dengan menggunakan HTML. Karena gambar bisa berupa HTML inline, kita bisa memanipulasinya menggunakan JavaScript. Dimungkinkan juga untuk menganimasikan bagian gambar dari kode, membuatnya interaktif, atau membalikkan keadaan dan menghasilkan grafik berdasarkan data. Sebagai contoh, kita dapat menggunakan JavaScript dan sva untuk membuat animasi sederhana.

Secara Dinamis Membuat Gambar Svg Dalam Javascript

Anda dapat membuat gambar SVG secara dinamis dalam JavaScript dengan menggunakan metode createElementNS(). Metode ini membutuhkan dua argumen: namespace URI dari elemen SVG yang akan dibuat dan nama elemennya. Misalnya untuk membuat sebuah

Tag Viewport: Tidak Hanya Untuk Dilihat Lagi

Sudut kiri bawah area pandang diwakili oleh min-x di angka pertama. Angka kedua, min-y, menentukan konten viewport di pojok kiri bawah. Dalam dua angka berikut, lebar dan tinggi area pandang ditetapkan. Di angka keempat, lebar dan tinggi, Anda dapat menentukan ukuran total area pandang dalam piksel.

Pilih Elemen Svg Dengan Javascript

Untuk memilih elemen svg dengan Javascript, seseorang dapat menggunakan metode document.querySelector() . Ini akan mengembalikan elemen pertama yang cocok dengan pemilih yang ditentukan. Misalnya, untuk memilih elemen svg pertama dalam dokumen, seseorang dapat menggunakan kode berikut: var svg = document.querySelector(“svg”); Jika ada beberapa elemen svg dalam dokumen, seseorang dapat menggunakan metode document.querySelectorAll() , yang akan mengembalikan NodeList dari semua elemen yang cocok dengan pemilih yang ditentukan. Misalnya, untuk memilih semua elemen svg dalam dokumen, seseorang dapat menggunakan kode berikut: var svgs = document.querySelectorAll(“svg”);

Editor HTML di CodePen berisi semua elemen HTML dalam template HTML5 dasar. Ini adalah tempat untuk menambahkan kelas yang dapat mempengaruhi keseluruhan dokumen jika Anda ingin melakukannya. Di web, Anda dapat menyematkan CSS di Pena menggunakan stylesheet apa pun. Selain menggunakan Pena dari browser web apa pun, Anda dapat menerapkan skrip ke dalamnya. Anda dapat menambahkannya di sini dengan memilih URL, dan kami akan menambahkannya sesuai urutan item yang Anda miliki di Pena. Jika ada ekstensi file untuk preprosesor, kami akan mencoba memprosesnya sebelum mendaftar.

Svg Dalam Html

*[local-name()='svg'] // Tag svg muncul di dokumen HTML saat Anda mengetiknya. Itu dibedakan oleh lebar dan tingginya. Ekspresi xpath memiliki tag svg di dalamnya juga. Untuk xpath, ekspresi //*[local-name()='svg'] harus digunakan.

Javascript Dapatkan Svg Dari Url

Ada beberapa cara untuk mendapatkan file SVG dari URL. Cara paling sederhana adalah dengan membuka URL di browser Anda dan menyimpan file tersebut. Alternatifnya, Anda dapat menggunakan alat seperti wget atau cURL untuk mengunduh file. Terakhir, Anda dapat menggunakan pustaka JavaScript seperti SVG.js untuk memuat file SVG.

Svg: Sebuah Pengantar

Apa itu sva? Format Scalable Vector Graphics (SVG) adalah metode menggambar gambar vektor berbasis XML. Ketika ada gambar vektor dua dimensi, gambar tersebut digambar menggunakan alat ini. Karena kemampuan antarmuka pengguna grafisnya, SVG digunakan untuk membuat antarmuka pengguna grafis (GUI) dan ikon. W3C menentukan standar SVG.